Raymond
          Java筆記

          初初接觸Tag的,少有不激動的。就因為它既熟悉又陌生,既簡單又復雜。乍看之下覺得兩下子能弄一個Tag系統(tǒng)出來,再想想又覺得深不可測。可挖掘的東西似乎還有很多很多......

          基于Tag的RSS訂閱 是個好主意。不過首先的確讓人想到spam。Tag同樣存在信息過載的問題。最原始的提高搜索引擎排名的方法,已經(jīng)太多人用過了:在meta的keyword里面貼一堆無關(guān)的關(guān)鍵字:二手、超女、手機、新聞、性感、美女、貼圖、援交、筆記本...... 如何保證不在SPAM Blog上面亂貼Tag?

          限制Tag數(shù)量?沒用,辛苦點多copy幾個副本就完了。

          技術(shù)手段限制?說到底還是成本,技術(shù)手段有高低之分,有成本大小區(qū)別的。除非對Spam特別不介意的,否則多數(shù)用戶狂熱過一段之后,要看有效信息的,最終還是回到少數(shù)幾個“權(quán)威”這里。這些“權(quán)威”不是特定個人就是公司,前者就不是基于Tag了,后者提供的Tag,其實還是Web 1.0的SP,再加一個Tag。

          當然沒必要為了2.0而2.0,我們關(guān)心如何更有效獲取自己想要的有效信息,盡量過濾無關(guān)信息(尤其是Spam)。

          Tag最大的特點,我以為在“交流”二字。自己貼了個自我感覺良好的傻冒Tag,完了還想看看誰跟我一樣傻... 這個將成為Tag存在的最重要的意義之一。

          最有機會整合Tag功能,也是最需要整合Tag功能的網(wǎng)站,是那些比較重視用戶之間交互的網(wǎng)站,例如BSP、交友圈等等
          posted @ 2006-01-12 21:48 Raymond的Java筆記 閱讀(279) | 評論 (0)編輯 收藏
           
          由一個Document對象,轉(zhuǎn)換成String,這個方法我?guī)啄昵皩懙牧耍?BR>
                      TransformerFactory tFactory = TransformerFactory.newInstance();
                      Transformer transformer 
          = tFactory.newTransformer();
                      
          DOMSource source = new DOMSource(inputDoc);
                      StringWriter out 
          = new StringWriter();
                      StreamResult result 
          = new StreamResult(out);
                      transformer.transform(source, result);
                      out.flush();
                      
          return out.toString();

          一直用是沒有問題的,直到今天在resin上面運行,發(fā)現(xiàn)一個奇怪的現(xiàn)象,寫入數(shù)據(jù)庫的中文都變成了類似&#XXXX; 這種編碼。更加奇怪的是我用應用程序的方式運行,是正常沒問題的。我猜想是resin在某個地方做了設置,在網(wǎng)上搜索又一時找不到好方法,不想為了一個小問題轉(zhuǎn)用jdom之類的包。

          研究了一下,找到了解決的辦法。在Transformer對象創(chuàng)建之后加一句:
             
             
          transformer.setOutputProperty("encoding","GBK");

          問題解決了。具體的機制還沒有時間去了解,有空再回頭研究吧。
          posted @ 2006-01-09 17:39 Raymond的Java筆記 閱讀(3914) | 評論 (1)編輯 收藏
           
          歷來對framework的感覺是“夠用就可以”的原則。這次想用struts,主要希望jsp里面的邏輯代碼不要太多。但代價當然是Action類會多起來。完全用Struts的設計,也不是不可以,但是復雜度提高的同時,換了一個不會用struts的人來做,要花太多時間講解。折中了一下,決定只用Struts的Action,并且主要使用DispatchAction,這樣Action的類不用太多。

          至于Error和Message,暫時還是自己定義,Tag Library雖然是個好東西,但是讓頁面更加復雜了(個人感覺),暫時不用。

          posted @ 2006-01-09 13:55 Raymond的Java筆記 閱讀(119) | 評論 (0)編輯 收藏
           
          用Ant在JDK1.5下運行java任務時,如果涉及jaxp的DOM,會拋出異常javax.xml.parsers.FactoryConfigurationError

          解決方法:

          把ant的lib下面的xercesImpl.jar放到你的classpath里面。

          應該是ANT對應的classloader出了問題,感覺哪里是硬編碼了必須拿這個xerces的實現(xiàn)類。
          posted @ 2006-01-06 15:19 Raymond的Java筆記 閱讀(1571) | 評論 (0)編輯 收藏
           

          看到一篇文章批評google reader,說界面用了客戶端的腳本變得有趣,但功能太簡單。

          也許是實話,但界面實在太重要了,有時甚至比功能重要。好的界面,起碼第一眼吸引人,有多留一會的欲望。



          posted @ 2005-12-24 22:00 Raymond的Java筆記 閱讀(83) | 評論 (0)編輯 收藏
           
          寫了個SlideShow的原型,利用image的complete,判斷圖片是否調(diào)用完全,調(diào)用完全以后才顯示,否則是LOADING的圖片,還考慮的是
          1.每調(diào)用一張圖片之前先出現(xiàn)loading的過程,
          2.調(diào)用圖片中不會因為網(wǎng)速和圖片過大而未顯示全,直接跳到下一張,要按順序一張一張播放.
          3.第一次 播放的時候,因為調(diào)用圖片會慢一點,重新播放是調(diào)用CACHE里的,速度就快了

          代碼如下:
          <html>
          <head>
          <title>SlideShow</title>
          <script language="JavaScript1.1">
          <!--
          var yourImages = new Array("http://blog.donews.com/images/blog_donews_com/dodo/79382/o_5540320040330075952.jpg","http://www.iqoo.com/tupian/%D0%C7%D7%F9%B1%DA%D6%BD/iqoo_1113__aries.jpg","http://blog.donews.com/images/blog_donews_com/dodo/79382/o_5540320040330081327.jpg","http://blog.donews.com/images/blog_donews_com/dodo/79382/o_5540320040330081426.jpg")
          var currCount=0
          var stop=false
          function getimg(n){
          preImages= new Image()
          preImages.src = yourImages[n]
          }

          function autoPlay(){
          if(currCount!=yourImages.length){
          document.getElementById("img").style.display="none"
          getimg(currCount)
          document.getElementById("loadingbar").style.display="block"
          setTimeout("loadingImg()",1000)
          }
          else{
          currCount=0;
          if (confirm("播放完畢,是否重新播放?")){
          return autoPlay()
          }
          }
          }
          function loadingImg(){
          if (preImages.complete) {
          document.getElementById("img").src="http://blog.donews.com/images/blog_donews_com/dodo/49134/o_pix.gif"
          document.getElementById("loadingbar").style.display="none"

          document.getElementById("img").style.display="block"

          document.getElementById("img").src=yourImages[currCount]
          currCount=currCount+1
          }
          setTimeout("autoPlay()",4000)
          }
          //-->
          </script>
          </head>
          <body bgcolor="#FFFFFF">
          <div style="width:700px">
          <center>
          <a href="javascript:autoPlay()">自動播放</a><br><br>
          <div id="loadingbar" style="display:none;"><img src=http://blog.donews.com/images/blog_donews_com/dodo/49134/o_loading.gif></div>
          <img id="img" src=http://blog.donews.com/images/blog_donews_com/dodo/49134/o_pix.gif >
          <center>
          </div>
          </body>
          </html>


          文章來源:http://blog.itpub.net/post/7956/49057
          posted @ 2005-12-23 09:53 Raymond的Java筆記 閱讀(125) | 評論 (0)編輯 收藏
           

          cron 是一個可以用來根據(jù)時間、日期、月份、星期的組合來調(diào)度對重復任務的執(zhí)行的守護進程。

          cron 假定系統(tǒng)持續(xù)運行。如果當某任務被調(diào)度時系統(tǒng)不在運行,該任務就不會被執(zhí)行。要調(diào)度一次性的任務,請參閱第 37.2 節(jié)

          要使用 cron 服務,你必須安裝了 vixie-cron RPM 軟件包,而且必須在運行 crond 服務。要判定該軟件包是否已安裝,使用 rpm -q vixie-cron 命令。要判定該服務是否在運行,使用 /sbin/service crond status 命令。

          37.1.1. 配置 cron 任務

          cron 的主配置文件是 /etc/crontab,它包括下面幾行:

          SHELL=/bin/bash
          PATH=/sbin:/bin:/usr/sbin:/usr/bin
          MAILTO=root
          HOME=/
          
          # run-parts
          01 * * * * root run-parts /etc/cron.hourly
          02 4 * * * root run-parts /etc/cron.daily
          22 4 * * 0 root run-parts /etc/cron.weekly
          42 4 1 * * root run-parts /etc/cron.monthly

          前四行是用來配置 cron 任務運行環(huán)境的變量。SHELL 變量的值告訴系統(tǒng)要使用哪個 shell 環(huán)境(在這個例子里是 bash shell);PATH 變量定義用來執(zhí)行命令的路徑。cron 任務的輸出被郵寄給 MAILTO 變量定義的用戶名。如果 MAILTO 變量被定義為空白字符串(MAILTO=""),電子郵件就不會被寄出。HOME 變量可以用來設置在執(zhí)行命令或腳本時使用的主目錄。

          /etc/crontab 文件中的每一行都代表一項任務,它的格式是:

          minute   hour   day   month   dayofweek   command

          • minute — 分鐘,從 0 到 59 之間的任何整數(shù)

          • hour — 小時,從 0 到 23 之間的任何整數(shù)

          • day — 日期,從 1 到 31 之間的任何整數(shù)(如果指定了月份,必須是該月份的有效日期)

          • month — 月份,從 1 到 12 之間的任何整數(shù)(或使用月份的英文簡寫如 jan、feb 等等)

          • dayofweek — 星期,從 0 到 7 之間的任何整數(shù),這里的 0 或 7 代表星期日(或使用星期的英文簡寫如 sun、mon 等等)

          • command — 要執(zhí)行的命令(命令可以是 ls /proc >> /tmp/proc 之類的命令,也可以是執(zhí)行你自行編寫的腳本的命令。)

          在以上任何值中,星號(*)可以用來代表所有有效的值。譬如,月份值中的星號意味著在滿足其它制約條件后每月都執(zhí)行該命令。

          整數(shù)間的短線(-)指定一個整數(shù)范圍。譬如,1-4 意味著整數(shù) 1、2、3、4。

          用逗號(,)隔開的一系列值指定一個列表。譬如,3, 4, 6, 8 標明這四個指定的整數(shù)。

          正斜線(/)可以用來指定間隔頻率。在范圍后加上 /<integer> 意味著在范圍內(nèi)可以跳過 integer。譬如,0-59/2 可以用來在分鐘字段定義每兩分鐘。間隔頻率值還可以和星號一起使用。例如,*/3 的值可以用在月份字段中表示每三個月運行一次任務。

          開頭為井號(#)的行是注釋,不會被處理。

          如你在 /etc/crontab 文件中所見,它使用 run-parts 腳本來執(zhí)行 /etc/cron.hourly/etc/cron.daily/etc/cron.weekly/etc/cron.monthly 目錄中的腳本,這些腳本被相應地每小時、每日、每周、或每月執(zhí)行。這些目錄中的文件應該是 shell 腳本。

          如果某 cron 任務需要根據(jù)調(diào)度來執(zhí)行,而不是每小時、每日、每周、或每月地執(zhí)行,它可以被添加到 /etc/cron.d 目錄中。該目錄中的所有文件使用和 /etc/crontab 中一樣的語法。范例請參見例 37-1

          # record the memory usage of the system every monday 
          # at 3:30AM in the file /tmp/meminfo
          30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
          # run custom script the first day of every month at 4:10AM
          10 4 1 * * /root/scripts/backup.sh

          例 37-1. crontab 的例子

          根用戶以外的用戶可以使用 crontab 工具來配置 cron 任務。所有用戶定義的 crontab 都被保存在 /var/spool/cron 目錄中,并使用創(chuàng)建它們的用戶身份來執(zhí)行。要以某用戶身份創(chuàng)建一個 crontab 項目,登錄為該用戶,然后鍵入 crontab -e 命令,使用由 VISUALEDITOR 環(huán)境變量指定的編輯器來編輯該用戶的 crontab。該文件使用的格式和 /etc/crontab 相同。當對 crontab 所做的改變被保存后,該 crontab 文件就會根據(jù)該用戶名被保存,并寫入文件 /var/spool/cron/username 中。

          cron 守護進程每分鐘都檢查 /etc/crontab 文件、etc/cron.d/ 目錄、以及 /var/spool/cron 目錄中的改變。如果發(fā)現(xiàn)了改變,它們就會被載入內(nèi)存。這樣,當某個 crontab 文件改變后就不必重新啟動守護進程了。

          37.1.2. 控制對 cron 的使用

          /etc/cron.allow/etc/cron.deny 文件被用來限制對 cron 的使用。這兩個使用控制文件的格式都是每行一個用戶。兩個文件都不允許空格。如果使用控制文件被修改了,cron 守護進程(crond)不必被重啟。使用控制文件在每次用戶添加或刪除一項 cron 任務時都會被讀取。

          無論使用控制文件中的規(guī)定如何,根用戶都總是可以使用 cron。

          如果 cron.allow 文件存在,只有其中列出的用戶才被允許使用 cron,并且 cron.deny 文件會被忽略。

          如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用戶都被禁止使用 cron。

          37.1.3. 啟動和停止服務

          要啟動 cron 服務,使用 /sbin/service crond start 命令。要停止該服務,使用 /sbin/service crond stop 命令。推薦你在引導時啟動該服務。



          文章來源:http://blog.itpub.net/post/7956/48958
          posted @ 2005-12-22 09:46 Raymond的Java筆記 閱讀(170) | 評論 (0)編輯 收藏
           

          一臺舊機裝了好多次都不成功,google一下原來因為RedHat對舊款CD-ROM的驅(qū)動支持很差。只好從硬盤裝了。

          用了Grub for Dos也是不成,后來用第一張碟上的一個iso映象燒了張啟動盤,啟動之后再選擇從硬盤安裝。OK!搞定了。



          文章來源:http://blog.itpub.net/post/7956/48897
          posted @ 2005-12-21 09:37 Raymond的Java筆記 閱讀(102) | 評論 (0)編輯 收藏
           

          從硬盤安裝Fedora Core 4

          由于我的IBM240沒有光驅(qū),所以安裝Fedora Core 4我選擇硬盤安裝,但Fedora Core 4跟redhat 9.0的硬盤安裝方法有所不同,redhat不需要要安裝其他軟件,只要把光盤的某個目錄拷貝出,然后dos下啟動就可以安裝,但到了Fedora Core 已經(jīng)沒了類似的目錄,所以硬盤安裝模式有點變化。

          1:首先當然是下載Fedora Core 4的光盤鏡像了,很多地方可以下載,這里提供一個

          ftp://mirror.switch.ch/mirror/fedor...-i386-disc1.iso
          ftp://mirror.switch.ch/mirror/fedor...-i386-disc2.iso
          ftp://mirror.switch.ch/mirror/fedor...-i386-disc3.iso
          ftp://mirror.switch.ch/mirror/fedor...-i386-disc4.iso

          2:把CD1的isolinux目錄解壓到c:下

          3:下載Grub For Dos
          ftp://ftp2.linuxeden.com/tools/grub_for_dos-0.2.0pre13.tar.gz
          解壓把里面的文件和文件夾剪切出,放在解壓后目錄的外邊.此時的路徑為:C:boot

          4:修改boot.ini
          最后面添加這么一行
          C:grldr="GRUB For Dos

          保存退出

          5:修改C:bootgrubmenu.lst

          添加這么幾行

          title Install-Fedora Core 4
          kernel (hd0,0)/isolinux/vmlinuz
          initrd (hd0,0)/isolinux/initrd.img

          注意:我的C盤這里是hd0,0表示第一個ide硬盤第一個分區(qū),大家可根據(jù)自己的需要修改硬盤參數(shù)

          ok,重新啟動系統(tǒng),會看到GRUB For Dos 菜單,選擇后,在安裝媒介選擇硬盤安裝就行。



          文章來源:http://blog.itpub.net/post/7956/48838
          posted @ 2005-12-20 16:53 Raymond的Java筆記 閱讀(114) | 評論 (0)編輯 收藏
           

          想在HTML里面通過DOM用JavaScript操作,弄了半天無法將弄好的style節(jié)點插入document里面去。后來用排除法,驚奇地發(fā)現(xiàn)把style改個別的名字就部出錯了。

          查了一下手冊,原來樣式表的處理是用專門的方法做的,它并不是一個通用的普通Element,Document提供了方法createStyleSheet()來生成一個StyleSheet對象,這個對象再有addRule等其它方法來操作。



          文章來源:http://blog.itpub.net/post/7956/48826
          posted @ 2005-12-20 14:54 Raymond的Java筆記 閱讀(146) | 評論 (0)編輯 收藏
          僅列出標題
          共3頁: 上一頁 1 2 3 下一頁 
           
          主站蜘蛛池模板: 财经| 周口市| 石屏县| 始兴县| 隆尧县| 韶关市| 盘锦市| 延安市| 安图县| 界首市| 龙胜| 石泉县| 普兰县| 司法| 白银市| 于田县| 昂仁县| 南江县| 蕲春县| 静乐县| 文化| 建始县| 临汾市| 边坝县| 枣阳市| 衡水市| 华容县| 南京市| 巫溪县| 佳木斯市| 洱源县| 盘锦市| 永修县| 成都市| 璧山县| 和林格尔县| 湟源县| 鄂温| 山丹县| 张掖市| 中江县|