網頁

2018年2月18日 星期日

生物分類(biotaxonomy)-2018

picture source:wikipedia
生物分類學通常直接稱分類學是一門研究不同地球生物種類間的異同以及異同程度,闡明生物間的親緣關係、進化過程和發展規律的科學。直到2018年,尚未發現地球以外的生物,也無法確定是否有外星生物存在,更無法比較不同星球間物種的差異,因此生物以地球所發現的原生種類來分類也不包含基因改造生物,或許在有生之年有機會在太陽系的行衛星發現其他生物。目前生物被定義為具備新陳代謝作用,也可發育成長並感應外界環境變化以及行無性或有性生殖繁殖下一代的的有機體。在微生物被發現前,生物最早由生物學的大師林奈(Linnaeus)分為動物與植物兩界。
也有一些不屬於目前生物學分類介於生物和非生物之間的生命形式,也就是只能寄生於細胞或細菌內的病毒,病毒在宿主外並無法表現出活躍的生命形式。最早病毒會依其宿主分類:動物病毒、植物病毒及噬菌體,後來會依產生的疾病分類,例如呼吸道病毒。現在病毒是依其核酸、衣殼的對稱性及是否有包膜來分類。
另外還有歸類為亞病毒因子的普里昂蛋白(prion)是一類僅由蛋白質構成感染性物質,不含遺傳物質核酸。普里昂蛋白會引發哺乳動物的傳染性海綿狀腦病,包括羊搔癢症、狂牛病、庫賈氏症和庫魯病。
要將生物分類,首先要知道生物與非生物的定義,但是目前尚無很明確或精確定義,以病毒來說,雖然可在其他生物體內寄生並複製,但在生物體外就沒有一般生物的特徵如代謝或成長,繁殖等現象。其他如引起狂牛病的普里昂蛋白雖可以造成宿主感染但自體卻無DNA成分。生物學長期以來視DNA為生命遺傳物質,再經由與RNA的轉錄轉譯過程,形成蛋白質,然後再進一步形成組成細胞的各個部分,如細胞膜、胞器等,而細胞則是長久以來被認為組成生命體的最小單位。
Flag Counter

2018年2月11日 星期日

都會圈(Metropolitan Area)-2018

都會圈(又稱城市帶、城市圈、都市群或都市圈及城市群)是指以中心城市為核心,向周圍衛星城市等輻射構成城市的集合區域。都會圈的特點反映在經濟與政治上的關係、產業之間的分工和合作,交通與社會生活、城市規劃和基礎設施建設互相影響,由數個都會圈或單一個龐大的都會圈即可構成完整經濟生活圈,隨著世界人口都市化程度越來越高未來都會圈的數量與規模會進一步擴張。
Flag Counter

2018年2月4日 星期日

HTML 5 地理位置API(HTML 5 Geolocation API)

利用以下HTML 5程式碼可取得你目前所在的地理位置,不過前提是瀏覽器必須要支援以下的語法,比較舊型的瀏覽器已經無法支援HTML 5語法。
<!DOCTYPE html>
<meta charset=utf-8>
<head>
  <title>HTML5 Geolocation API</title>
  <script>
    function $i(id) {return document.getElementById(id);}
  </script>
</head>
<body>
  <table style="border: solid 1px red;">
    <thead>
<tr><th>Attribute</th><th>Value</th><th>Unit</th>
    </tr>
</thead>
    <tbody>
<tr>
        <td>Latitude</td>
        <td id="latitude"></td>
        <td>degree</td>
      </tr>
<tr>
        <td>Longitude</td>
        <td id="longitude"></td>
        <td>degree</td>
      </tr>
<tr>
        <td>Altitude</td>
        <td id="altitude"></td>
        <td>m</td>
      </tr>
<tr>
        <td>Accuracy</td>
        <td id="accuracy"></td>
        <td>m</td>
      </tr>
<tr>
        <td>Altitude Accuracy</td>
        <td id="altitudeAccuracy"></td>
        <td>m</td>
      </tr>
<tr>
        <td>Heading</td>
        <td id="heading"></td>
        <td>degree/s</td>
      </tr>
<tr>
        <td>Speed</td>
        <td id="speed"></td>
        <td>m/s</td>
      </tr>
<tr>
        <td>Timestamp</td>
        <td id="timestamp"></td>
        <td>ms</td>
      </tr>
</tbody>
  </table>
<script>
    if (navigator.geolocation) {
        var geo=navigator.geolocation;
        var option={
              enableAcuracy:false,
              maximumAge:0,
              timeout:60000
              };
        geo.getCurrentPosition(successCallback,
                               errorCallback,
                               option
                               );
        }
    else {alert("This browser doesn't support geolocation function!");}
    function successCallback(position) {
      $i("latitude").innerHTML=position.coords.latitude;
      $i("longitude").innerHTML=position.coords.longitude;
      $i("altitude").innerHTML=position.coords.altitude;
      $i("accuracy").innerHTML=position.coords.accuracy;
      $i("altitudeAccuracy").innerHTML=position.coords.altitudeAccuracy;
      $i("heading").innerHTML=position.coords.heading;
      $i("speed").innerHTML=position.coords.speed;
      $i("timestamp").innerHTML=position.timestamp;
      }
    function errorCallback(error) {
      var errorTypes={
            0:"Unknown Error",
            1:"Permisson Denied",
            2:"Position Unavailable",
            3:"Timeout"
            };
      alert(errorTypes[error.code]);
      alert("code=" + error.code + " " + error.message);
      }
  </script>
</body>

或者 errorCallback(error)也可以改寫成
    function errorCallback(error) {
      var error=0;
      switch (error) {
              case 0:   
              alert(error);
              alert("code=" + error.code + " " + "Unknown Error");
              break;
              case 1:   
              alert(error);
              alert("code=" + error.code + " " + "Permisson Denied");
              break;
              case 2:   
              alert(error);
              alert("code=" + error.code + " " + "Position Unavailable");
              break;
              case 3:   
              alert(error);
              alert("code=" + error.code + " " + "Timeout");
              break;
              default:
              alert(error);
              alert("code=" + error.code + " " + "Unknown Error");
              break;
            };
      }


Flag Counter