[轉貼]講解 Subversion 分支與合併:以 TortoiseSVN 為例

http://blog.miniasp.com/post/2010/01/29/Subversion-Branches-and-Merging-using-TortoiseSVN.aspx

在實務的版本控管情境中,套用分支與合併應該是最方便不過的了,會用的人可以得到許多版本控管的好處,但不會用的人卻會因為不理解而害怕使用它,由於 Subversion 1.5 開始新增了 Merge Tracking 功能,可有效降低維護分支的負擔,所以能學會分支與合併的技巧對整個版本管理流程來說會有非常大的幫助,今天我就來講解幾個利用 TortoiseSVN 實際的操作分支與合併的例子。

閱讀全文〈[轉貼]講解 Subversion 分支與合併:以 TortoiseSVN 為例〉

php抓取網頁特定div區塊及圖片

[部分轉貼]php抓取網頁特定div區塊及圖片

//舉一反三
<?php  
//取得指定位址的內容,並儲存至text  
$text=file_get_contents(‘http://www.moea.gov.tw/Mns/populace/activephoto/ActivePhoto.aspx?menu_id=3874&ap_id=1666’);   

//取出div標籤且id為PostContent的內容,並儲存至陣列match  
preg_match(‘/<div[^>]*style=”margin-left: 37px”[^>]*>(.*?) </div>/si’,$text,$match);  
  
//印出match  
//print_r($match);
$length = count($match);
while ($i <= $length) {
echo($match[$i]);
$i++;
}
?>
//
昨天有個朋友在問我說,php怎麼抓取網頁某個div區塊的內容。像funp推推王那樣每次推文都會顯示文章內的圖片,提供縮圖撰擇,又是怎麼做到的?其實這語法出乎意料的簡短…
php抓取網頁特定div區塊及圖片
1. 取得指定網頁內的所有圖片測試
  1. <?php  
  2. //取得指定位址的內容,並儲存至text  
  3. $text=file_get_contents(‘http://andy.diimii.com/’);   
  4.   
  5. //取得所有img標籤,並儲存至二維陣列match  
  6. preg_match_all(‘#<img[^>]*>#i’$text$match);  
  7.   
  8. //印出match  
  9. print_r($match);  
  10. ?>  
2. 取得指定網頁內的第一張圖片測試
  1. <?php  
  2. //取得指定位址的內容,並儲存至text  
  3. $text=file_get_contents(‘http://andy.diimii.com/’);  
  4.   
  5. //取得第一個img標籤,並儲存至陣列match(regex語法與上述同義)  
  6. preg_match(‘/<img[^>]*>/Ui’$text$match);  
  7.   
  8. //印出match  
  9. print_r($match);  
  10. ?>  
3. 取得指定網頁內的特定div區塊(藉由id判斷)測試
  1. <?php  
  2. //取得指定位址的內容,並儲存至text  
  3. $text=file_get_contents(‘http://andy.diimii.com/2009/01/seo%e5%8c%96%e7%9a%84%e9%97%9c%e9%8d%b5%e5%ad%97%e5%bb%a3%e5%91%8a%e9%80%a3%e7%b5%90/’);   
  4.   
  5. //去除換行及空白字元(序列化內容才需使用)  
  6. //$text=str_replace(array(“r”,”n”,”t”,”s”), ”, $text);     
  7.   
  8. //取出div標籤且id為PostContent的內容,並儲存至陣列match  
  9. preg_match(‘/<div[^>]*id=”PostContent”[^>]*>(.*?) </div>/si’,$text,$match);  
  10.   
  11. //印出match[0]  
  12. print($match[0]);  
  13. ?>  
4. 上述2及3的結合測試
  1. <?php  
  2. //取得指定位址的內容,並儲存至text  
  3. $text=file_get_contents(‘http://andy.diimii.com/2009/01/seo%e5%8c%96%e7%9a%84%e9%97%9c%e9%8d%b5%e5%ad%97%e5%bb%a3%e5%91%8a%e9%80%a3%e7%b5%90/’);      
  4.   
  5. //取出div標籤且id為PostContent的內容,並儲存至陣列match  
  6. preg_match(‘/<div[^>]*id=”PostContent”[^>]*>(.*?) </div>/si’,$text,$match);     
  7.   
  8. //取得第一個img標籤,並儲存至陣列match2  
  9. preg_match(‘/<img[^>]*>/Ui’$match[0], $match2);   
  10.   
  11. //印出match2[0]  
  12. print_r($match2[0]);  
  13. ?>  

後記:用正規表達式Regex來做真的很方便,但老實說我規則常會忘掉,記錄一下幾篇文章好了(Regular Expression DetailsPCRE Functions | Introduction to PHP Regex | 天殺的正規表示式…

DOS樹狀清單

DOS樹狀清單

先執行
cmd /u
切到該資料夾
執行
檔名.bat

//code============================

@echo on
rem 註解 把 cmd/u註解(rem) 再輸入test.bat執行

cmd /u

pause
DIR /S /A:-D /B /O:N >> list.txt
list.txt

//================================

http://pbice.blogspot.tw/2010/11/dirunicode.html

用Dir指令列出Unicode檔名清單

我原本就知道MS-DOS模式底下的dir指令可以將結果輸出成文字檔,這樣可以很方便的將所有檔案的檔名做成清單。不過,遇到Unicode檔名該如何處理?看了這篇文章〈利用 dir 將檔案總管中的目錄裏的檔名轉成文字檔〉,覺得很實用,摘記如下:

  1. 先新增一個文字檔(例如list.txt),將編碼改成Unicode。
  2. 輸入cmd /u,以Unicode模式執行。
  3. 執行dir指令,dir >> list.txt。如果只想列出檔名、不要日期、路徑等資訊,可以加參數 b
  4. 注意輸出時一定要有2個輸出符號>>,否則會亂碼。

[轉貼]RSS介紹

http://www.ear.com.tw/rss.htm

    RSS (Really Simple Syndication)是一種將網頁最新訊息以及頭條新聞同步發送予訂閱者的新機制。它透過XML(eXtensible Markup Language)語法來表現資訊內容,讀者自行訂閱想看的新聞內容且不需提供自己的基本資料、電子信箱,避免垃圾信件的困擾,更方便的是可在同一個介面下瀏覽各個篩訂的網站資訊,目前RSS躍然成為改變網路出版的新技術。


 
簡單來說 是一個會自動更新的自動訊息
只需要有RSS的閱讀器

如果有新的文章 訥麼就會自己更新嚕
省去時間 一個一個的去看每個網站

Google 閱讀氣 (RSS閱讀器) http://www.google.com.tw/reader/?tab=yy

[Idea]USB虛擬光碟.虛擬硬碟

想必大家都用過 虛擬光碟
更進階點的 虛擬硬碟

如果把他放在USB內 那樣就是行動式的光碟片(可增減)
這邊的想法是,透過免安裝版的虛擬光碟,來做虛擬光碟機

免安裝版的虛擬光碟
PortableWinCDEmu-3.4 
(介紹:http://portable.easylife.tw/2256)
 軟體下載:
下載點1 下載點2 
 
免費製作ISO
Free ISO Creator

(介紹:http://briian.com/?p=6414)
 軟體下載:
下載點1下載點2

虛擬硬碟
 TrueCrypt
 軟體下載:
下載網址

java script _99乘法表

<html>

<head>

 <title>99乘法表</title>

</head>

<body>

 <Script language = "javaScript">

  document.write("<table border='1'>");

  for(var i =1;i<=9;i++){

   document.write("<tr>");

   for(var j =1;j<=9;j++){

    document.write("<td> "+ j + "*" + i + "=" + i*j +" </td>");

   }

   document.write("</tr>");

  }

  document.write("</table>");

 </script>

</body>

</html>

高階語言轉低階語言

VB6:

total=0

for i = 10 to 1 step -1

total=total+i

next i

//=======================

JAVA:

int total=0;

for(int i=10,i!=0,i–){

 total+=i;

}

//=======================

MOV R0,#0 // total=0

MOV R1,#10 //i=10

MOV R2,#1 //constant1 //有問題 先定義i!=0先吧

MOV R3,#0 //constant0 //後來才是定義i– R2R3 應該是相反的

Loop:

JZ R1,Next;//i=10

ADD R0,R1;//total+i

SUB R1,R2;//i–

JZ R3,Loop;//jump Loop

// ===========================

MOV 等於

SUB 減法

ADD 加法

JZ 跳躍

PHP基本教學

有範例 還瞞好看懂的喔˙ˇ˙

點我連結

簡易留言版:

index.php

 <?php  //一、連結資料庫

  //建立連線:

  @$link = mysql_pconnect("localhost", "ID", "possword");

  //選擇資料庫:

  @mysql_select_db("資料庫") or die("無法選擇資料庫");

 

  //二、執行SQL語法

  // 建立SQL語法

  @$query = "SELECT * FROM 資料表";

 

  //送出SQL語法到資料庫系統

  @$result = mysql_query($query) or die("無法送出" . mysql_error( ));

 

  // 三、取得執行SQL語法後的結果 (指查詢部份)

  while ( $row = mysql_fetch_array($result) ) {

    echo

"<table border='1' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='50%' id='AutoNumber1'>

   <tr>

    <td width='50%'>" .$row['資料欄1']. "</td>

    <td width='50%'>" .$row['資料欄2']. "</td>

  </tr>

</table>";

  }

 

  //四、釋放與Mysql的連線

  @mysql_free_result($result);

?>

<form name="form1" method="post" action="index1.php">

<p>姓名: <input name="資料欄1" type="text" id="資料欄1" size="20"></p>

<p>留言: <input name="資料欄2" type="text" id="資料欄2" size="20"></p>

<p> <input type="submit" name="Submit" value="送出"> <input type="reset" name="Submit2" value="重設"></p>

</form>

 

index1.php

 <?php

  //建立連線:

  @$link = mysql_pconnect("localhost", "ID", "possword");

  //選擇資料庫:

  @mysql_select_db("資料庫") or die("無法選擇資料庫");

 

  //二、執行SQL語法

  // 建立SQL語法

  @$query = "INSERT INTO `資料表` VALUES ('$資料欄1','$資料欄2');";

 

  //送出SQL語法到資料庫系統

  @$result = mysql_query($query) or die("無法送出" . mysql_error( ));

  

  //四、釋放與Mysql的連線

  @mysql_free_result($result);

echo

"<form name='form1' method='post' action='index.php'>".

"預覽! <BR>"."姓名: $資料欄1 <BR>"."留言: $資料欄2 <BR>".

"<p> <input type='submit' name='Submit' value='回上頁'></p>

</form>";

?>

java 6月1日 使用父類別的變數

//6月1日 使用父類別的變數

class Land { // 父類別

String ID_Number;

 

  Land(){ // 建構方法

   

  }

 

  Land(String ID_Number){ // 建構方法

   this.ID_Number=ID_Number;

  }

 

  double area() { // 計算面積

    return 0;

  }

}

class Circle extends Land { // 圓形的土地

   int r; // 半徑(單位:公尺)

   Circle(int  r) { // 建構方法

           this.r = r;

   }

  

   Circle(int  r,String ID_Number) { // 建構方法

           super(ID_Number); //●重要 要再第一個敘述

           this.r = r;

         

   }

   double area() { // 多重定義的版本

           return 3.14 * r * r;

   }

}

class Square extends Land { // 正方形的土地

  int side; // 邊長(單位:公尺)

  Square(int  side) { // 建構方法

          this.side = side;

  }

 

  Square(int side,String ID_Number) { // 建構方法

          super(ID_Number); //●重要 要再第一個敘述

          this.side = side;

  }

  double area() { // 多重定義的版本

          return side * side;

  }

}

class Calculator {

  double price; // 每平方公尺的價格(元)

  Calculator(double price) { // 建構方法

    this.price = price;

  }

  double calculatePrice(Land l) {

     return l.area() * price; // 透過多形呼叫正確的 area() 方法

  }

  double calculateAllPrices(Land… Lands) {

    double total = 0;       // 加總變數

    for(Land l : Lands) { // 一一取出各個物件

      total += calculatePrice(l); // 個別計算並累加

    }

    return total;

  }

}

public class Lands3 {

  public static void main(String[] argv) {

    Circle c = new Circle(5,"Circle_001"); // 一塊圓形的地

    Square s = new Square(5,"Square_001"); // 一塊正方形的地

    Calculator ca = new Calculator(3000.0); // 每平方公尺3000元

    System.out.println(

      "土地編號:" +

        c.ID_Number+" & " + s.ID_Number +

      " 總價值:" +

         ca.calculateAllPrices(c,s)

    );// 使用匿名陣列

  }

}

//執行結果

——————–Configuration: <Default>——————–

土地編號:Circle_001 & Square_001 總價值:310500.0

Process completed.

物件導向程式設計邏輯尋找線上遊戲bug

物件導向程式設計邏輯尋找線上遊戲bug

舉例:

遊戲內有任務 必須有任物品 才能開啟對話 也才能接任務

這時候可能會發生bug

因為:

開啟對話 身上有物品 就能開啟 有些程式設計師 可能會los了 接任務也要檢查 才能扣除該任務品

(直接扣除會有幾種可能 1.當機 2.說你沒此物品=防bug 3.通過)

不然 在開啟對話框後 把東西給(郵寄 丟掉 交易) 等方式 就可以把開啟對話所需的材料 給傳走 卻還是能繼續下一步

這也就是bug之一

舉例:

有任務品 會開啟要不要領賞 開啟領賞窗的時候 卻是偷偷把東西給傳走 這樣就可以重複領

此方式如果成立 也套用於洗錢等問題

因為 賣東西 算好錢之後 卻把東西給傳走 可是卻還是可以賣?! 也就衍生出複製的問題!

斷線 封包造成堵塞 通線後 封包同時送出 也會造成問題

地上有東西 我做撿 可是因為我偷拔線 做了10次檢的動作 之後把線插回 卻撿起來了10次相同物品!!!

可是要是有做一拔線 就斷 這招就不成立

簡單說 能造成 雙重執行 都可能發生複製物品