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

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

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

    posts - 97,  comments - 93,  trackbacks - 0
      2006年10月27日
    Rank 1:


           SIGMOD: ACM SIGMOD Conf on Management of Data
           PODS: ACM SIGMOD Conf on Principles of DB Systems
           VLDB: Very Large Data Bases
           ICDE: Intl Conf on Data Engineering

           CIKM: Intl. Conf on Information and Knowledge Management
           ICDT: Intl Conf on Database Theory


    Rank 2:

    SSD: Intl Symp on Large Spatial Databases
    DEXA: Database and Expert System Applications
    FODO: Intl Conf on Foundation on Data Organization
    EDBT: Extending DB Technology
    DOOD: Deductive and Object-Oriented Databases
    DASFAA: Database Systems for Advanced Applications
    SSDBM: Intl Conf on Scientific and Statistical DB Mgmt
    CoopIS - Conference on Cooperative Information Systems
    ER - Intl Conf on Conceptual Modeling (ER)


    參考 http://www3.ntu.edu.sg/home/assourav/crank.htm

    posted @ 2009-09-25 00:02 wqwqwqwqwq 閱讀(277) | 評論 (0)編輯 收藏
         摘要: That’s why I don’t want to hear people’s ideas.
    I’m not interested until I see their execution.  閱讀全文
    posted @ 2008-08-11 11:21 wqwqwqwqwq 閱讀(1305) | 評論 (1)編輯 收藏
         摘要: 這兩天在學習python,主要參考簡明教程http://www.swaroopch.com/byteofpython/ , 入門很不錯,有興趣推薦參考。
    在16章中,作者建議讀者寫一個地址簿程序,還記得寫它都是在大一學c語言的年代了,不過下午還是抽出了一點時間來寫這個程序,寫了兩個版本,一個是使用python 字典來存儲名字和地址,另一個版本則使用python的面向對象特性,來鏈式存儲聯(lián)系人對象。  閱讀全文
    posted @ 2008-07-24 17:51 wqwqwqwqwq 閱讀(1562) | 評論 (3)編輯 收藏
         摘要: 據說最近psp最近要升值了~無論是因為破解的原因還是什么,但總之估計sony還是很難想到,當然我們也很值得慶幸的是這幫hack的大牛已然將kvm,python stackless等移植到了psp平臺,強大的ppc支持,可足以媲美幾年前的personal computer,這一點毋庸置疑,更不用去與手機平臺相對比了。  閱讀全文
    posted @ 2008-07-24 12:21 wqwqwqwqwq 閱讀(2509) | 評論 (4)編輯 收藏
         摘要: org.eclipse.jface.viewers.TreeViewer

    的繼承關系是  閱讀全文
    posted @ 2008-04-23 00:10 wqwqwqwqwq 閱讀(4858) | 評論 (3)編輯 收藏
    目前 ext已經全面升級了主站,而且也release2.1版本,并新增了一些例子。
    最近發(fā)布的Firefox3 beta 5版本,個人認為還是比較不錯,運行JS的也更快、上網速度也快了很多。
    但經原來做的一些js程序測試,ext2.0版本運行在FF3Beta5上還存在一些顯示問題。

    posted @ 2008-04-22 12:50 wqwqwqwqwq 閱讀(1466) | 評論 (1)編輯 收藏
         摘要: 昨天寫了個關于圖庫的總結mail 在這貼下,以供參考,當然望不吝賜教  閱讀全文
    posted @ 2008-04-21 18:09 wqwqwqwqwq 閱讀(1423) | 評論 (0)編輯 收藏
         摘要: 前兩天寫了一個處理邏輯表達式的小程序,可以用來處理專家系統(tǒng)實事等邏輯關系表達式。  閱讀全文
    posted @ 2008-02-26 19:05 wqwqwqwqwq 閱讀(2594) | 評論 (2)編輯 收藏
         摘要: EasyMock 是一套通過簡單的方法對于指定的接口或類生成 Mock 對象的類庫,它能利用對接口或類的模擬來輔助單元測試。本文將對 EasyMock 的功能和原理進行介紹,并通過示例來說明如何使用 EasyMock 進行單元測試。   閱讀全文
    posted @ 2008-02-18 22:14 wqwqwqwqwq 閱讀(771) | 評論 (0)編輯 收藏
         摘要: Craigslist的網站上沒有圖片,只有密密麻麻的文字,標著各種生活信息,是個巨大無比的網上分類廣告加BBS的組合...  閱讀全文
    posted @ 2008-01-21 13:06 wqwqwqwqwq 閱讀(2538) | 評論 (0)編輯 收藏
    posted @ 2007-12-25 20:25 wqwqwqwqwq 閱讀(438) | 評論 (0)編輯 收藏
         摘要: Trie樹是一棵度 m ≥ 2 的樹,它的每一層分支不是靠整個關鍵碼的值來確定,而是由關鍵碼的一個分量來確定。  閱讀全文
    posted @ 2007-12-13 20:07 wqwqwqwqwq 閱讀(1737) | 評論 (0)編輯 收藏
         摘要: For myself learning.
    Personal Mastery  閱讀全文
    posted @ 2007-12-09 18:28 wqwqwqwqwq 閱讀(1459) | 評論 (3)編輯 收藏
         摘要: Have you read Jess In Action by Earnest J. Freedman-Hill? It's one of the better books out there on rule engines, though it does require some experience to get the most out of the book.
    A variation on the bookstore could be recommendation engine. That would provide an opportunity to use a rule engine for direct matching on category/subcategory and aggregations.  閱讀全文
    posted @ 2007-11-29 10:42 wqwqwqwqwq 閱讀(984) | 評論 (5)編輯 收藏
         摘要: IBM Dump Analyzer for Java是來分析虛擬機穩(wěn)定性的一種可擴展框架。對Java虛擬機生成的產物進行自動診斷。  閱讀全文
    posted @ 2007-11-16 15:36 wqwqwqwqwq 閱讀(1246) | 評論 (1)編輯 收藏
         摘要: 實在忍受不了sun的做事風格和它的開發(fā)工具了,nb的beta6一踏糊涂一堆bug,唉~想著就想起來sun中國弄個nb插件的比賽不僅過程糟糕,獲獎了居然還不兌現(xiàn)承諾,到現(xiàn)在也杳無音信,估計是證書也不想發(fā)了,真是讓大家對它越發(fā)感到沒有信心~~~~~~~~~不提這個了,還是講講Europa 和 myeclipse, 最近在寫一個基于規(guī)則的引擎,用的Europa 和myeclipse6 感覺非常舒服,myeclipse的功能也大大加強了比如改進了javaEE5 提高了EJB3開發(fā)效率可以支持從數(shù)據模型到bean的轉換,java的持久化程度及其Spring-JPA的高度集成。開發(fā)ajax的朋友可以發(fā)現(xiàn) myeclipse對ajax的開發(fā)和測試做的也非常好,尤其是對js的調試。Web開發(fā)的另一個特點是支持RAD web。nb原來喊的一項特色是集成了matisse,在myeclipse目前也集成了它而且對于可視化swing開發(fā)非常方便,當然你也可以自己按照,不直接更新。
    myeclipse中集成的derby和tomcat也大大加速了服務器的連接和部署,調試等。至于db視圖個人使用oracle  閱讀全文
    posted @ 2007-11-11 15:11 wqwqwqwqwq 閱讀(2247) | 評論 (11)編輯 收藏
         摘要: Given a picture composed entirely of horizontal and vertical line segments, calculate the minimum number of times you must lift your pen to trace every line segment in the picture exactly n times.
    Each line segment will be of the form " " (quotes for clarity), representing a segment from (x1,y1) to (x2,y2). Segments may cross each other. Segments may also overlap, in which case you should count the overlapping region as appearing in the drawing only once. For example, say t  閱讀全文
    posted @ 2007-10-30 21:36 wqwqwqwqwq 閱讀(1188) | 評論 (0)編輯 收藏
         摘要: In most states, gamblers can choose from a wide variety of different lottery games. The rules of a lottery are defined by two integers (choices and blanks) and two boolean variables (sorted and unique). choices represents the highest valid number that you may use on your lottery ticket. (All integers between 1 and choices, inclusive, are valid and can appear on your ticket.) blanks represents the number of spots on your ticket where numbers can be written.  閱讀全文
    posted @ 2007-10-24 21:20 wqwqwqwqwq 閱讀(1205) | 評論 (1)編輯 收藏
         摘要:
    Let's say you have a binary string such as the following:
    011100011
    One way to encrypt this string is to add to each digit the sum of its adjacent digits. For example, the above string would become:
    123210122  閱讀全文
    posted @ 2007-10-23 13:34 wqwqwqwqwq 閱讀(1055) | 評論 (1)編輯 收藏
         摘要: People enjoy mazes, but they also get them dirty. Arrows, graffiti, and chewing gum are just a few of the souvenirs people leave on the walls. You, the maze keeper, are assigned to whiten the maze walls. Each face of the wall requires one liter of paint, but you are only required to paint visible faces. You are given a map of the maze, and you must determine the amount of paint needed for the job.  閱讀全文
    posted @ 2007-10-21 21:28 wqwqwqwqwq 閱讀(1460) | 評論 (1)編輯 收藏
         摘要: In written languages, some symbols may appear more often than others. Expected frequency tables have been defined for many languages. For each symbol in a language, a frequency table will contain its expected percentage in a typical passage written in that language. For example, if the symbol "a" has an expected percentage of 5, then 5% of the letters in a typical passage will be "a". If a passage contains 350 letters, then 'a' has an expected count of 17.5 for that passage (17.5 = 350 * 5%). Pl  閱讀全文
    posted @ 2007-10-21 20:14 wqwqwqwqwq 閱讀(917) | 評論 (1)編輯 收藏
         摘要: A speed radar is installed in a highway zone where the maximum speed limit is maxLimit mph, and the minimum speed limit is minLimit mph.  閱讀全文
    posted @ 2007-10-20 13:25 wqwqwqwqwq 閱讀(1262) | 評論 (1)編輯 收藏
         摘要: 好長時間沒寫程序了感覺,忘了很多東西,呵呵,今天打開Eclipse寫了一個Struts的小應用,也回顧了一遍它的主要內容,這篇隨筆就把整理的一些東西貼出來吧。  閱讀全文
    posted @ 2007-10-07 16:55 wqwqwqwqwq 閱讀(1020) | 評論 (0)編輯 收藏
         摘要: 本程序為優(yōu)化,比較好的方法是,進行曲線積分,算誤差比進行方程約束,由于時間比較少,稍候會給出優(yōu)化程序。  閱讀全文
    posted @ 2007-08-14 17:27 wqwqwqwqwq 閱讀(1006) | 評論 (0)編輯 收藏
         摘要: A simple implement of own stack  閱讀全文
    posted @ 2007-08-03 18:14 wqwqwqwqwq 閱讀(996) | 評論 (0)編輯 收藏
         摘要: To find a max segment in a array which includes negative and positive no.There r several methods to solve this question.  閱讀全文
    posted @ 2007-07-31 12:45 wqwqwqwqwq 閱讀(846) | 評論 (0)編輯 收藏
         摘要: 今天很早的來到公司,首先查收了一下郵箱,發(fā)現(xiàn)5封新郵件,仔細的看了下都是關于我前天申請一個IBM USA那邊的一個DB訪問權限的郵件。  閱讀全文
    posted @ 2007-07-27 08:55 wqwqwqwqwq 閱讀(298) | 評論 (2)編輯 收藏
         摘要: Sun has just announced the winners of netbeans plugin competition  閱讀全文
    posted @ 2007-07-21 23:34 wqwqwqwqwq 閱讀(1138) | 評論 (0)編輯 收藏
    PMI
         摘要: PMI(Performance MonitoringInfrastructure)   閱讀全文
    posted @ 2007-07-13 17:32 wqwqwqwqwq 閱讀(1186) | 評論 (2)編輯 收藏
    there r so many sundries during these days and almost every point is focussing on papers\projects\ ...\recommending data for my next master degree, but my thought just is in a mess, i cannot describe the stage && status except paying more attention,well,just feeling time is out of my hand.the only thing I am looking forward is the result of nb plugin competition and i will send the request and willing letter to the professors later but then.I m believing that though  have lost the opportunity of my target ~~God, it's so pity for a sudden change,at the same time, I stood with everything.I have got another time now and have prepared all the condition for the coming applying.thx in advance for my friends, because u have give a stage and some suporting.especially to stand^-^.TracyYan now has just rushing in && strangely,I find~~~~after six years,why not then, I have also no answers, may be pretty but not really for the feeling,~~~~~.
    Yestoday I have collected some data about computer science department professors of pku, bless.
    benny is a so kind person though he(she is a judge, but i really want to say,actually not to him.here the only puzzlement is why now after a month asking the method how to use the tool and why dont know the document which has contains all the info he want to know, I know, really, each guy is busy, busy with one's sundries,so many! Symptom.


    posted @ 2007-07-11 22:19 wqwqwqwqwq 閱讀(527) | 評論 (0)編輯 收藏
         摘要: 首先說點別的:),今天google adsense給我回信關于blog頭搜索不好用的原因是嵌在了里。我評論的前兩條是表揚google...  閱讀全文
    posted @ 2007-06-02 23:16 wqwqwqwqwq 閱讀(1520) | 評論 (8)編輯 收藏
         摘要: 好長時間沒寫隨筆了^^,主要是因為這幾天很忙,ibm的、學校的、還有sun的插件大賽,但是這段時間自己確一直在學習,在繼續(xù)關注技術的進展,隨著這篇關注焦點,在之后的幾天里,我會繼續(xù)寫一些,IBM SOA、SOAP、RBD、EGL還有我們HotJava的 SmallWorld等內容。
    JavaFX當前是備受SUN推崇和重點推廣的項目之一,也是Java技術繼續(xù)演化的內容之一。  閱讀全文
    posted @ 2007-05-31 11:03 wqwqwqwqwq 閱讀(1222) | 評論 (0)編輯 收藏
         摘要: 今天瀏覽網頁,看見篇寫JNDI比較基礎,也比較詳細的文章,又自己整理了一下,post到新手區(qū)了,。。。。:)JNDI是java訪問名字和目錄服務的接口,與JDBC一樣,它僅僅只定義了一套服務接口,實現(xiàn)由具體廠商提供。作為j2ee核心組件之一,它為應用程序查找其他程序組件和資源提供了統(tǒng)一的接口,其中最常見的用途就是數(shù)據源的配置、EJB名字查找、JMS相關配置等。JNDI的架構如下圖。在JDK1.3中...  閱讀全文
    posted @ 2007-05-14 23:33 wqwqwqwqwq 閱讀(816) | 評論 (0)編輯 收藏
    ITM
         摘要: 開篇,哈哈哈,我喜歡這句話“NO MONEY ONLY WORK DADADI”。
    ITM provides out of box uses to quickly deploy and active the app with the best ibm practice.admins can define the user's views,threshold and so on.Tivoli Enterprise Monitoring Agents are available for monitoring different types of platforms and applications, including mainframes,middleware,distributed,and database...  閱讀全文
    posted @ 2007-05-11 23:00 wqwqwqwqwq 閱讀(957) | 評論 (0)編輯 收藏
         摘要: CLI command line interface ...  閱讀全文
    posted @ 2007-05-10 23:23 wqwqwqwqwq 閱讀(988) | 評論 (0)編輯 收藏
         摘要: 據說極有可能迅速取代目前流行的SWING和SWT技術。  閱讀全文
    posted @ 2007-05-07 22:30 wqwqwqwqwq 閱讀(991) | 評論 (1)編輯 收藏
    北京今天有些風,但是依然擋不住本有的悶熱。傍晚下樓吃飯,就像突然走進蒸籠一樣的感覺,想象著眼前如果是大海該多好啊,說到這真是慚愧,我在大連待了20多年,居然不會游泳,哎~...吃完飯,我從上地佳園溜達到公司,休息了一下。本想著看點書,但是這個時候似乎是快到下班的時間了,看著白領一族的匆匆離去、聯(lián)想圍欄旁悠然自得的粉刷小匠,我突然萌生要離開這兒,去高校轉轉的念頭。
    繞過DASCOM沿著信息路來到了五街,在路牌下等者656...我真的實在受不了了太陽的直射和等車的煩躁,終于決定今天也學一次抗日前的長征,學一次開學前的軍訓,...自己走到北大,也算熟悉熟悉一路的環(huán)境。現(xiàn)在回來我真的發(fā)現(xiàn)這是一個了不起的決定,因為這實在太累,走去五環(huán)-北大-四環(huán),又跑回上地,即使在地圖上只能算作一指之距。想想先前走到北京體校時看見一個學生繞學校跑時的竊竊思緒,我更敬佩自己。腳累得很,但我也算是準備好了這段時間出門在外的辛苦...RuiRui,你說得很好,堅持久了,也就好了。

    posted @ 2007-05-07 21:40 wqwqwqwqwq 閱讀(447) | 評論 (0)編輯 收藏
         摘要: 今天自己突然想起來整理一下標準的charset,感覺還算有必要。當然java...  閱讀全文
    posted @ 2007-05-06 19:50 wqwqwqwqwq 閱讀(617) | 評論 (0)編輯 收藏
    昨天來得北京,準備我以后幾個月的實習生活。北京還是和我原來來的感覺一樣,到處都是人流車流,太陽總是離得很近,風吹起的揚塵讓我透不過氣...唯一使人感覺現(xiàn)代感的和不很疲憊的就是坐著北京的城鐵和地鐵,起碼它們不會因為宣泄而停滯。有些安慰的是坐在IBM的辦公大廳,我喜歡IT深邃的魅力,和品茶的悠然...
    昨天一天十分疲倦,或許正如跟個遠方的小弟在instantChat上所談的,這一天真的讓我品到了生活的很多酸澀和勞苦,我漸漸發(fā)現(xiàn)走路也是一件非常非常累得事情,漸漸發(fā)現(xiàn)與人相處的道理和囊中的羞澀。其實昨天一天就花了我3千多,房屋的中介賺得很多感覺,1200的房子,中介費也要得1200,還有押金。不過房子我到是感覺還好,在上地佳園,至少感覺這的環(huán)境和保安還算可以,只是與人合租,不是很自在。
    昨天也累壞了我一個高中同學,她陪我到處轉了一天,真的很謝謝她。
    不知道下一步會如何,但是我得準備好在這煎熬悶熱、運籌自己的生活、學會太多太多...

    posted @ 2007-05-06 12:24 wqwqwqwqwq 閱讀(463) | 評論 (0)編輯 收藏
         摘要: 這兩天找了一些portal相關的資料,也從中學到了很多東西。據說我們學校還有個portal,不過現(xiàn)在不知為什么down掉了...  閱讀全文
    posted @ 2007-04-27 20:48 wqwqwqwqwq 閱讀(2779) | 評論 (6)編輯 收藏
         摘要: Sun has rolled out the Temple of Sun Contest with a US$5,000 cash prize. This is a great vehicle to promote Sun Studio on campus.  閱讀全文
    posted @ 2007-04-24 11:00 wqwqwqwqwq 閱讀(1355) | 評論 (2)編輯 收藏
    ANT
         摘要: ANT是一個基于JAVA的自動化腳本引擎,腳本格式為XML。除了做JAVA編譯相關任務外,ANT還可以通過插件實現(xiàn)很多應用的調用。  閱讀全文
    posted @ 2007-04-19 14:56 wqwqwqwqwq 閱讀(246) | 評論 (0)編輯 收藏
         摘要: 軟件開發(fā)習慣中一個細微更改都可能會對軟件質量產生巨大改進。將單元測試合并到開發(fā)過程中,然后從長遠角度來看它可以節(jié)省多少時間和精力。本文通過使用代碼樣本說明了單元測試的種種好處,特別是使用 Ant 和 JUnit 帶來的各種方便。  閱讀全文
    posted @ 2007-04-19 14:52 wqwqwqwqwq 閱讀(474) | 評論 (0)編輯 收藏
         摘要: 在Ant出現(xiàn)之前,構建和部署Java應用需要使用包括特定平臺的腳本、Make文件、各種版本的IDE甚至手工操作的“大雜燴”。現(xiàn)在,幾乎所有的開源 Java項目都在使用Ant,大多數(shù)公司的內部項目也在使用Ant。Ant在這些項目中的廣泛使用自然導致了讀者對一整套Ant最佳實踐的迫切需求。  閱讀全文
    posted @ 2007-04-19 14:45 wqwqwqwqwq 閱讀(487) | 評論 (0)編輯 收藏
         摘要: By the way,there is a tool,Sun Device Detection Tool ,which is based on jnlp protocol, can tell us in just a few minutes whether the Solaris OS supports the devices that are detected in our x86 system, in advance.  閱讀全文
    posted @ 2007-04-14 23:52 wqwqwqwqwq 閱讀(1274) | 評論 (0)編輯 收藏
         摘要: 昨晚同學找我?guī)兔懸粋€利用GOOGLE API的小程序,也比較感興趣所以就應下了。下載了GOOGLE提供的googleapi.jar,大約花了20多分鐘,寫了這個小程序,由于需要提供GOOGLE key所以也懶得去申請,就沒有測試~~呵呵  閱讀全文
    posted @ 2007-04-14 15:22 wqwqwqwqwq 閱讀(3562) | 評論 (9)編輯 收藏
         摘要: 元數(shù)據是利用JDBC創(chuàng)建和操作數(shù)據庫對象的一個很重要的概念和應用,所以今天我特地的找了一些詳細解析個概念的資料,和利用java來操作的實例。  閱讀全文
    posted @ 2007-04-12 23:58 wqwqwqwqwq 閱讀(1719) | 評論 (0)編輯 收藏
    出于java的安全限制,System.getProperty("line.seperator")是不能夠直接取得的。可以這樣做:
    String lineSeparator = (String) java.security.AccessController.doPrivileged(
                   
    new sun.security.action.GetPropertyAction("line.separator"));
    具體參考java.io.BufferedWriter的源代碼就可以找到上面這行代碼。 DriverManager里也有
     1     private static void loadInitialDrivers() {
     2         String drivers;
     3 
     4         try {
     5             drivers = (String) java.security.AccessController
     6                     .doPrivileged(new sun.security.action.GetPropertyAction(
     7                             "jdbc.drivers"));
     8         } catch (Exception ex) {
     9             drivers = null;
    10         }
    11         println("DriverManager.initialize: jdbc.drivers = " + drivers);
    12         if (drivers == null) {
    13             return;
    14         }
    15         while (drivers.length() != 0) {
    16             int x = drivers.indexOf(':');
    17             String driver;
    18             if (x < 0) {
    19                 driver = drivers;
    20                 drivers = "";
    21             } else {
    22                 driver = drivers.substring(0, x);
    23                 drivers = drivers.substring(x + 1);
    24             }
    25             if (driver.length() == 0) {
    26                 continue;
    27             }
    28             try {
    29                 println("DriverManager.Initialize: loading " + driver);
    30                 Class.forName(driver, true, ClassLoader.getSystemClassLoader());
    31             } catch (Exception ex) {
    32                 println("DriverManager.Initialize: load failed: " + ex);
    33             }
    34         }
    35     }
    sun.security.action.GetPropertyAction() hasn't been publiced.actually and exactly,it's not be doced,which reflects that sun doesn't surport us to use these class or method which is lower class,usually, we use the classes api tells us is proier and maybe has called these undoc class  but usually for us ,it's not necessary.so in the program of us or even others ,we could and i think it's really better for us to neglect  them which u can find out in the jar file of rt.jar.

    posted @ 2007-04-11 16:35 wqwqwqwqwq 閱讀(564) | 評論 (0)編輯 收藏
         摘要: 可供程序利用的資源(內存、CPU時間、網絡帶寬等)是有限的,優(yōu)化的目的就是讓程序用盡可能少的資源完成預定的任務。優(yōu)化通常包含兩方面的內容:減小代碼的體積,提高代碼的運行效率。本文討論的主要是如何提高代碼的效率。  閱讀全文
    posted @ 2007-04-09 11:12 wqwqwqwqwq 閱讀(472) | 評論 (0)編輯 收藏
    1.變量引用的時候,空指針情況的防止,即為空檢查.
    2.數(shù)學運算異常,如除0的情況.數(shù)組越界異常,字符串訪問過界
    3.數(shù)據庫檢索記錄,結果記錄行數(shù)狀況的處理.
    4.畫面顯示項目的確認.
    5.畫面顯示項目達到上限時情況的處理.
    6.系統(tǒng)出錯的時候,異常信息是否正確.
    7.數(shù)據庫連接,游標的處理.
    8.數(shù)學運算時,數(shù)據精度的處理.
    posted @ 2007-04-09 11:06 wqwqwqwqwq 閱讀(219) | 評論 (0)編輯 收藏
    Today with tomcat admin, a Graphic interface for us to config the JNDI for our program,I configured the context and connection pool jioning IBM DB2 ExC-9.Actually,JNDI is an API specified in Java technology that provides naming and directory functionality to applications written in the Java programming language. It is designed especially for the Java platform using Java's object model. Using JNDI, applications based on Java technology can store and retrieve named Java objects of any type. In addition, JNDI provides methods for performing standard directory operations, such as associating attributes with objects and searching for objects using their attributes (Name-Value,context).JNDI is also defined independent of any specific naming or directory service implementation. It enables applications to access different, possibly multiple, naming and directory services using a common API. Different naming and directory service providers can be plugged in seamlessly behind this common API. This enables Java technology-based applications to take advantage of information in a variety of existing naming and directory services, such as LDAP, NDS, DNS, and NIS(YP), as well as enabling the applications to coexist with legacy software and systems. Using JNDI as a tool, we can build new powerful and portable applications that not only take advantage of Java's object model but are also well-integrated with the environment in which they are deployed.
    A directory is typically used to associate attributes with objects. A person object, for example, can have a number of attributes, such as the person's surname, fisrtName,telephone numbers, electronic mail address and so on. Using JNDI, to retrieve the email address of a person object, the code looks as follows.
    1 Attribute personAttribute=directory.getAttributes(personName).get("email");
    2 String email = (String)personAttribute.get();
    (Recently,finding that blogjava can help us format our code,that's perfect,but if can max the editor area which will enhance the function and coursely be better:).)
    An intuitive model for the Java programmer is to be able to lookup objects like printers and databases from the naming/directory service. Using JNDI, to lookup a printer object, the code looks as follows. (it's important and most used)
    1 Printer printer =(Printer)namespace.lookup(printerName);
    2 printer.print(document);

    posted @ 2007-04-08 15:10 wqwqwqwqwq 閱讀(470) | 評論 (0)編輯 收藏

    //*******************The Log class
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.uitl.Date;
    import java.text.DateFormat;

    public class Log{
       private static final String filePath = PropertyReader.getResource("Log_File_Path");//Supposing we have define in the last ProperyReader class and the file
      
       public static final String EXCEPTION                  =   "Exception";
       public static final String CREATE_STAFF           =   "Create Staff";
       public static final String EDIT_STAFF                 =   "Edit Staff";
       public static final String DELETE_STAFF            =   "Delete Staff";
       public static final String RECORD_HAS_EXIST  =   "Record Has Exist";

       public static void log(String msg_type, Exception e){
          StringBuffer errMsg = new StringBuffer(e.toString);
         
          for(int i=0;i<e.getStackTrace().length;i++){
             errMsg.append("\n\t at");
             errMsg.append(e.getStackTrace()[i].toString);
          }
          log(msg_type,errMsg.toString());
          OptionPanel.showErrMsg("Sorry,System may have an error \n System will exit");
          System.exit(-1);
       }

      public static void log(String msg.type,Staff staff){
         String msg = null;
         if(msg_type == CREATE_STAFF){
             msg = staff.toString() + "has benn created";
         }else if(msg_type == EDIT_STAFF){
             msg = staff.toString() + "has been Changed";
         }else if(msg_type == DELETE_STAFF){
             msg = staff.toString() + "has been Deleted";
         }else if(msg_type == RECORD_HAS_EXIST){
             msg = staff.toString() + "has exist in the database";
         }
         log(msg_type,msg);
      }

      private static void log(String msg_type,String msg){
          BufferedWriter out = null;
          DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
         
          try{
            out = new BufferedWriter(new FileWriter(getLogFilePath(),true));//如果為 true,則將字節(jié)寫入文件末尾處,而不是寫入文件開始處
            out.write("["+df.format(new Date()) + "] <" + msg_type + "> :" + msg);
            out.newline();
            out.newline();
          }catch(IOException e){
              e.printStackTrace();
          }finally{
             try{
               if(out!=null){
                  out.close();
               }
             }catch(IOException e){
                e.printStackTrace();
             }
          }
      }

      private static String getLogFilePath(){
         File logDir = new File(filePath);
         if(!logDir.exists()){
           logDir.mkdir();
         }
        
         int i = 1;
         String fileName = filePath + "log_";
         File file = new File(fileName + i + ".txt");
       
         while(file.exists() && file.length() > 30000L) {
             i++;
             file = new File(fileName + i + ".txt");
         }
       
          return fileName + i + ".txt"
      }
    }

    //*****************************The OptionPanel Dialog Class for the Log Class
    import javax.swing.JOptionPane;

    public class OptionPanel {
       private static final String appTitle = PropertyReader.getResource("App_Title");//suposing the file has been established and the property app-title stands for the name of application
       private static final MainFrame frame = MainFrame.getMainFrame();

       public static void showWarningMsg(String msg){
          JOptionPane.showMessageDialog(frame,msg,appTitle,JOptionPane.WARNING_MESSAGE);
       }
       public static void showErrMsg(String msg){
           JOptionPane.showMessageDialog(frame,msg,appTitle,JOptionPane.Error_MESSAGE);
       }
       public static int showConfirmMsg(String msg){
            return JOptionPane.showConfirmDialog(frame,msg,appTitle,JOptionPane.YES_NO_OPTON,JOptionPane.QUESTION_MESSAGE);
       }
    }

    posted @ 2007-04-05 10:01 wqwqwqwqwq 閱讀(872) | 評論 (1)編輯 收藏

    In a project, we can write a class to read the properties.As following,

    import java.io.InputStream;
    import java.io.IOException;
    import java.util.Properties;

    public class PropertyReader{
       private static Properties property = null;
      
       static{
          InputSteam stream = null;
          try{
            stream=PropertyReader.class.getResourceAsStream("/resource/properties.properties");
            property = new Properties();
            property.load(stream);
          }catch(IOException e){
              e.printStackTrace();
          }finally{
              if(stream != null){
                 try{
                    stream.close();
                 }catch(IOException e){
                    e.printStackTrace();
                 }           
              }
          }
       }
       public static String getResource(String key){
         if(property == null){
           return null;// init error;
         }
         
         return property.getProperty(key);
       }
    }

    posted @ 2007-04-05 08:13 wqwqwqwqwq 閱讀(482) | 評論 (0)編輯 收藏
    These days I want to review some java classes and post them,cos i come to realize that i hava been coming to forget some of them, my god,Katrina,....:) it's really the sound,and u ? ...regarding MVC,cos be delayed, and may be will better.

    List a class to use the title Properties.

    import java.util.Properties;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;

    public class FirstDayTestProperties {
       public static void main(String[] args) throws Exception{
           Properties ProTest = new Properties();
           String  fileName="PropertiesTest.properties";
          
           try{
              ProTest.setProperty("lastDir","C:\\PropertyTest");
              ProTest.store(new FileOutputStream(fileName),null);
           }catch(IOException e){
                e.printStackTrace();
           }

           try{
              FileInputStream inStream=new FileInputStream(fileName);
              ProTest.load(inStream);
              ProTest.list(System.out);
           }catch(FileNotFoundException e){
              e.printStackTrace();
           }
       }
    }
    The class I just write now without any testing,but i think it seems no errors:).Share.

    posted @ 2007-04-04 21:32 wqwqwqwqwq 閱讀(477) | 評論 (0)編輯 收藏
    U may come across model view controller desigh pattern.It was first introduced by  Trygve Reenskaug. More details,MVC can be broken down into three elements.
    <1>Module  Usually,in enterprise software,it presents the logic of the commercial bean.To the SE Swing GUI,it contains data and the rules that govern access to and updates of this data.
    <2>View  It specifies exactly how the module data should be presented,changing with the model data.
    <3>Controller   Controller defines all the methods connecting to the user action which are called by the View.
    Especially,the model doesn't carry a reference to the view but instead uses an event-notification model to notify insteaded parties of a change.One of the consequences of this powerful design is that many views can have the same model.When a change in the data model occurs,each view is notified by a property change event and can change itself accordingly.Hence, the controller may mediate the data flow between the model and the view in both directions,which helps to more completely decouple the model from the view,and the controller may also provide the methods which effect the model's property changes for one or more views that are registered with it.

    ....Next,may be the two days after tomorrow ,I ll give a real example to explain this schema in details.......
    posted @ 2007-03-26 23:16 wqwqwqwqwq 閱讀(435) | 評論 (0)編輯 收藏
    這幾天忙忙亂亂的,也沒顧及這個blog,其實說句實話,自己也好幾天沒在研究技術的東西了,只是在看看IBM的一些個產品,哎~所以今天還是沒打算寫寫技術,只是來post自己這幾天的一些瑣瑣碎碎。還算高興的事情是自己的小隊伍獲得了國際數(shù)學建模競賽2等獎,雖然不是很理想,但自己還是滿足了,畢竟帶的娘子(當然是除了我了)隊伍實力不是很強,況且大過年的我原來的伙伴早飛回溫暖的南方了。其實我本身早厭倦了那種比賽,不過還是比較欣賞美國人的精明和對中國人明知故犯的無奈,也許吧,其實還是要慶祝一下自己的最后一次這種競賽...
    這周學校組織無償獻血,雖然我并不在乎學校不給什么所謂的補償,我也不會因為獻血怎么怎么的就有所目的,只是感覺這種行為還算是對社會作出了一點貢獻。最嶇奇的是導員居然不讓我獻血,當然他的勸告算能讓我接受,但是自己還是很固執(zhí)的感覺,無奈的導員也只好應下了。哎~我這個人真是經不起別人的勸告發(fā)現(xiàn),在好些個朋友的“嚇唬”下,終于作出了心虛的妥協(xié)...哎~,不過也算給我的母親一個很好的交代了。
    不說這些令人掃興的話題了,還有一件好事,就是跟我關系很鐵的一個老師有了21個月的小寶寶,其實他才告訴我的,還是在網上。不過早應該猜到了,因為這幾天就發(fā)現(xiàn)他“不誤正業(yè)”,整天不在辦公室,往家里一個勁的跑,不過在這里,雖然他不會知道,還是祝愿他博士論文順利通過吧,雙喜臨門...
    想早些休息了,Good night&& Good dream.
    posted @ 2007-03-22 23:18 wqwqwqwqwq 閱讀(443) | 評論 (0)編輯 收藏
    剛剛看看過魯豫有約的兩期節(jié)目,是采訪的年輕輕但身價過億的李想、高燃、戴志和茅侃侃。其實,我并不因為他們的年輕或是很有錢,而感到任何詫異,但自己卻很欣常他們各自所持有的信念和創(chuàng)業(yè)過程中對資金的運營勇氣,我真的不知道隨著他們事業(yè)的增長、社會的變更,他們還是否會是浪潮的寵兒、是否會和原來一樣,對待更多的運營資本同樣的保持清醒地頭腦,但我還是很祝福他們...

    看過之后,我的感觸很深,在這個社會上,或許是因為隨著一個人學歷的漸漸增長,他也會變得懶惰,因為他再也不會像社會地位很卑微的人一樣為生計擔心,我本也相信,人在骨子里是懶惰的。其實,我自己也曾想過,以后能找個比較大的外企工作,幾年之后一個月拿個幾W塊就ok了,然后就是一輩子平平淡淡的生活...:),或許我的思想還不夠先進吧。他們的經歷,也讓我重新思考,說句實話,其實他們并沒什么,只是在坎坷的社會中,為了自己的信念堅持了下來,并一直做到了現(xiàn)在。我想我也該在為別人打工的同時,定位自己的目標,并堅定的追求。高燃是我很佩服的一個人,完全是因為他的執(zhí)著,無論是他考清華、追GirlFriend 還是去找投資人,最后到辦好公司。人的天賦很重要,但我還是更喜歡執(zhí)著...
    posted @ 2007-03-18 23:32 wqwqwqwqwq 閱讀(634) | 評論 (2)編輯 收藏
    Yestoday night,CA coordinator emailed and phoned me for Sunstudio running and test the ping-home function,I m sorry that I really didn't know what's this really mean under Unix,I am not sure,maybe about to edit the file of host,but I just ping -s localhost,well,maybe another ip destination.more awful,I cannot run the #./SUNWspro/bin/f95, #./SUNWspro/bin/cc, #./SUNWspro/bin/CC...I have sent the first test result,and continue to learn more about it,but I m really sorry.

     


     


    posted @ 2007-03-17 07:36 wqwqwqwqwq 閱讀(168) | 評論 (0)編輯 收藏
    The day before yestoday,I have received the intern offer letter from IBM CDL...to my surprise,cos of my little time,only can support 3-4ms.it's too absurd that when the assistant
    ask my IdCard num,well,God,I forgot it...:) During the time,not so along,exactly,only a few days ago,I met a manager in the IBM(BJ)CRL,She is a very kind person,also a manager(i think),she has recommended me to her colleagues,which I really thank her.so yestoday,these persons phoned me and asked if wanted to do some QA jobs,if though,they knew that i was admired by CDL.To the manners,I think today I should take their phone test though I will not accept their opportunity as to my promise to the CDL,That's important I think.
    Now I was a junior student,coming to realize that the campus life will be end,I was lucky I think,especailly about so many friends,can be ambassador of Sun Microsystems.lnc,can be a intern of IBM and so on.Now in my dream,hope that I can be a recommend student to get the master degree of tsingHua or BJUniversity this Sep.,then can go aboard for future research,last,back to the motherland to have a peace life,for which I will try my hard and best.
    posted @ 2007-03-16 12:19 wqwqwqwqwq 閱讀(466) | 評論 (0)編輯 收藏
    Maybe,u are tied of Windows and come to thinking of trying Linux,so many good Operation Systems,like,Suse Redhat ...or Novell have all enterprise u might need,as well,support communities.well,it's true enough--Solaris is also available and as a OpenSolaris form with AMD and Intel friends,with a pretty community going && more and more third-party supporting.U may download the Solaris form www.opentech.org.cn, www.opensolaris.org, ...Sun.
    I very like OpenSolaris not only its security,its creative,convinient...whereas,its all:).The Java Desktop is cool and we may also use click to operate,well,I like the terminal more.Now I use Solaris as a developer desktop,it integrates the Netbeans to develop Java which is also a excellent enviroment to develop others after u plug in,Sun Studio,a platform to develop C/C++ &&fortan,with sun compiler,efficient.If u think Solaris is too big and Enterprise-heavy,u will make a mistake,Solaris is very small but excellent perform,:),U can try urself.
    yestoday i make a techtalk about Sun openSolaris and Java,C/C++ development under it in my campus(DaLian University of Technology).To my surprise There were more students from the  disrelated computer science Department,more,even more girls.I saw a Linux teachers attending,I was very pleased,cos of Solaris is sure to attract the fancy of the Linux users,at least,It's better in my...our's eyes.:),as following I attach some of pics of my tech-talking to share with u.
       
    posted @ 2007-03-12 11:01 wqwqwqwqwq 閱讀(611) | 評論 (0)編輯 收藏

    Most developers have heard of, and possibly used, scripting languages such as Ruby, JavaScript, and Python. These dynamic languages are enjoying a resurgence in popularity, largely because of their flexibility and simplicity, and the productivity gains they promise.

    Java 6 comes with built-in support for scripting languages. You can embed scripts in various scripting languages into your Java applications, passing parameters, evaluating expressions, and retrieving results. And you can do it all pretty seamlessly.

    First of all, you obtain a new ScriptEngine object from a ScriptEngineManager, as shown here:

    ScriptEngineManager manager = new ScriptEngineManager();

    ScriptEngine engine = manager.getEngineByName("js");

    Each scripting language has its own unique identifier. The "js" here means you're dealing with JavaScript.

    Now you can start having some fun. Interacting with a script is easy and intuitive. You can assign scripting variables using the put() method and evaluate the script using the eval() method,. which returns the most recently evaluated expression processed by the script. And that pretty much covers the essentials. Here's an example that puts it all together:

    engine.put("cost", 1000);
    String decision = (String) engine.eval(
    "if ( cost >= 100){ " +
    "decision = 'Ask the boss'; " +
    "} else {" +
    "decision = 'Buy it'; " +
    "}");
    assert ("Ask the boss".equals(decision));

    You can do more than just pass variables to your scripts— you can also invoke Java classes from within your scripts. Using the importPackage() function enables you to import Java packages, as shown here:

    				
    
    engine.eval("importPackage(java.util); " +
    "today = new Date(); " +
    "print('Today is ' + today);");

    Another cool feature is the Invocable interface, which lets you invoke a function by name within a script. This lets you write libraries in scripting languages, which you can use by calling key functions from your Java application. You just pass the name of the function you want to call, an array of Objects for the parameters, and you're done! Here's an example:

    				
    
    engine.eval("function calculateInsurancePremium(age) {...}");
    Invocable invocable = (Invocable) engine;
    Object result = invocable.invokeFunction("calculateInsurancePremium",
    new Object[] {37});

    You actually can do a fair bit more than what I've shown here. For example, you can pass a Reader object to the eval() method, which makes it easy to store scripts in external files, or bind several Java objects to JavaScript variables using a Map-like Binding object. You can also compile some scripting languages to speed up processing. But you probably get the idea that the integration with Java is smooth and well thought-out.

    posted @ 2007-03-07 21:49 wqwqwqwqwq 閱讀(468) | 評論 (0)編輯 收藏
    剛剛結束了IBM的電面,一個GG和JJ,問的主要問題都放在我的項目上了,尤其是Netbeans的插件。由于我申請的實習生,所以在之中也問了很多實習時間的問題,感覺IBM問問題很不含糊,甚至要問出幾月幾號......這一點可以說明IBM是一個很值得人去的地方。英文問題我感覺我答得不是很好,先問得IBM的文化之類的,之后居然問得IBM person慚愧啊 本來還知道幾個的,一緊張都忘了。在角色兌換時,我問得我的表現(xiàn),和職業(yè)生涯建議,好小子,他們居然還反問我職業(yè)生涯,說了一通......整個電面是從4:10-4:45,最后GG說面試表現(xiàn)還好,只是我能實習的時間比他們要求的時間要少,唉~~ 我的系主任啊,等待結果中....希望自己能去IBM體驗一下藍色巨人的風范吧。
    posted @ 2007-03-02 17:05 wqwqwqwqwq 閱讀(803) | 評論 (0)編輯 收藏
    一會4:30要參加北京IBM研究院的一個電面,快到時間了,不免心里稍有些緊張,不知道先前積累的一點英語一會是否會奏效,呵呵,,,,不過,無論如何我會盡可能抓住這次來之不易的機會的。
    posted @ 2007-03-02 14:44 wqwqwqwqwq 閱讀(533) | 評論 (0)編輯 收藏
         摘要: This post had been writen long before,...but  閱讀全文
    posted @ 2007-02-15 23:36 wqwqwqwqwq 閱讀(470) | 評論 (1)編輯 收藏
         摘要: Java SE 6.0(代號Mustang,野馬)已經發(fā)布,詳情請見 野馬奔騰而出,Java SE 6 正式版發(fā)布 ,它給我們帶來了哪些新的特性了。     首先,我們看看JDK 6.0包含了大量的JSR,分為四組,分別為:     在簡化開發(fā)方面: 199: Compiler API...  閱讀全文
    posted @ 2007-02-08 11:18 wqwqwqwqwq 閱讀(2037) | 評論 (1)編輯 收藏

    前幾天好不容易下到了JDK6mustang,今天恰好有時間升級了一下Netbeans默認的JDK版本。這里簡單的說明一下升級的方法。如果我 們不修改Netbeans的屬性,需要在JavaPlatform manager中加入另一版本的類庫。新建工程后如果要修改類庫,還需要修改項目的類庫屬性,現(xiàn)在通過修改默認的JDK類庫,便可方便很多,更不需要重新 安裝NB。

    我的NB裝在D盤中,可以在該路徑找到文件D:\Netbeans-5.5\etc\Netbeans.conf,我們將原有的默認類庫netbeans_jdkhome="D:\Java\jdk1.5.0_07"修改為 netbeans_jdkhome="D:\Java\jdk1.6.0"便輕松的完成了升級,當然在tools-〉JavaPlatform manager〉中當然也可以將我們慣用的D:\Java\jdk1.5.0_07加入為可選用類庫。

    posted @ 2007-01-30 23:01 wqwqwqwqwq 閱讀(477) | 評論 (0)編輯 收藏
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>拖拽Demo</title>
    <style type="text/CSS">
    body

    {

        margin:0px;

    }

     

    #aim

    {

        position:absolute;

        width:200px;

        height:30px;

        border:1px solid #666666;

        background-color:#FFCCCC;

    }

     

    #sourceLayer, #cloneLayer

    {

        position:absolute;

        width:300px;

        height:50px;

        border:1px solid #666666;

        background-color:#CCCCCC;

        cursor:move;

    }

     

    .docked

    {

        display:none;

        filter:alpha(opacity=100);

    }

     

    .actived

    {

        display:block;

        filter:alpha(opacity=70);

    }

    </style>

    </head>

     

    <body >

     

    <div id="aim">locate</div>

    <div id="sourceLayer" unselectable="off"><img src="http://www.baidu.com/img/logo.gif" alt="Drag Demo">Source of the demo</div>

    <div id="cloneLayer" class="docked" unselectable="off"></div>


    <script type="text/javascript" language="javascript">


    var aim;

    var sourceLayer;

    var cloneLayer;

    var aimX;

    var aimY;

    var orgnX;

    var orgnY;

    var draging = false;

    var offsetX = 0;    

    var offsetY = 0;    

    var back;        

    var thisX ;        

    var thisY ;        

    var time ;

    var stepX ;        

    var stepY ;       



     

    function getLayer(inAim,inSource,inClone)

    {

        aim = document.getElementById(inAim);

        sourceLayer = document.getElementById(inSource);

        cloneLayer = document.getElementById(inClone);

    }

     

    function initDrag(initAimX,initAimY,initOrgnX,initOrgnY)

    {

        aimX = initAimX;

        aimY = initAimY;

        orgnX = initOrgnX;

        orgnY = initOrgnY;

        aim.style.pixelLeft = aimX;

        aim.style.pixelTop = aimY;

        sourceLayer.style.pixelLeft = orgnX;

        sourceLayer.style.pixelTop = orgnY;

        cloneLayer.style.pixelLeft = orgnX;

        cloneLayer.style.pixelTop = orgnY;

    }


    function BeforeDrag()

    {

        if (event.button != 1)

        {

            return;

        }

        cloneLayer.innerHTML = sourceLayer.innerHTML; 容

        offsetX = document.body.scrollLeft + event.clientX - sourceLayer.style.pixelLeft;

        offsetY = document.body.scrollTop + event.clientY - sourceLayer.style.pixelTop;

        cloneLayer.className = "actived";

        draging = true;

    }



    function OnDrag()

    {

        if(!draging)

        {

            return;

        }

        event.returnValue = false;

        cloneLayer.style.pixelLeft = document.body.scrollLeft + event.clientX - offsetX;

        cloneLayer.style.pixelTop = document.body.scrollTop + event.clientY - offsetY;

    }

    function EndDrag()

    {

        if (event.button != 1)

        {

            return;

        }

        draging = false;

     

        if (event.clientX >= aim.style.pixelLeft && event.clientX <= (aim.style.pixelLeft + aim.offsetWidth) &&

            event.clientY >= aim.style.pixelTop && event.clientY <= (aim.style.pixelTop + aim.offsetHeight))

        {


            sourceLayer.style.pixelLeft = aim.style.pixelLeft;

            sourceLayer.style.pixelTop = aim.style.pixelTop;

             cloneLayer.className = "docked";



        }

        else

        {

         thisX = cloneLayer.style.pixelLeft;

         thisY = cloneLayer.style.pixelTop;

         offSetX = Math.abs(thisX - orgnX);

         offSetY = Math.abs(thisY - orgnY);

         time = 500;

         stepX = Math.floor((offSetX/time)*20);

         stepY = Math.floor((offSetY/time)*20);

         if(stepX == 0)

             stepX = 2;

         if(stepY == 0)

             stepY = 2;

         moveStart();

        }   

    }

     

     

    function moveStart()

    {

         back = setInterval("MoveLayer();",15);

    }

     

    function MoveLayer()

    {


         if(cloneLayer.style.pixelLeft <= orgnX && cloneLayer.style.pixelTop <= orgnY)

         {

             cloneLayer.style.pixelLeft += stepX;

             cloneLayer.style.pixelTop += stepY;


             if(cloneLayer.style.pixelLeft > orgnX)

             {

                  stepX = 1;

             }

             if(cloneLayer.style.pixelTop > orgnY)

             {

                  stepY = 1;

             }

             //if the coordinate of X Y  are  same

             if(cloneLayer.style.pixelLeft == orgnX)

             {

                  stepX = 0;

             }

             if(cloneLayer.style.pixelTop == orgnY)

             {

                  stepY = 0;

             }

             if(cloneLayer.style.pixelLeft == orgnX && cloneLayer.style.pixelTop == orgnY)

             {

                  EndMove();

             }

         }

        

         //locate to the downleft of the object

         else if(cloneLayer.style.pixelLeft <= orgnX && cloneLayer.style.pixelTop >= orgnY)

         {

             cloneLayer.style.pixelLeft += stepX;

             cloneLayer.style.pixelTop -= stepY;

             if(cloneLayer.style.pixelLeft > orgnX)

             {

                  stepX = 1;

             }

             if(cloneLayer.style.pixelTop < orgnY)

             {

                  stepY = 1;

             }

             if(cloneLayer.style.pixelLeft == orgnX)

             {

                  stepX = 0;

             }

             if(cloneLayer.style.pixelTop == orgnY)

             {

                  stepY = 0;

             }

             if(cloneLayer.style.pixelLeft == orgnX && cloneLayer.style.pixelTop == orgnY)

             {

                  EndMove();

             }

         }



         else if(cloneLayer.style.pixelLeft >= orgnX && cloneLayer.style.pixelTop <= orgnY)

         {

             cloneLayer.style.pixelLeft -= stepX;

             cloneLayer.style.pixelTop += stepY;

             if(cloneLayer.style.pixelLeft < orgnX)

             {

                  stepX = 1;

             }

             if(cloneLayer.style.pixelTop > orgnY)

             {

                  stepY = 1;

             }

             if(cloneLayer.style.pixelLeft == orgnX)

             {

                  stepX = 0;

             }

             if(cloneLayer.style.pixelTop == orgnY)

             {

                  stepY = 0;

             }

             if(cloneLayer.style.pixelLeft == orgnX && cloneLayer.style.pixelTop == orgnY)

             {

                  EndMove();

             }

         }

        

         //locate to the right of the object

         else if(cloneLayer.style.pixelLeft >= orgnX && cloneLayer.style.pixelTop >= orgnY)

         {

             cloneLayer.style.pixelLeft -= stepX;

             cloneLayer.style.pixelTop -= stepY;

             if(cloneLayer.style.pixelLeft < orgnX)

             {

                  stepX = 1;

             }

             if(cloneLayer.style.pixelTop < orgnY)

             {

                  stepY = 1;

             }

             if(cloneLayer.style.pixelLeft == orgnX)

             {

                  stepX = 0;

             }

             if(cloneLayer.style.pixelTop == orgnY)

             {

                  stepY = 0;

             }

             if(cloneLayer.style.pixelLeft == orgnX && cloneLayer.style.pixelTop == orgnY)

             {

                  EndMove();

             }

         }

        

         //to the design

         else

         {

             EndMove();

         }

    }

     

    //stop and then back to the state ()carton

    function EndMove()

    {

             sourceLayer.style.pixelLeft = orgnX;

             sourceLayer.style.pixelTop = orgnY;

             cloneLayer.style.pixelLeft = orgnX;

             cloneLayer.style.pixelTop = orgnY;

             cloneLayer.className = "docked";

             clearInterval(back);

    }

     

    //Main function of this demo

    function startDraging(inAim,inSource,inClone,initAimX,initAimY,initOrgnX,initOrgnY)

    {

        getLayer(inAim,inSource,inClone)

        initDrag(initAimX,initAimY,initOrgnX,initOrgnY);

        sourceLayer.onmousedown = BeforeDrag;

        document.onmousemove = OnDrag; //if we use cloneLayer,then the content will be draged ,and well a bug

        cloneLayer.onmouseup = EndDrag;   

    }

     

    //transfer

    startDraging("aim","sourceLayer","cloneLayer",600,500,50,50);

    //-->

    </script>

    </body>

    </html>
    posted @ 2007-01-29 14:42 wqwqwqwqwq 閱讀(633) | 評論 (0)編輯 收藏
    As beginning,still don't know how to begin this post~but really should begin to write something about tech.Sometimes some one like to talk that A good bazoo can
    make a good bussiness card~,may be so,may be not,I really want to throw it away,but cannot,just can to learn and write ...off topics...
      From now I propose to write a route about js tech with my learning steps.Ajax is a good thing maybe the world just like it some good but really short. Js is called for the full JavaScriptlanguage,it's welcomed because it can be run at the piont of client and also effective.when we talk about java object orientation is the focus piont which attracts our attention.we can define a class and then a function.But to JS ,when we create a function and make a instance of this function,we just regard it as a class,so we may say a newable function was a class.The class may have its own attributes or methods,but now we can use the sign["~"]to quote it(refer to).
    Now I give a simple example about this
    {449D36E0-28B6-4914-B96E-37606AA5E247}.BMP
    Of course,u can express with arr.push("Eric").After this,I want to say,we can insert,update & delete attributes or methods when we need.As following
    user.name="Eric";
    user.age="21";
    user.sex="male";
    //we insert 3 Atts/
    user.show=function(){
      alert("Name is"+this.name);
    }
    //we insert 1 Mes/
    delete is very very easy,a old story.. we use undefined
    user.name=undefined;
    user.show=undefined;
    //....
    This is js today's post,easiness goes,.~ ..
    posted @ 2007-01-27 23:17 wqwqwqwqwq 閱讀(635) | 評論 (0)編輯 收藏
    I/O
    java的i/o恐怕是java體系里最復雜的內容之一了,有時候這個之一可以去了。不像c語言一個fopen()就可以解決一大堆問題。到了java 呢,又是stream又是reader,讀一個文件的方式不下十種,造成很多人因此而放棄了java,當初剛學java的時候班里很多人都對java有很 高的熱情,可到了現(xiàn)在,不知道還有多少人堅持下來了。具有諷刺意味的事java i/o的設計者的初衷是讓i/o變得簡單一點,哪知道若干年后,弄出這么一大攤子來。現(xiàn)在又加了一個nio----就是newio,不知道日后還會弄出什 么東西來。
     
    用i/o可以解決文件,網絡通訊等幾乎所io問題。功能強大,唯一的缺點就是復雜。但仔細一分析,還是有門路可走的。整個io體系主要分為兩大門派。一派 為流類也就是用于字節(jié)的InputStream和OutputStream,另一派為用于字符的Reader和Writer派(簡稱rw派)。認清了這兩 派就知道*Stream的東東全都是流派的,不是繼承而來就是通過實現(xiàn)接口而來。如此,*Reader,*Writer那就是出身于rw派了。還有一個 File派來處理文件創(chuàng)建,刪除,修改,屬性問題。對文件的內容進行操作不是他的工作。搞清楚這兩大派一小派那么解決io指日可待。
     
    那么說了這么多怎么創(chuàng)建文件呢?舉例說明(主函數(shù)就不寫了)
    File newfile = new File("text.txt");
    newfile.createNewFile();
    這樣就在同一個文件夾下創(chuàng)建了一個名為text.txt的文本文件,那枚怎么刪除呢?
    File newfile = new File("text.txt");
    newfile.delete();
    這樣就把這個文件刪除了。是不是很簡單呢。那么怎么把文件寫入這個文本文件呢?
    File writetext = new File("text.txt");
    [readtext.createNewFile();]//可有可無,因為文件不存在的話,會自動創(chuàng)建
    FileWriter fw = new FileWriter(writetext);//就像創(chuàng)建打印機
    PrintWriter pw = new PrintWriter(fw);//這個呢打印針頭了。
    pw.println("this is a new file for read");//這個是說,把這些東西給我寫進去吧
    fw.close();//然后關閉打印機
    有點復雜,當懂了以后,也就感覺不到什么了,那么如何讀取這個文本文件呢?
    File readtext = new File("text.txt");
    FileReader fr = new FileReaer(readtext);//創(chuàng)建一個掃描儀
    BufferedReader br = new BufferedReader(fr);//這是掃描儀內的緩存
    String content = br.readLine(); //讀一行文本
     
    用熟練了之后可以這么寫:
    BufferedReader in = new BufferedReader(new FileReader("text.txt");
    String content="";
    while((content=in.readLine())!=null){
        System.out.println(content);//讀一行輸出一行
    }
    posted @ 2006-12-04 13:27 wqwqwqwqwq 閱讀(367) | 評論 (0)編輯 收藏
    jar2exe是國產軟件,看來這方面的需求還是很旺盛的。點擊這里下載。
    過程極為簡單,第一步
    第二步,選擇應用程序類型

    第三步,輸入啟動類。輸入帶有 main 方法的類名

    第四步,輸入要生成的 Exe 文件名:

    posted @ 2006-12-04 13:18 wqwqwqwqwq 閱讀(1586) | 評論 (0)編輯 收藏
    正則表達式主要應用于文本的處理,如檢索,替換,檢查錯誤,文字拆分...實在是一言難盡,如果要全部寫出來,一本書都不差不多。還好oreilly已經為我們出了一本了。
     
    講具體內容以前先給個完整的例子,這樣能有個感性的認識。
    import java.util.regex.*;
    public class Regex{
       public static void main(String[] args){
            String text = "my email address is "nicky.jcoder@gmail.com";
            Pattern pattern = Pattern.compile("\\w+@\\w+.\\w+");
            Matcher matcher = pattern.matcher(text);
            if(matcher.find()){
                System.out.println(matcher.group());
            }
     
       }
    }
    把這段程序用jdk或jcreator或水膩的便了。反正運行起來就是了
    輸出結果:xhinker@163.com
    當你看完下面的東西回頭再看看這段程序就會發(fā)現(xiàn),這不過是小菜一碟
     
    字符和字符類

    表格 A: 字符匹配

    操作

    解釋

    例子

    結果

    .

    單個字符匹配

       .ord

    匹配 “ford”, “lord”, “2ord”,

    [ ]

    多個字符列表

       [cng]

    只會匹配 “cord”, “nord”, 和 “gord”

    [^ ]

    不出現(xiàn)字符列表

       [^cn]

    匹配 “lord”, “2ord”, 等. 但不會匹配 “cord” or “nord”



      [a-zA-Z]

    匹配 “aord”, “bord”, “Aord”, “Bord”等



       [^0-9]

    匹配 “Aord”, “aord”, 等. 但不會匹配“2ord”, 等.

     

    表格 B: 重復操作符

    操作

    解釋

    例子

    結果

    ?

    匹配0次或1次

     “?erd”

    匹配 “berd”, “herd”“erd”等

    *

    匹配0次以上

    “n*rd”

    匹配 “nerd”, “nrd”, “neard”, 等.

    +

    匹配1次以上

    “[n]+erd”

    匹配 “nerd”, “nnerd”, 等., 但不匹配 “erd”

    {n}

    匹配n次

    “[a-z]{2}erd”

    匹配“cherd”, “blerd”, 等. 但不匹配 “nerd”, “erd”, “buzzerd”, 等.

    {n,}

    匹配n次以上

    “.{2,}erd”

    匹配 “cherd” and “buzzerd”, but not “nerd”

    {n,N}

    匹配n-N次

     “n[e]{1,2}rd”

    匹配 “nerd” and “neerd”等

     
    常用符號:
    \d:[0-9]
    \D:[^0-9]
    \w:[a-zA-Z0-9]
    \W:[^a-zA-Z0-9]
     
    {?i):大小寫無關
     
    \b和\B分別表示詞邊界和非詞邊界
    當然上面這些只不過是最常用的,寫出幾個正則表達式是沒有問題了。接下來說說java。
    在java里\有其自身的意義,所以在用\s,\d的時候要加上一個\也就是\\s 、\\d \\(等
    java自1.4后開始支持正則表達式,東西都放在java.util.regex包里,用Pattern生成一個模式對象,然后用matcher進行匹 配。如果要輸出匹配結果的話,一定要記得寫上matcher.find();否則會出錯。當然也可以用替換,這就要看你的喜好拉。想看更多的例子就去 jdk幫助文檔。
    posted @ 2006-12-04 13:16 wqwqwqwqwq 閱讀(428) | 評論 (0)編輯 收藏
    如何在java swing里使用JTree,就像下面這樣的樹

    A tree

    手工創(chuàng)建:
    首先,你需要創(chuàng)建一個JScrollPane,然后創(chuàng)建一個JTree,再然后創(chuàng)建節(jié)點TreeNode
    JScrollPane是盛放JTree的容器,JTree是一個結構相當于一個房子的鋼筋框架,真正的內容是節(jié)點node。學過數(shù)據結構里的樹的話可能會好理解一點。寫代碼的時候,三個過程的創(chuàng)建順序不一定,也可以倒著過來寫。
    比如,創(chuàng)建一個簡單的初始化 樹的方法
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.JTree;
    import javax.swing.tree.*;
    public class NewTree {
        public NewTree() {
            JFrame jframe=new JFrame();//創(chuàng)建窗體
            Container c=jframe.getContentPane();//創(chuàng)建容器
           
            JScrollPane scrollPane=new JScrollPane();//創(chuàng)建一個用于樹的容器
            DefaultMutableTreeNode root=new DefaultMutableTreeNode("root");//創(chuàng)建樹根節(jié)點
            DefaultMutableTreeNode file=new DefaultMutableTreeNode("file1");//創(chuàng)建一個文件節(jié)點
            root.add(file);//將文件節(jié)點添加到根節(jié)點下
            JTree tree=new JTree(root);//以根節(jié)點為參數(shù)創(chuàng)建一個樹對象
            scrollPane.setViewportView(tree);//將樹添加到scrollPane里面,并顯示

           
            c.add(scrollPane);//將scrollPane添加到窗體里
            jframe.pack();
            jframe.setVisible(true);
            jframe.addWindowListener(new WindowAdapter(){//這段代碼用于默認關閉
                public void windowClosing(WindowEvent e){
                        System.exit(0);   
                }
            });
        }
        public static void main(String[] args){
            new NewTree();
        }
    }
    結果是這樣的:注意關鍵的是斜體的代碼,其他的都是swing的東西

    那么如何在netbeans里,創(chuàng)建和使用樹呢?好多人看到的都是下面這樣的:

    這是為什么呢?我找過代碼結果沒找到,后來發(fā)現(xiàn)這都是假的,你還是可以通過該改變代碼來創(chuàng)建和使用你的樹:改什么?改TreeModel.
    到源代碼界面下創(chuàng)建一個初始化樹的方法:
    public void treeInitialize(){
       JScrollPane scrollPane=new JScrollPane();
       DefaultMutableTreeNode root=new DefaultMutableTreeNode("root");
       DefaultMutableTreeNode file=new DefaultMutableTreeNode("file1");
       root.add(file);
       JTree tree=new JTree(root);
       TreeModel treeModel = new DefaultTreeModel(root);
       tree.setModel(treeModel);
    }
    注意黑體代碼,這樣在窗體的構造方法中調用treeInitialize()方法,你的樹就被改變了,tree是你用netbeans生成樹對象的引用或者名字,一般會是jTree1。
    接下來就是對樹的操作了,限于篇幅不能再講了
    posted @ 2006-12-04 13:11 wqwqwqwqwq 閱讀(3873) | 評論 (2)編輯 收藏
    今天在sun的網站上轉了一圈,等了好幾天的Visual Web Pack終于出來了.
    先介紹一下
    Creates a new Visual Web Pack project containing an empty web application. This project enables you to use Visual Web Pack features like the Visual Designer to drag and drop JSF components, visual and dialog box support for binding components to data providers, and generation of Java code and Web XML files. The project uses the IDE-generated build script to build, run, and debug your project.
    創(chuàng)建一個可視化頁面工程包 包含一個空白頁面應用程序.這個工程能讓你使用可視化開發(fā)包的各種屬性,諸如用可視化設計工具拖放JSF(java server face)組件,可視化的對話框支持將組件數(shù)據源(或者數(shù)據提供者)綁定在一起,并且生成java代碼和xml頁面文件。這一工程由集成開發(fā)環(huán)境(IDE)生成的構建腳本來構造,執(zhí)行和調試你的項目。
    (翻譯的不好請見諒)
    還支持ajax,呵~~呵~~~。
    最終裝好的效果圖:
    全面支持拖放,呵呵,上次裝了一個java studio creator結果運行死慢死慢的,這一次把這一功能轉移到了netbeans挺好用,速度也不錯,我這臺筆記本都能挺過來,臺式機估計沒什么問題。
    安裝時要注意的地方:
    1.netbeans必須為5.5正式版本,beta版本的檢測不到。點擊進入netbeans首頁
    2.下載JDK 5_60或者以后的版本我用的是JDK 5_09版本,安裝的時候最好不要把原來的卸載,有時候老程序不認新的JDK。點擊進入JDK下載頁面
    點擊這里進入Visual Web Pack 的下載頁面。
    posted @ 2006-12-04 13:07 wqwqwqwqwq 閱讀(2821) | 評論 (2)編輯 收藏

    October 20, 2006 - Anyone who believes college students today are lacking in initiative, creativity, or work ethic should take a close look at the recent accomplishments of a team of students at the Ecole de Technologie Superieure (ETS) in Montreal, Quebec. Over the past three years, this team of 12 has been heads-down working on the mechanical design, electrical system, and Java™ control and navigation software for an AUV—a submarine—and preparing it for the International Autonomous Underwater Competition sponsored by the Association for Unmanned Vehicles Systems International (AUVSI) and the Office of Naval Research (ONR) in San Diego, California.

    SONIA Team
    Click here for more images

    For no college credits, no pay, and no guarantee of success, the ETS team designed and built an AUV that could meet the complex and demanding mission requirements of the competition. Detailed in an 18-page document, these requirements included the ability to autonomously pass through a gate, detect a flashing light, find and connect with a docking station, locate a pipe and drop material into a bin—all underwater and with no communication with the team.

    The submarine is called SONIA, which stands for Système d’Opérations Nautiques Intelligent et Autonome, and is just over one meter long, with a dry weight of 20 kg and a unique box-shaped design. It is equipped with sensors and two color video cameras. Navigation data input is provided by a compass and two gyroscopes as well as active and passive sonar arrays.

    SONIA outperformed all but two of the 21 entries in the student competition, securing a place for ETS on the podium for a fourth year in a row. With an overall budget of just $15,000 U.S. (provided by ETS and a variety of corporate sponsors), the ETS team scored higher than teams with six-figure budgets. The competition was won by the University of Florida, but the ETS team came out ahead of renowned engineering schools such as MIT, Georgia Tech, and Virginia Tech.

    Innovative Design, Expert Software Engineering

    Two of the characteristics that set SONIA apart from competitors were its innovative box-shaped design and the sophistication of its core software systems.

    SONIA underwater
    Click here for more images
    “The traditional tube shape requires a lot of extra design work because electronics boards are square,” said David Mercier, technical leader of the ETS team. “The only disadvantage of the box shape is how it moves through the water, and we overcame that by making the hull out of machined aluminum and hand-polishing it for 25 hours to make it glide through the water more easily.”

    The ETS team’s expertise with Java software proved a decisive advantage. Martin Morissette, software team leader of the SONIA team, is currently entering his third year in software engineering, and recently completed a six-month internship at Sun Labs, where he worked on the “Squawk VM,” a small J2ME™ virtual machine (VM) written almost entirely in Java. The Squawk VM provides the ability to run wireless transducer applications directly on the CPU without any underlying OS, saving overhead and improving performance.

    “I learned a great deal during my time with Sun Labs that was extremely useful in the development of the navigation software for SONIA,” said Morissette. “The fact is, Java is an excellent programming language for robotics. All schools teach Java, so everyone on the software team knows how to use it. It’s object-oriented; it’s portable so it runs on Macs, PCs, Linux, whatever; it’s very efficient so we don’t have to worry about memory management; and there are lots of APIs available. And if you know how to write your applications properly, it can be very fast.”

    The ETS team used Java for mission control and SONIA’s control systems, Java Management Extensions (JMX) for management, and a Java 3-D Simulator to simulate a broad range of mission scenarios. The team is now investigating the possibilities of Real-time Java, introduced at this year’s JavaOne Conference, for AUV and other robotics applications.

    Consensus Building and Peer Review

    According to Mr. Mercier, teamwork was every bit as important as technology in the ETS team’s success. “I can’t stress strongly enough that our ability to work together was the key to our success in the competition,” he said. “This is not about 12 individuals working on separate tasks by themselves. Every step of the way, we worked as a team and built consensus, so in the end everyone learned more. And that’s what this is really all about.”

    For example, each software change was subject to peer review. All team members would receive an e-mail containing the previous version of the software, the new version incorporating a proposed change, and the rationale behind the change. Far from slowing the process down, the peer review concept got more team members more actively engaged, and ultimately resulted in far higher quality, according to Mr. Mercier. These peer reviews also ease the integration of new team members. Being a volunteer based project, volunteers come and go on a regular basis.

    At the same time, the team shared tips and tricks with peers at other educational institutions. “This is more of a friendly rivalry than a dog-eat-dog competition,” said Tennessee Carmel-Veilleux, electrical team leader of the SONIA team. “We like to exchange information with some of the other teams, keep in touch with them. Who knows—we may all be working together some day.”

    In recognition of the team’s willingness to work with other teams, and for achievements at the Unmanned Underwater Vehicle Competition, Felix Pageau, team captain, won the Andy Estabrook Award for "initiative and vision in the unmanned underwater systems.” Given for the first time to a student, the award was presented by the Lindbergh Chapter, San Diego, CA, of the AUVSI. Andy Estabrook was a pioneer in unmanned robotics and this award was created to honor his accomplishments in the advance of unmanned systems technology.

    What’s next for the ETS team? The team itself is growing rapidly, thanks in part to the success at this year’s competition. The team leaders now find themselves in management roles as the team’s ranks have swollen to 34. “We’re going to compete again next year, and we’re going to focus on making our software more stable, more reliable, and faster,” said Mr. Morissette. In the mean time, the team leaders will be presenting their work at a variety of conferences worldwide—from Florida and Washington D.C. to Cologne, Germany.

    And when will they get around to more traditional college activities such as frat parties and beer runs? “Probably never,” said Mr. Mercier. “We’re geeks. We’re doing what we love.”

    For more information:

    posted @ 2006-12-01 20:57 wqwqwqwqwq 閱讀(541) | 評論 (0)編輯 收藏
       Sun Microsystems公司宣布,其免費提供的適用于Solaris和Linux 操作系統(tǒng)的開發(fā)工具――Sun Studio 11軟件,再次就標準性能評測公司(SPEC)提出的新的基準性能標準創(chuàng)立了破記錄的性能記錄。此外,Sun還發(fā)布了Sun Studio Express項目,采用C、C++和Fortan等編程語言的開發(fā)者可以通過該項目預覽Sun Studio未來版本準備提供的新特性。在過去的6個月內,對Sun Studio 11軟件的注冊下載次數(shù)已超過50,000次,Sun Studio Express項目的創(chuàng)立響應了業(yè)界對Sun Studio 11軟件的極大興趣和迅速采用的需求。

    Sun在基于AMD Opteron和UltraSPARC®處理器的系統(tǒng)上,采用Sun Studio 11和Solaris 10軟件,創(chuàng)立了四大基準性能測試中的三項性能測試(SPECint2006、SPECfp2006和SPECint_rate2006)的最高記錄,確 立了Sun在標準性能方面的領導地位。采用Sun Studio 11軟件所具有的先進性能,如自平行技術(Auto-Parallelism Technology),基于AMD Opteron處理器的Sun Fire X4200服務器,其性能超越了基于Intel處理器的競爭對手的系統(tǒng),如HP ProLiant DL380 G4服務器和HP ProLiant DL385服務器。Sun還公布了其旗艦產品Sun Fire E25K服務器的優(yōu)異性能,兌現(xiàn)了它曾對高端商務計算領域做出的承諾。據IDC公司2006年第二季度全球服務器市場季度報告得知,Sun的高端系統(tǒng)針對 Sun Studio軟件做了優(yōu)化,這幫助Sun成為了這一季度內取得市場份額增長的唯一的服務器廠商。

    所創(chuàng)立的SPEC CPU2006基準性能的測試記錄是2006年8月24日發(fā)布的。這一記錄是上個最高記錄的4倍。該基準性能測試針對了各種各樣的負載,得到了實際應用中 更好的適用性結果。這一新的基準性能測試在各種計算密集的負載上測試了計算機處理器、內存架構和編譯器的性能,這些負載應用包括有,蛋白質排序、MPEG -4編碼、XML處理、流體動力學、結構性力學和語音識別等。

    “Sun Studio軟件繼續(xù)顯示了在幫助開發(fā)商最大化其應用程序性能的能力上的領導地位,”Sun公司開發(fā)工具高級總監(jiān)Don Kretsch說,“6個月內50,000次下載,使采用Sun Studio 11軟件的企業(yè)開源開發(fā)者們獲得了諸多好處:減少了開發(fā)時間,提高了便攜性,還改善了他們所開發(fā)的應用程序的性能。”

    Sun Studio 11軟件為開發(fā)者帶來的最大好處之一就是各個組件之間的集成性非常好,這些組件包括有:編譯器優(yōu)化組件、多線程警示調試器、性能分析工具和一個基于 NetBeans的集成開發(fā)環(huán)境(IDE)。這些工具組件還可以在其他的編譯器上工作,這就使開發(fā)者們可以很容易地將Sun Studio工具與他們現(xiàn)有的開發(fā)環(huán)境混和在一起使用。新發(fā)布的Sun Studio Express項目對正在研發(fā)中的Sun Studio未來版本的主要特性將定期予以提供。包括針對Linux的編譯器優(yōu)化組件在內的最新的一些性能在最近于舊金山舉行的2006 LinuxWorld上做了演示。此外,新的Data Race Detection Tool(數(shù)據族探查工具)對現(xiàn)有的多線程庫、多線程工具和編譯器優(yōu)化等特性是一個重要的補充,可使多線程應用的開發(fā)變得更加簡化和容易。

    開發(fā)者可從網站http://developers.sun.com/sunstudio下載免費的、無限制的Sun Studio軟件。

    技術規(guī)格
    • 產品系統(tǒng)要求:

      SPARC 平臺

      • 內存:至少為 512 MB 內存;建議使用 1 GB
      • 磁盤空間:1.7 GB
      • 安裝光盤

      x86/x64 平臺

      • 內存:至少為 512 MB 內存;建議使用 1 GB
      • 磁盤空間 (Solaris OS):1.1 GB
      • 磁盤空間 (Linux OS):0.6 GB
      • 安裝光盤
    • 支持的操作系統(tǒng)::

      Solaris OS

      Solaris 8、9 和 10 操作系統(tǒng)整個 Solaris 軟件組、整個 Solaris 軟件組加 OEM 支持或者開發(fā)人員 Solaris 軟件組

      Linux OS

      • Sun Java Desktop System,版本 3
      • SUSE Linux Enterprise Server 9
      • Red Hat Enterprise Linux 4
    • 許可要求::

      免許可費的運行時庫 (.so) 分發(fā)

    • 使用限制::

      您應承諾軟件不會被設計、許可或計劃用于任何核設施的設計、修建、操作或維護。

    • 支持的相關標準::

      C:

      • ISO/IEC 9899:1999,編程語言 - C ("C99")
      • ISO/IEC 9899:1996,C
      • FIPS 160 標準。
      • K&R C
      • OpenMP C API Version 2.5

      C++:

      • ISO/IEC 14992:2003 C++ 標準
      • OpenMP C++ API 2.5 版

      Fortran:

      • ANSI X3.198-1992 Fortran 90
      • ISO 1539:1991 Fortran
      • ISO/IEC 1539-1:1997 Fortran 95
      • OpenMP Fortran API 2.5 版
    • 第三方兼容應用程序::

      GNU Compiler Collection(Linux 平臺)

    • 升級計劃::

      源和目標級與以前版本的兼容性以及 GNU C/C++ 兼容性功能,簡化升級和采用。


    posted @ 2006-11-17 23:22 wqwqwqwqwq 閱讀(635) | 評論 (0)編輯 收藏
         摘要: 今天翻譯了一篇實錄,先發(fā)到自己的blog上吧,呵呵 開放Java平臺(Micro Edition,微型版)源碼:對話Sun公司移動&嵌入式平臺高級主管香農.林奇 在2006年5月的JavaOne會議上,Sun微系統(tǒng)公司宣布即將開放Java技術的源碼。目前,Sun已經計劃開放大部分Java平臺的源碼,包括在2006年末之前開放Micro Edition (Java ME)和Java平...  閱讀全文
    posted @ 2006-11-15 19:46 wqwqwqwqwq 閱讀(421) | 評論 (5)編輯 收藏

    Sun發(fā)布Solaris ZFS-全球最先進的文檔系統(tǒng)
    Solaris 10 OS最新升級版包括Solaris ZFS 1.0文檔系統(tǒng)
    提供了端到端的數(shù)據完整性,重新定義縮放能力,大大降低數(shù)據管理成本


    (2006年5月25日訊) Sun Microsystems公司發(fā)布了一個具有革命性的新的文檔系統(tǒng)Solaris ZFS 1.0,它提供了多項突破性的功能,包括公共管理任務的自動化、保護數(shù)據免受非法行為的侵害,以及提供實際上無限的縮放能力。Solaris ZFS 1.0將作為我們這個星球上最先進的操作系統(tǒng)Solaris 10 OS的下一個商業(yè)版本的一個組成部分在今年6月份對外正式提供。此外,Solaris 10 OS的最新版本Solaris 10 6/06將先進的前攝性自愈技術和聯(lián)網技術,與對PostgreSQL開源數(shù)據庫的全面支持結合起來,進一步強化了Solaris 10 OS作為宿主高性能的關鍵數(shù)據庫解決方案的首選平臺的地位。

    作為世界上最先進的文檔系統(tǒng),Solaris ZFS可以自動檢測和修改細小的數(shù)據錯誤或遭遇意外侵害的數(shù)據,以提供信息的完整性。Solaris ZFS還因為不需要卷宗管理器而大大簡化了數(shù)據的管理,而卷宗管理器是今天數(shù)據管理事務中最耗時、最費錢的部分。例如,今天,一項典型的系統(tǒng)管理任務可能 需要40多分鐘來完成,但是采用Solaris ZFS,僅僅需要幾秒鐘的時間,且沒有系統(tǒng)宕機的危險,從而大大降低了數(shù)據管理的成本費用。此外,Solaris ZFS還是世界上第一個128位的文檔系統(tǒng),這使系統(tǒng)具有了實際上無限的數(shù)據容量。Solaris ZFS提供的先進的縮放能力和管理能力,使它成為許許多多傳統(tǒng)UNIX?文檔系統(tǒng)的理想替代品。

    Solaris是宿主高性能數(shù)據庫的杰出平臺。最近,Oracle指名Solaris 10 OS作為其開源64位開發(fā)和部署環(huán)境的理想平臺。現(xiàn)在,Sun還將開源PostgreSQL數(shù)據庫集成在Solaris 10 OS的最新版本內,對PostgreSQL數(shù)據庫提供全面支持。Sun與PostgreSQL社團開展合作,讓他們采用Solaris 10 OS提供的各種先進技術,如前攝性自愈技術、Solaris分區(qū)特性和Solaris動態(tài)跟蹤能力(DTrace)等。

    “面對不斷增長的依順性要求,今天的數(shù)據量每9~12個月就要翻番,但今天的文檔系統(tǒng)還植根在上世紀70年代的技術之中,”Sun公司主管系統(tǒng)軟件部的 副總裁Tom Goguen說,“Solaris ZFS從設計之初就是要迎接今天數(shù)據管理的挑戰(zhàn),它的預期壽命是20~30年。這一128位的文檔系統(tǒng)所能存儲的自愈數(shù)據是今天已有文檔系統(tǒng)的160億 倍,同時還大大簡化了卷宗的管理。Solaris ZFS將是今年內發(fā)布的最重要的創(chuàng)新技術之一。”

    Solaris 10是我們這個星球上最先進的操作系統(tǒng),它可在650多款SPARC和x64/x86平臺上運行,獲得來自獨立軟件廠商的2,200多種應用程序的支持。 其無與倫比的功能性和硬件平臺的支持,加上它所提供的行業(yè)唯一的應用兼容性保證,加快了Solaris 10 OS在全球的應用步伐,目前Solaris 10 OS的注冊許可數(shù)已超過450萬。

    具有革命性的新的文檔系統(tǒng)技術

    Solaris ZFS 1.0具有任何其他商用文檔系統(tǒng)技術所無法匹敵的優(yōu)異性能。客戶可以從Solaris ZFS技術中享用到先進的數(shù)據完整性技術、使用和管理的簡易性、難以置信的高性能,以及實際上無限的縮放能力。

    • 端到端的數(shù)據完整性―― 基于校驗和與事務性寫入復制(copy-on-write)機制的突破性的結合,Solaris ZFS可提供滿足CIO和系統(tǒng)管理員要求的數(shù)據準確性。Solaris ZFS擁有先進的錯誤檢測機制,能識別被損壞的數(shù)據,并將之在運行中修改過來。例如,鏡像的一側被意外地重寫,ZFS可以對之檢測、修補和恢復,且完全不 干擾服務的進行。
    • 簡化的管理――Solaris ZFS提供了一種基于共享的架構模式,使所有的共享數(shù)據和功能納入虛擬內存管理。Solaris ZFS文檔系統(tǒng)可以自動地增長或收縮,而無需占據額外存儲空間的卷宗管理器。Solaris ZFS還提供了在任何時間點上對文檔系統(tǒng)進行瞬間快照的能力,這就大大節(jié)約了一般系統(tǒng)管理員手工恢復文檔所花費的時間和資源。
    • 性能的巨大提升――Solaris ZFS的架構設計有助于提高速度。寫入復制的設計可將隨意寫入轉變?yōu)榭焖龠B續(xù)寫入。其輸入/輸出(I/O)帶寬在有數(shù)據存儲時可自動加大。無論工作量如 何,多種字區(qū)尺寸會自動做出最佳配合。智能化的預取感式讀取可加快運行速度。而且,它的高級的、可擴展的I/O子系統(tǒng)設計采用了記分板式的流水線操作和依 賴性時序安排,同樣提供了極大的性能提升。
    • 無限的數(shù)據容量――Solaris ZFS是世界上第一個128位文檔系統(tǒng),具有實際上無限的數(shù)據容量。
    Solaris 10 OS是Solaris Enterprise System的組成部分。Solaris Enterprise System還包括Sun Java Enterprise System (Java ES)、Sun N1 System Manager軟件和Sun Studio Software Developer工具,這些軟件都可免費提供用于開發(fā)和部署。正是具有這么多軟件,使Solaris Enterprise System成為今天可采用的唯一的綜合性開放架構的軟件平臺。欲了解更多的相關信息或得到相關新聞稿件,請訪問http: //www.sun.com/aboutsun/media/presskits/networkcomputing06q2。

    Sun公司簡介

    一個獨具特色的理念――“網絡就是計算機”,指引著Sun各項技術的發(fā)展,為全球各個重要的市場增添活力。Sun共享創(chuàng)新和創(chuàng)建社團的思想體系處于新 一代網絡計算-參與時代-的最前沿。Sun的足跡遍及全球100多個國家和地區(qū),其互聯(lián)網的網址為http://www.sun.com。Sun公司的中 文網址為http://www.sun.com.cn

    ZFS是第一個128位的文件系統(tǒng),同時ZFS又被Sun Microsystems稱作史上最后一個文件系統(tǒng)。因為這個文件系統(tǒng)含有多項創(chuàng)新技術,不僅成功地解決現(xiàn)有文件系統(tǒng)的問題和陋習,而且前瞻性地考量了未 來對存儲空間的需求,單個文件系統(tǒng)可以達到256 quadrillion(264) Zettabytes(221)。 ZFS不僅符合POSIX文件系統(tǒng)的標準,而且提供了許多高級功能比如:Quota(配額),Reservation(預留), Compression(壓縮), Snapshot(快照),Clone(克隆)等。如果你還在堅持使用現(xiàn)有32位或者64位的文件系統(tǒng),如果你還在“痛并不快樂著”地用著各式各樣的 Volume Manager,那就很值得看看這里列出的使用ZFS的十條理由。

    1. 再也不需要fsck, scandisk

    不管你是在用Linux,UNIX還是Windows,相信大家都有過類似的體會:當系統(tǒng)意外斷電或者非法關機,系統(tǒng)重起后發(fā)現(xiàn)文件系統(tǒng)有 inconsistent的問題,這時 候就需要fsck或者scandisk 來修復,這段時間是非常耗時而且最后不一定能夠修復成功。更糟糕的是,如果這是一臺服務器需要做fsck的時候,只能offline(下線),而且現(xiàn)有應 用往往都是大硬盤,相應fsck修 復時間也很長,這對許多使用該服務器的用戶來說幾乎不能忍受的。而使用ZFS后大家可以徹底拋棄fsck這種工具,因為ZFS是一個基于COW(Copy on Write)機制的文件系統(tǒng)。COW是不會對硬盤上現(xiàn)有的文件進行重寫,保證所有硬盤上的文件都是有效的。所以不會有這種inconsistent的概 念,自然就不需要這種工具了。

    2. 管理簡單

      ZFS作為一個全新的文件系統(tǒng),全面拋棄傳統(tǒng)File System + Volume Manager + Storage的架構,所有的存儲設備是通過ZFS Pool進行管理,只要把各種存儲設備加 入同一個ZFS Pool,大家就可以輕松的在這個ZFS Pool管理配置文件系統(tǒng)。大家再也不用牢記各種專業(yè)概念,各種命令newfs, metinit及各種Volume Manager的用法。在ZFS中我們只需要兩個命令,zpool(針 對ZFS Pool管理)和zfs(針對ZFS文件系統(tǒng)的管理),就可以輕松管理128位的文件系統(tǒng)。舉個例子,我們經常會遇到系統(tǒng)數(shù)據增長過 快,現(xiàn)有存儲容量不夠,需要添加硬盤,如果依照傳統(tǒng)的Volume Manager管理方式,那我 們需要預先要考慮很多現(xiàn)有因素,還要預先根據應用計算出需要配置的各種參數(shù)。在ZFS情況下,我們的系統(tǒng)管理員可以徹底解放,再也不需要這種人為的復雜 考慮和計算,我們可以把這些交給ZFS,因為ZFS Pool會自動調節(jié),動態(tài)適應需求。我們只需一個簡單的命令為 這個ZFS Pool加入新的硬盤就可以了:

    zpool add zfs_pool mirror c4t0d0 c5t0d0

      基于這個動態(tài)調節(jié)的ZFS Pool之上的所有的文件系統(tǒng)就可以立即使用到這個新的硬盤,并且會自動的選擇最優(yōu)化的參數(shù)。

      而且ZFS同時也提供圖形化的管理界面,下面是一個ZFS圖形化管理的一個截屏:

    [attachment=2119]

    3. 沒有任何容量限制

    ZFS(Zettabyte File System)文件系統(tǒng)就如其名字所預示,可以提供真正的海量存儲,在現(xiàn)實中幾乎不可能遇到容量問題。在現(xiàn)有的64位kernel(內 核)下,它可以容納達到16 Exabytes(264)大小的單個文件,可以使用264個存儲設備,可以創(chuàng)建264個文件系統(tǒng)。

    4. 完全保證 數(shù)據 的正確和完整

    由于ZFS所有的數(shù)據操作都是基 于Transaction(事務),一組相應的操作會被ZFS解 析為一個事務操作,事務的操作就代表著一組操作要么一起失敗,要么一起成功。而且如前所說,ZFS對 所有的操作是基于COW(Copy on Write), 從而保證設備上的數(shù) 據始終都是有效的,再也不會因為系統(tǒng)崩潰或者意外掉電導致數(shù)據文件的inconsistent。

    還有一種潛在威脅 數(shù)據的可能是來自于硬件設備的問題,比如磁 盤,RAID卡的硬件問題或者驅動bug。現(xiàn)有文件系統(tǒng)通常遇到這個問題,往往只是簡單的把錯誤數(shù)據直接交給上層應用,通常我們把這個問題稱作 Silent Data Corruption。而在ZFS中,對所有數(shù)據不管是用戶數(shù)據還是文件系統(tǒng)自身的metadata數(shù) 據都進行256位的Checksum(校 驗),當ZFS在提交數(shù)據時會進行校驗,徹底杜絕這種Silent Data Corruption情況。

    5. 提供優(yōu)異 性能和擴展性

      和傳統(tǒng)File System + Volume Manager + Storage架構不同,ZFS則是直接基于存儲設備提供所有的功能,因此有自己獨有的創(chuàng)新特性,性能自然非比尋常。

      * Dynamic Striping vs. Static Striping

    由于ZFS是基于COW和一個全局動態(tài)的ZFS Pool,任何一次寫 操作,都是對一塊新數(shù)據塊(Block)的一次寫操作。ZFS從ZFS Pool中動態(tài)挑選出一個最優(yōu)的設備,并且以一個transaction(事 務)線性寫入,充分有效地利用了現(xiàn)有設備的帶寬,我們把這個特性稱為Dynamic Striping。而相對應的Static Striping則是傳統(tǒng)文件系統(tǒng)所使用的方式,Static Striping需要管理員預先對這組Stripe進行正確地計算人為 設置,而且如果加入新的設備則需要再次人為的計算和設置,更為嚴重的是如果人為計算錯誤,則會直接影響系統(tǒng)的性能。而在使用Dynamic Striping這種特性之后,我們根本不需要人為介入,ZFS會自動調整,智能的為你 提供最佳的設備,最快的操作方式。

      * 支持多種 大小的數(shù)據塊(Multiple Block Size)

      ZFS支持多種大小的數(shù)據塊定義,從512字節(jié)到1M字節(jié)。和傳統(tǒng)文件系統(tǒng)往往都是固定大小數(shù)據塊不同,ZFS則是可以動態(tài)的根據不同 大小的文件進行計算,動態(tài)的選擇最佳的數(shù)據塊。

    因為不同大小數(shù)據 塊,直接影響到實際使用硬盤容量和讀取速度。如果使用較小的數(shù)據塊,存儲文件所導致的碎片則較少,讀寫小文件更快一些,但是會導致需要創(chuàng)建更多的 metadata,讀寫大文件則會更費時。如果使用較大的數(shù)據塊,使用的metadata較少,更利于讀寫大文件,但是會導致更多的碎片。ZFS根據實際 調查現(xiàn)有文件使 用的情況,分析出一個選擇數(shù)據塊大小的算法,動態(tài)的根據實際文件大小確定最佳的數(shù)據塊。所以ZFS是 非常智能的,在不需要系統(tǒng)管理員介入,就可以得到一個自我調優(yōu)的結果。當然ZFS也支持用戶對單個文件或者整個文件系統(tǒng) 所使用的數(shù)據塊大小的自定義設置。

      * 智能預讀取(Intelligent Prefetch)

      多數(shù)的操作系 統(tǒng)都 有這種將數(shù)據預先讀取的功能,而ZFS則是建立在文件系統(tǒng)上直接提供的一種更加智能的數(shù)據預讀取功能。它不僅可以智能地識別出多種讀取模式, 進 行提前讀取數(shù)據,而且可以對每個讀取數(shù)據流進行這種預讀取智能識別,這個對許多流媒體提供者來說是件非常好的事情。

      在擴展性上,和現(xiàn)有文件系統(tǒng)多是基于一個受限的靜態(tài)模型不同,ZFS是采用ZFS Pool這個動態(tài)概念,它的metadata也是動態(tài),并且讀寫操作都是可并行的,并且具有優(yōu)先級概念,所以即使在大數(shù)據量,多設備的情況下仍可以保證性能的線性增長。

    6. 自我修復功能

      * ZFS Mirror 和 RAID-Z

    傳統(tǒng)的硬盤Mirror及RAID 4,RAID 5陣列方式都會遇到前面提到過的問題:Silent Data Corruption。如果發(fā)生了某塊硬盤物理問題導致數(shù)據錯誤,現(xiàn)有的Mirror,包括RAID 4,RAID 5陣列會默默地把這個錯誤數(shù)據提交給上層應用。如果這個錯誤發(fā)生在Metadata中,則會直接導致系統(tǒng)的Panic。 而且還有一種更為嚴重的情況是:在RAID 4和RAID 5陣列中,如果系統(tǒng)正在計算Parity數(shù)值,并再次寫入新數(shù)據和新Parity值的時候發(fā)生斷電,那么整個陣列的所有存儲的數(shù)據都毫無意義了。

    在ZFS中則提出了相對應的ZFS Mirror和RAID-Z方式,它在負責讀取數(shù)據的時候會自動和256位校驗碼進行校驗,會主動發(fā)現(xiàn)這種Silent Data Corruption,然后通過相應的Mirror硬 盤或者通過RAID-Z陣列中其他硬盤得到正確的數(shù)據返回給上層應用,并且同時自動修復原硬盤的Data Corruption 。

      * Fault Manager

    在Solaris 10中,包含 一個ZFS診斷引擎和Solaris的 Fault Manager(這也是Solaris 10的 另一個新特性)交互,可以實時地診斷分析并且報告ZFS Pool和存儲設備的錯誤,用戶可以通過Fault Manager及時得到一個非常友善的消息。這個診斷引擎雖然不會采取主動的行為去修復或者解決 問題,但是會在消息中提示系統(tǒng)管理員可采取的動作。類似下面一個ZFS報錯消息,其中REC-ACTION就是建議采取的動作:

    SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major

    EVENT-TIME: Fri Mar 10 11:09:06 MST 2006

    PLATFORM: SUNW,Ultra-60, CSN: -, HOSTNAME: neo

    SOURCE: zfs-diagnosis, REV: 1.0

    EVENT-ID: b55ee13b-cd74-4dff-8aff-ad575c372ef8

    DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information.

    AUTO-RESPONSE: No automated response will occur.

    IMPACT: Fault tolerance of the pool maybe compromised.

    REC-ACTION: Run ’zpool status -x’ and replace the bad device.

    7. 安全

      在安全上,ZFS支持類似NT風格NFSv4版的ACL(讀取控制列表)。而且前面所提到的256位驗證碼,用戶可選擇多種驗證方式,包括SHA-256驗證算法,從而在物理存儲單元級別上保證數(shù)據的安全性。

    8. 超強功能

    ZFS作為“最后一個文件系統(tǒng)”,涵蓋了基本的文件系統(tǒng)和Volume管理的功能,同時 一并提供許多企業(yè)級別的超強功能:Quota(配額),Reservation(預留), Compression(壓 縮), Snapshot(快照),Clone(克隆)。并且速度非常快。有了這個文件系統(tǒng),大家再也不需要任何Volume Manager了。

    9. 兼容性

    ZFS是一個完全兼容POSIX規(guī)范的文件系統(tǒng),所以處于上層的應用程序是完全不受影響。ZFS也提供一個Emulated Volume模塊,可以把任何一個ZFS文件系統(tǒng)作為普通的塊設備使用。同時ZFS也可以使用基于Volume Manager構建的Volume作為存儲設備單 元。這樣在不需要修改應用程序,不修改已有文件系統(tǒng)下,給了大家最大的自由度去獲得ZFS提供的各 種特性。

    10. 開源

      ZFS是Sun Microsystems公 司作為OpenSolaris的一個開源項目運作并且完全免費使用,點擊這里(http://www.opensolaris.org/os/community/zfs/source/) 可以直接瀏覽到ZFS的代碼。 這就代表著我們不僅同時可以享受商業(yè)公司的高質量,也可以獲得開源模式的優(yōu)點。

    雖然目前只有Solaris支持該文件系統(tǒng),但是這種開源的模式必定會促進更多基于ZFS的應用。現(xiàn)在已經有國外開發(fā)者正在將ZFS移植到Linux和 Mac OS上來。如果想要體驗一下ZFS,由于目前它和Solaris 10綁定在一起,所以需要下載最新版的Solaris 10 6/06 (http://www.sun.com/software/solaris/get.jsp)。

    參考:

    Solaris ZFS Administration Guide: http://docs.sun.com/app/docs/doc/819-5461?l=zh&q=ZFS

    Solaris 10 Zone FAQ: http://www.sun.com/software/solaris/faqs/zfs.xml

    Automatic Performance Tuning in the Zettabyte File System: http://tesla.hpl.hp.com/self-manage03/Finals/henson-self-tune.pdf



    posted @ 2006-10-30 10:19 wqwqwqwqwq 閱讀(1516) | 評論 (0)編輯 收藏
      昨天是我sun技術大使入職第一天,即興奮又感覺自己充滿了責任。下周要去北京和兄弟院校的大使,參加技術培訓。
       我一直很努力的學習著,雖然也曾彷徨,也曾摒棄過中國的教育,但是我知道我逃脫不掉,所以我還要好好學習,要保研,很想出國......大三了,讓我認識了sun中國研究院,并加入了sun校園技術大使的行列,讓我榮幸萬分。所以我又不斷地告訴自己,好好學習,好好學習技術,好好服務自己的母校、祖國.....真的
       今天早上,我和幾個同學,早早的起來,出去掛上了Sun技術講座的條幅,去北京前,我會先作一個講座,我真的很感謝我的同學......其實,正是很多小事,才會讓我們真正感動。
    posted @ 2006-10-27 07:49 wqwqwqwqwq 閱讀(443) | 評論 (0)編輯 收藏
    <2006年10月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234




    常用鏈接

    留言簿(10)

    隨筆分類(95)

    隨筆檔案(97)

    文章檔案(10)

    相冊

    J2ME技術網站

    java技術相關

    mess

    搜索

    •  

    最新評論

    閱讀排行榜

    校園夢網網絡電話,中國最優(yōu)秀的網絡電話
    主站蜘蛛池模板: 亚洲日本VA中文字幕久久道具| 亚洲国产精品线在线观看| 亚洲成年看片在线观看| 亚洲午夜av影院| 一级特黄录像免费播放肥| 亚洲日韩在线观看免费视频| 国产大片免费天天看| 亚洲精品视频免费在线观看| xxxxwww免费| 日韩免费视频播播| 国产亚洲精aa成人网站| 亚洲国产老鸭窝一区二区三区| 亚洲无线一二三四区| 亚洲妇女无套内射精| 成人无码区免费A∨直播| 中文字幕免费视频| 日韩成人免费视频播放| 中文字幕人成人乱码亚洲电影| 美女被免费视频网站a国产| 亚洲成av人片天堂网老年人 | 最近2022中文字幕免费视频| www.999精品视频观看免费| 夜色阁亚洲一区二区三区| 亚洲av丰满熟妇在线播放| 亚洲色精品88色婷婷七月丁香| 97亚洲熟妇自偷自拍另类图片| 亚洲七久久之综合七久久| a级毛片免费观看网站| 最近免费字幕中文大全视频 | 少妇亚洲免费精品| 久久综合九九亚洲一区| 亚洲小说图区综合在线| WWW免费视频在线观看播放| 无码一区二区三区AV免费| 国产亚洲精品高清在线| 亚洲三级在线播放| 51午夜精品免费视频| 国内自产拍自a免费毛片| 国产亚洲精品资源在线26u| 亚洲中文字幕无码久久| 99在线免费视频|