新加坡銷毀重達9公噸走私象牙 打擊非法交易

摘錄自2020年8月11日中央社報導

新加坡今天(11日)銷毀重達9公噸的非法走私象牙,並透過網路直播,預計數天才能完成銷毀。當局表示,這是全球近年最大的銷毀非法象牙行動,展現星國打擊非法野生動物交易的決心。

根據動保人士估計,每天約有100隻非洲象被意圖盜取象牙等大象身體部位的盜獵者所殺,目前僅存約40萬隻非洲象。

新加坡是非洲與亞洲之間運送非法動物商品的海上航路點。除了對非法運輸的商品採取強硬立場,新加坡去年也宣示,自2021年9月起,將全面禁止國內象牙及其製品銷售。

生物多樣性
國際新聞
新加坡
象牙
野生動物
非洲象
非法盜獵
象牙走私

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

澳洲北領地邊界再封18個月 防原住民染疫

摘錄自2020年8月11日中央社報導

澳洲當局今天(11日)表示,將持續關閉北領地(Northern Territory)邊界18個月,以免其他疫情重災區的民眾進入,藉此保護當地龐大且弱勢的原住民族群。法新社報導,根據政府統計,北領地僅有約25萬人居住,其中30%為原住民。

外界認為澳洲原住民更容易受到武漢肺炎(COVID-19)等疾病的威脅,因為社會經濟與文化因素會影響醫療照護資源的取得及潛在健康問題。許多原住民族群擔憂疫情恐襲擊偏遠且醫療資源有限的原住民社區。

自澳洲爆發疫情以來,北領地確診病例很少,無人病歿。北領地近來不允許維多利亞州(Victoria)及雪梨的人進入當地。

土地利用
國際新聞
澳洲
原住民
疫情下的社會衝突
弱勢族群

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

研究實證!在牛屁股畫假眼睛 能嚇退打獵的獅子

摘錄自2020年8月13日聯合新聞網報導

一項最新研究發現,在牛屁股畫上假眼睛,能有效降低遭獅子或獵豹等掠食動物襲擊的風險。每日郵報與Phys.org報導,這項研究為期四年,由澳洲和波札那的學術與保育單位共同執行,地點選在家畜與掠食動物並存的歐卡萬哥三角洲(Okavango Delta)地區。

研究人員與當地農民合作,對14個最近遭受獅子攻擊的牛群進行塗漆。牛群被分成3組。一組在牛屁股畫上假眼,另外一組畫上簡單的叉號,最後一組保持原狀。結果發現,畫上假眼的牛完全沒事,有4頭畫叉與15頭保持原狀的牛被殺。

研究論文認為,許多生物靠著視覺訊號避免被補食,如蛾、蝴蝶、軟體動物和鳥類等,「研究期間進行塗漆的牲口,可靠著假的視覺器官嚇阻獅子和獵豹等伏擊掠食動物發動攻擊。」

研究人員已經印製英文與札那文的文宣手冊,也承認塗假眼仍有侷限,但波札那保育團體人員告訴南非媒體,「在保護區的邊界,農民與野生動物的衝突可能非常激烈,與野生動物共存讓部分社區承擔巨大的代價」,「我們希望這個簡單、低成本方法能減少部分農夫的負擔。」

※ 本文與 行政院農業委員會 林務局   合作刊登

土地利用
國際新聞
波札那
經濟動物
野生動物和農業共存
與野共生案例故事

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

巴西疫情嚴峻 大沼澤野火煙塵污染雪上加霜

摘錄自2020年08月15日中央通訊社巴西報導

馬托格羅索(Mato Grosso)和南馬托格羅索(Mato Grosso do Sul)所在的中西部,連日來被濃煙壟罩,主因是位於兩州的生物群系大沼澤(Pantanal)發生近20年來最嚴重的野火。野火導致環境中大氣空氣品質惡化,通常伴隨人口呼吸和健康問題增加,再加上武漢肺炎疫情嚴峻,對居民來說更是雪上加霜。

今年1月至8月,整個中西部地區發生的火災數量較2019年同期增加20%,而全球面積最大的濕地大沼澤的現況,也令環保專家擔心。專家指出,目前大沼澤正遭遇近47年來最嚴重乾旱,今年上半年的雨量較預期低40%。

根據巴西國家太空署(Inpe),大沼澤也面臨1990年代末以來最凶猛的野火期,今年至8月12日在大沼澤發生的火災數量,較去年同期增加242%。專家表示,自從去年聯邦政府架空巴西環保署(Ibama)的權力後,大沼澤的監測就開始縮水。亞馬遜的情況也同樣讓人擔心,資料顯示,今年6、7月的火災數量也較去年同期有所增加。

氣候變遷
國際新聞
巴西
森林野火
空氣污染
沼澤

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

第 9 篇:實現分類、標籤、歸檔日期接口

作者:HelloGitHub-追夢人物

我們的博客有一個側邊欄功能,分別列出博客文章的分類列表、標籤列表、歸檔時間列表,通過點擊側邊欄對應的條目,還可以進入相應的頁面。例如點擊某個分類,博客將跳轉到該分類下全部文章列表頁面。這些數據的展示都需要開發對應的接口,以便前端調用獲取數據。

分類列表、標籤列表實現比較簡單,我們這裏給出接口的設計規範,大家可以使用前幾篇教程中學到的知識點輕鬆實現(具體實現可參考 GtiHub 上的源代碼)。

分類列表接口: /categories/

標籤列表接口:/tags/

歸檔日期列表的接口實現稍微複雜一點,因為我們需要從已有文章中歸納文章發表日期。事實上,我們在上一部教程 HelloDjango – Django博客教程(第二版)的 頁面側邊欄:使用自定義模板標籤 已經講解了如何獲取歸檔日期列表,只是當時返回的歸檔日期列表直接用於模板的渲染,而這裏我們需要將歸檔日期列表序列化后通過 API 接口返回。

具體來說,獲取博客文章發表時間歸檔列表的方法是調用查詢集(QuerySet)的 dates 方法,提取記錄中的日期。核心代碼就一句:

Post.objects.dates('created_time', 'month', order='DESC')

這裏 Post.objects.dates 方法會返回一個列表,列表中的元素為每一篇文章(Post)的創建日期(已去重),日期都是 Python 的 date 對象,精確到月份,降序排列。

有了返回的歸檔日期列表,接下來就實現相應的 API 接口視圖函數:

blog/views.py

from rest_framework import mixins, status, viewsets
from rest_framework.decorators import action
from rest_framework.serializers import DateField

class PostViewSet(
    mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet
):
	# ...

    @action(
        methods=["GET"], detail=False, url_path="archive/dates", url_name="archive-date"
    )
    def list_archive_dates(self, request, *args, **kwargs):
        dates = Post.objects.dates("created_time", "month", order="DESC")
        date_field = DateField()
        data = [date_field.to_representation(date) for date in dates]
        return Response(data=data, status=status.HTTP_200_OK)

注意這裏我們涉及到了幾個以前沒有詳細講解過的用法。

一是 action 裝飾器,它用來裝飾一個視圖集中的方法,被裝飾的方法會被 django-rest-framework 的路由自動註冊為一個 API 接口。

回顧一下我們之前在使用視圖集 viewset 時提到過 action(動作)的概念,django-rest-framework 預定義了幾個標準的動作,分別為 list 獲取資源列表,retrieve 獲取單個資源、update 和 partial_update 更新資源、destroy 刪除資源,這些 action 具體的實現方法,分別由 mixins 模塊中的混入類提供。例如 用類視圖實現首頁 API 中我們介紹過 mixins.ListModelMixin,這個混入類提供了 list 動作對應的標準實現,即 list 方法。視圖集中所有以上提及的以標準動作命名的方法,都會被 django-rest-framework 的路由自動註冊為標準的 API 接口。

django-rest-framework 默認只能識別標準命名的視圖集方法並將其註冊為 API,但我們可以添加更多非標準的 action,而為了讓 django-rest-framework 能夠識別這些方法,就需要使用 action 裝飾器進行裝飾。

其實我們可以簡單地將 action 裝飾的方法看作是一個視圖函數的實現,因此可以看到方法傳入的第一個參數為 request 請求對象,函數體就是這個視圖函數需要執行的邏輯,顯然,方法最終必須要返回一個 HTTP 響應對象。

action 裝飾器通常用於在視圖集中添加額外的接口實現。例如這裏我們已有了 PostViewSet 視圖集,標準的 list 實現了獲取文章資源列表的邏輯。我們想添加一個獲取文章歸檔日期列表的接口,因此添加了一個 list_archive_dates 方法,並使用 action 進行裝飾。通常如果要在視圖集中添加額外的接口實現,可以使用如下的模板代碼:

@action(
    methods=["allowed http method name"], 
    detail=False or True, 
    url_path="url/path", 
    url_name="url name"
)
def method_name(self, request, *args, **kwargs):
    # 接口邏輯的具體實現,返回一個 Response

通常 action 裝飾器以下 4 個參數都會設置:

methods:一個列表,指定訪問這個接口時允許的 HTTP 方法(GET、POST、PUT、PATCH、DELETE)

detail:True 或者 False。設置為 True,自動註冊的接口 URL 中會添加一個 pk 路徑參數(請看下面的示例),否則不會。

url_path:自動註冊的接口 URL。

url_name:接口名,主要用於通過接口名字反解對應的 URL。

當然,我們還可以在 action 中設置所有 ViewSet 類所支持的類屬性,例如 serializer_classpagination_classpermission_classes 等,用於覆蓋類視圖中設置的屬性值。

以上是 action 用法的一個基本介紹,現在來分析一下 list_archive_dates 這個 action 來加深理解。

methods 參數指定接口需要通過 GET 方法訪問,detail 為 Falseurl_path 設置為 archive/dates,因此最終自動生成的接口路由就是 /posts/archive/dates/。如果我們設置 detail 為 True,那麼生成的接口路由就是 /posts/<int:pk>/archive/dates/,生成的 URL 中就會多一個 pk 路徑參數。

list_archive_dates 具體的實現邏輯中,以下幾點需要注意:

一是獨立使用序列化字段(Field)。之前序列化字段都是在序列化器(Serializer)裏面使用的,因為通常來說接口需要序列化一個對象的多個字段。而這個接口中只需要序列化一個時間字段(類型為 Python 標準庫中的 datetime.date),所以沒必要單獨定義一個序列化器了,直接拿 django-rest-framework 提供的用於序列化時間類型的 DateField 就可以了。用法也很簡單,實例化序列化字段,調用其 to_representation 方法,將需要序列化的值傳入即可(其實序列化器在序列對象的多個字段時,內部也是分別調用對應序列化字段的 to_representation 方法)。

我們通過列表推導式生成一個序列化后的歸檔日期列表,這個列表是可被序列化的。接着我們在接口返回一個 ResponseResponse 將序列化后的結果包裝返回(保存在 data 屬性中),django-rest-framework 會進一步幫我們把這個 Response 中包含的數據解析為合適的格式(例如 JSON)。

status=status.HTTP_200_OK 指定這個接口返回的狀態碼,HTTP_200_OK 是一個預定義的常數,即 200。django-rest-framework 將常用 HTTP 請求的狀態碼常數預定義 status 模塊里,使用預定義的變量而不是直接使用数字的好處一是增強代碼可讀性,二是減少硬編碼。

由於 PostViewSet 視圖集已經通過 django-rest-framework 的路由進行了註冊,因此 list_archive_dates 也會被連帶着自動註冊為一個接口。啟動開發服務器,訪問 /posts/archive/dates/,就可以看到返回的文章歸檔日期列表。

![文章歸檔日期返回結果](https://blog-1253812787.cos.ap-chengdu.myqcloud.com/

.png)

注意到紅框圈出部分,django-rest-framework API 交互後台會識別到額外定義的 action 並將它們展示出來,點擊就可以進入到相應的 API 頁面。

現在,側邊欄所需要的數據接口就開發完成了,接下來實現返回某一分類、標籤或者歸檔日期下的文章列表接口。

在 使用視圖集簡化代碼 我們開發了獲取全部文章的接口。事實上,分類、標籤或者歸檔日期文章列表的 API,本質上還是返回一個文章列表資源,只不過比首頁 API 返回的文章列表資源多了個“過濾”,只過濾出了指定的部分文章而已。對於這樣的場景,我們可以在請求 API 時加上查詢參數,django-rest-framework 解析查詢參數,然後從全部文章列表中過濾出查詢所指定的文章列表再返回。

這在 RESTful API 的設計中肯定是會遇到的,因此第三方庫 django-filter 幫我們實現了上述所說的查詢過濾功能,而且和 django-rest-framework 有很好的集成,我們可以在 django-rest-framework 中非常方便地使用 django-filter。

既然要使用它,當然是先安裝它(已安裝跳過):pipenv install django-filter

接着我們來配置 PostViewSet,為其設置用於過濾返回結果集的一些屬性,代碼如下:

from django_filters.rest_framework import DjangoFilterBackend
from .filters import PostFilter

class PostViewSet(
    mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet
):
    # ...
    filter_backends = [DjangoFilterBackend]
    filterset_class = PostFilter

非常的簡單,僅僅設置了 filter_backendsfilterset_class 兩個屬性。其中 filter_backends 設置為 DjangoFilterBackend,這樣 API 在返回結果時, django-rest-framework 會調用設置的 backend(這裡是 DjangoFilterBackend) 的 filter 方法對 get_queryset 方法返回的結果進行進一步的過濾,而 DjangoFilterBackend 會依據 filterset_class(這裡是 PostFilter)中定義的過濾規則來過濾查詢結果集。

當然 PostFilter 還沒有定義,我們來定義它。首先在 blog 應用下創建一個 filters.py 文件,用於存放自定義 filter 的代碼,PostFilter 代碼如下:

from django_filters import rest_framework as drf_filters

from .models import Post


class PostFilter(drf_filters.FilterSet):
    created_year = drf_filters.NumberFilter(
        field_name="created_time", lookup_expr="year"
    )
    created_month = drf_filters.NumberFilter(
        field_name="created_time", lookup_expr="month"
    )

    class Meta:
        model = Post
        fields = ["category", "tags", "created_year", "created_month"]

PostFilter 的定義和序列化器 Serializer 非常類似。

categorytags 兩個過濾字段因為是 Post 模型中定義的字段,因此 django-filter 可以自動推斷其過濾規則,只需要在 Meta.fields 中聲明即可。

歸檔日期下的文章列表,我們設計的接口傳遞 2 個查詢參數:年份和月份。由於這兩個字段在 Post 中沒有定義,Post 記錄時間的字段為 created_time,因此我們需要显示地定義查詢規則,定義的規則是:

查詢參數名 = 查詢參數值的類型(查詢的模型字段,查詢表達式)

例如示例中定義的 created_year 查詢參數,查詢參數值的類型為 number,即数字,查詢的模型字段為 created_time,查詢表達式是 year。當用戶傳遞 created_year 查詢參數時,django-filter 實際上會將以上定義的規則翻譯為如下的 ORM 查詢語句:

Post.objects.filter(created_time__year=created_year傳遞的值)

現在回到 API 交互後台,先進到 /post/ 接口下,默認返回了全部文章列表。可以看到右上角多了個過濾器(紅框圈出部分)。

點擊會彈出過濾參數輸入的交互面板,在這裏可以交互式地輸入查詢過濾參數的值。

例如選擇如下的過濾參數,得到查詢的 URL 為:

http://127.0.0.1:10000/api/posts/?category=1&tags=1&created_year=2020&created_month=1

這條查詢返回創建於 2020 年 1 月,id 為 1 的分類下,id 為 1 的標籤下的全部文章。

通過不同的查詢參數組合,就可以得到不同的文章資源列表了。

關注公眾號加入交流群

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

以太坊節點發現協議

本檔前部分翻譯自以太坊定義的節點發現協議(版本4),後半部分給出了源碼實現的大致流程,以幫助理解。

以太坊節點信息的存儲採用的是Kademlia分佈式哈希表。理解節點發現協議主要是理解分佈式哈希表的原理,再加上定義的節點間通信的報文格式,節點ID的定義,距離的計算,加在一起就是以太坊的節點發現協議了。以太坊不同語言版本代碼實現上具體細節可能不同但大致流程思想是相同的。

第一部分——節點發現協議定義

節點ID

每個節點都有一個secp256k1橢圓曲線密碼學ID。節點的公鑰作為標識或節點ID。節點之間的距離為公鑰按位異或或者是公鑰的哈希值按位異或。計算公式如下:

distance(n₁, n₂) = keccak256(n₁) XOR keccak256(n₂)

節點表

節點表在節點發現協議中用於保存鄰節點信息。鄰節點被存在一個包含有K桶的路由表中。協議中\(k=16\),即每個K桶至多含有16個節點條目。每項按時間排序——最新發現更新的節點放在前,其他在後。

每當一個新節點\(N_1\)被發現,就可以插入相應的桶中。如果桶中少於\(k\)個條目,\(N_1\)可添加到桶中第一個條目。如果桶中已含有\(k\)項,桶中最早發現的節點\(N_2\),需要通過發送ping包重新檢測其有效性。如果沒有收到來自\(N_2\)的回復則認為該節點已失效(下線),從路由表中移除並將\(N_1\)添加到桶的前部。

以太坊文檔中Node Table一節有部分內容錯誤, For each 0 ≤ i < 256, every node keeps a k-bucket for nodes of distance between 2i and 2i+1 from itself. ,應該是\([2^i,2^{i+1})\) 。建議閱讀論文Kademlia——A Peer-to-peer Information System Based on the XOR Metric。

端點驗證

為了預防流量放大攻擊,必須驗證查詢的發送者是否參与了發現協議。如果數據包的發送者在過去12小時內發送了具有匹配ping哈希的有效pong響應,則認為該數據包的發送者已經過驗證。

遞歸查找

一次查找會找到\(k\)個距離目標節點最近的節點。節點查找發起后先選取\(a\)個距離目標節點最近的已知節點。隨後同時向這些節點發送FindNode包。其中,\(a\)是一個參數,通常可設為3。發起者繼續向先前查詢到的節點發送FindNode,如此不斷進行遞歸。對獲知的\(k\)個離目標節點最近的節點,選取\(a\)個尚未查詢過的節點向其發送FindNode。無法快速響應的節點將被排除在外,除非他們做出響應。

如果一輪FindNode查詢失敗,即沒有返回任何一個比目前節點中更近的節點,那麼將會繼續向\(k\)個最近節點未被查詢過的節點中發送FindNode

報文協議

節點發現協議報文都是UDP報文,報文中最大的是1280字節。

packet = packet-header || packet-data

數據包頭部:

packet-header = hash || signature || packet-type
hash = keccak256(signature || packet-type || packet-data)
signature = sign(packet-type || packet-data)

當在同一UDP端口上運行多個協議時,hash可使分組格式可識別。除此並無其他目的。每個包都由節點公鑰來簽名,簽名是一個編碼長度為65字節數組,簽名值r,s,簽名驗證值v

消息類型packet-type占單字節。包有效數據在消息類型後面。數據包頭部之後的數據用RLP進行編碼。根據EIP-8,實現應忽略列表中的任何其他元素以及列表后的任何額外數據。

Ping Packet (0x01)

packet-data = [version, from, to, expiration]
version = 4
from = [sender-ip, sender-udp-port, sender-tcp-port]
to = [recipient-ip, recipient-udp-port, 0]packet-data = [ver

expiration字段是UNIX時間戳,如果一個數據包的時戳過期了可能會無法處理。收到ping數據包后,接收節點應回復pong數據包。並可考慮將發送節點添加到節點表中。

如果在過去12小時內未與發送方進行任何通信,則除了pong之外還應發送ping以驗證對端節點。

Pong Packet (0x02)

packet-data = [to, ping-hash, expiration]

Pong是ping的響應。ping-hash須與相應的ping包hash一致。實現時應該忽略那些不含有ping包hash的pong包。

FindNode Packet (0x03)

packet-data = [target, expiration]

FindNode包用於請求距離目的節點近的節點。目標節點ID是一個65字節長度的secp256k1橢圓曲線公鑰。當接收到FindNode,接收端需要回復在本地節點表中距離請求目的節點最近的16個節點。

為了對抗流量放大攻擊,只有被驗證過的FindNode發送者才會被回復鄰節點信息。

Neighbors Packet (0x04)

packet-data = [nodes, expiration]
nodes = [[ip, udp-port, tcp-port, node-id], ... ]

FindNode包的響應。

存在的問題及建議

凡含有expiration字段的數據包都是用於防止數據重放的。因為是絕對時間戳,節點時鐘必要要十分準確以正確驗證時戳的有效性。自從2016年協議發布後起,已經接收到無數的因為用戶的時鐘不準確造成的錯誤報告。

端點驗證是不嚴密是因為FindNode的發送方永遠法確定接收端十分接收到足夠的pong。Geth按如下方式處理:如果在最近12小時內未與收件人進行通信,請通過發送ping啟動該過程。等待來自另一方的ping,回復它然後發送FindNode

第二部分——節點發現協議代碼實現流程
流程圖

節點如何加入到對應的K桶

計算節點之間的距離很簡單,直接按位異或后的值即為兩節點之間的距離值,但節點應該加入那個K桶呢?可以公鑰哈希值按位異或后最高位的值(例如: 異或值0000 ... 0000 0101,則桶距離為3 ),則將節點放入第3個桶中。

為什麼?

主要是要理解二叉樹的拆分過程:
對每一個節點,都可以按照自己的視角對整個二叉樹進行拆分。拆分的規則是:先從根節點開始,把不包含自己的那個子樹拆分出來;然後在剩下的子樹再拆分不包含自己的下一層子樹;以此類推,直到最後只剩下自己。

拆分的最後一個K桶(距離自己最近的那個K桶),只有最後1位不同,異或值為0000 ... 0000 0001,最高位為1,第一個K桶;拆分的倒數第二個K桶,異或值為0000 ... 0000 001x,最高位為2,第二個K桶;依此類推……

在具體實現細節上,以太坊節點節點公鑰是512位,計算距離時的ID是取節點公鑰的哈希,值為256位。所以節點路由表由256個K桶組成,每個K桶最多16個節點。

參考文檔:
Node Discovery Protocol v4
聊聊分佈式散列表(DHT)的原理——以 Kademlia(Kad) 和 Chord 為例
Kademlia——A Peer-to-peer Information System Based on the XOR Metric

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

日本援助隊稱觸礁貨輪或導致模里西斯珊瑚死亡

摘錄自2020年8月25日共同網報導

在模里西斯近海發生日本貨輪燃油洩漏事故,在當地的日本國際緊急援助隊25日舉行記者會,稱觸礁的船體後半部分隨波浪擺動,把下方的珊瑚削成細顆粒狀,有可能因此使海水變渾濁,導致其他地方珊瑚死亡。

船體斷為兩截,前半部分已在24日被沉入深海。緊急援助隊強調有必要迅速撤走後半部分,但模里西斯當局難以撈起船體,已決定到11月1日前在事故現場進行解體。

緊急援助隊表示,通常珊瑚礁淺灘的水中能見度約30公尺,但模里西斯近海一些地方的能見度降至約3公尺。據稱,還發生防止油污漂流的圍油欄損傷珊瑚的情況;燃油還漂流到了紅樹林中,地表的油污可能會因人的踩踏而進入土壤中,有必要慎重開展去除油污的工作。

污染治理
國際新聞
模里西斯
珊瑚
油污攔阻作業
漏油污染
紅樹林

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

炸毀澳洲原住民4.6萬年洞穴 礦商高層1億獎金飛了

摘錄自2020年8月25日聯合新聞網報導

全球最大礦商之一的力拓集團(Rio Tinto)今年5月24日為了開採鐵礦,將澳洲皮爾巴拉(Pilbara)的「尤坎峽谷」(Juukan Gorge)炸毀,引發撻伐。

據報導,近日力拓集團宣布內部懲處,執行長賈克(Jean-Sebastien Jacques)350萬美元(約新台幣1.03億)的年度獎金遭沒收。

尤坎峽谷有4.6萬年歷史,是澳洲原住民已知最早的聚落遺跡之一,也是當地原住民PKKP族(Puutu Kunti Kurrama and Pinikura People)的神聖洞穴。據路透報導,PKKP族代表阿什伯頓(John Ashburton)說:「在澳洲,擁有如此古老歷史的原住民遺址非常少,其重要性無法衡量。這些洞穴的破壞讓我們族人深受打擊,並為失去祖先和我們土地的聯繫而感到難過。」

澳洲廣播公司報導指出,力拓集團自從炸毀這個峽谷後,額外獲得了800萬噸的高級鐵礦石,依據先前的估價,價值高達1.35億美元(約新台幣40.5億元)。

土地利用
國際新聞
澳洲
礦場
原住民
鐵礦石

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

現在買凱美瑞的都哭瞎了,等一下買它更好

並且后懸架形式終於從“老掉牙”的雙連桿懸架換成了支撐性更高的雙A臂后懸架,運動性能更好。所以豐田將新一代凱美瑞作為了新的NSACAR比賽的賽車,該賽事被稱為是美國人的F1比賽。不過別想太多,美規車型最高有着3。5L V6發動機可以選擇,但在我國真正走量的應該會是它的2。

前言

說起豐田凱美瑞,很多人都會覺得它是一輛非常適合家用的中型車。省油、故障率低,但要是讓年輕人或者說是新晉奶爸選的話,凱美瑞很有可能會被排除在外。畢竟現款凱美瑞略有點“老氣橫秋”、缺乏個性,很多人都認為凱美瑞是一款中年人開的車,但新一代凱美瑞絕對能打破你現在的認知。

比起現款更為激進的外觀

新一代凱美瑞的設計比起現款年輕了不少,大燈更加細長。普通版本使用的是類似是雷克薩斯的紡錘式中網設計,或許買回來換成雷克薩斯標也不違和?原霧燈位置被兩個進氣口所代替,有着濃烈的運動感。

而混動版本則維持原來的大氣形象,使用着超大的下格柵設計,而且滿滿的鍍鉻橫向格柵設計是否是你的菜?筆者表示這種過多的鍍鉻裝飾反倒弄得有點low,還不如普通版本稍微增加一點鍍鉻要好看。

(上為普通版本、下為混動版本)

普通版本和混動版本在輪轂上的選擇也是不一樣,普通版本是用的是雙色雙五幅式輪轂,看着非常運動。而混動版本則是多幅式輪轂,樣式平淡但整車配合非常協調。

(上為普通版本、下為混動版本)

在尾部造型上兩者也有着稍微的不同,普通版本向LF-LC概念車借鑒,尾燈下有着淚流式的小裝飾件,後備廂蓋造型也與混動版本不同,用外加式的小“尾翼”代替了混動版本的小鴨尾。而且普通版本使用的是的雙邊兩出共四齣的排氣管設計,相比混動版本的單邊共雙出更好看。

大相徑庭的內飾

單單從內飾來看你應該想象不了這是凱美瑞的內飾,過往凱美瑞內飾都是非常常規的設計,而新款不規則的內飾非常個性,適當的鍍鉻裝飾讓它依然有着舊款的那種檔次感。這種設計風格改變不禁讓人想到,豐田難道把那個“老幹部”設計師辭退了換成了初生牛犢不怕虎的90後設計師?

不過感謝這位設計師並沒有大膽到使用那種反人類的全觸屏式中控面板,基本是按鈕式的設計方便了我們在駕車過程中進行盲操作。鋼琴漆的飾板非常大氣,但這絕對是個指紋收集器,處女座的朋友平時記得帶條手帕擦拭面板。

配置水平,終於玩起了堆配置

一直以來豐田在配置上並沒有給到我們多少的驚喜,但新一代凱美瑞卻是相當的良心,居然標配了Toyota Safety Sense主動安全系統,這是要和本田的安全超感系統硬“肝”的意思?這個系統包括了自適應巡航、自動頭燈、車道偏離系統以及主動剎車,不過這下要想下國產後還能不能保留“標配”的這個優點。

自動駐車以及电子手剎也被加入到新一代凱美瑞上,這下遇到紅綠燈終於不用粗魯地掛入空擋然後踩下左側的腳剎了,逼格明顯上升不少。而且有着駕駛模式選項,更好玩了。

全新平台配合全新動力總成,豐田又不豐田

這次凱美瑞使用了豐田全新的TNGA平台,是第三款使用該平台的車型,有着更輕、更低重心以及更高強度車身的特點。並且后懸架形式終於從“老掉牙”的雙連桿懸架換成了支撐性更高的雙A臂后懸架,運動性能更好。所以豐田將新一代凱美瑞作為了新的NSACAR比賽的賽車,該賽事被稱為是美國人的F1比賽。

不過別想太多,美規車型最高有着3.5L V6發動機可以選擇,但在我國真正走量的應該會是它的2.5L發動機以及混動車型,前者使用的是豐田最新研發的雙噴射發動機,匹配的將是8AT自動變速箱,油耗將比起現款下降不止一個層次。根據豐田的“惰性”,相信它肯定是“很家用”的調校,平穩省油為主。而想要動力更強的2.0T發動機?豐田表示才不要把渦輪增壓發動機放到凱美瑞上呢,畢竟凱美瑞是一款適合家用的中型車。

競爭對手:

本田雅閣

官方指導價:16.98-27.98萬

現款本田雅閣經過改款不算很久的時間,還有着一定的競爭實力,2.0L以及2.4L發動機油耗較低,關鍵的一點是市場優惠較大。但是這都難掩它競爭力下降、需要換代的事實,據外媒消息稱新一代雅閣將增大車身尺寸,並且基於全新平台打造。筆者只想說“本田大法好!”

全新別克君威(未上市)

官方指導價:暫本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

火爆的SUV寶駿560新款上市 不是6AT 卻是……

變化六:自動空調/副駕駛電動座椅相比較手動空調來說還是有一定的實用性的,而副駕駛電動座椅的加入也算是小提升吧。變化七:獨立后懸挂這是許多人十分期待的東西,終於在律動版上與我們見面了,獨立懸挂理論上舒適性和循跡性會更加好。

作為一個音樂愛好者,小編美美從買磁帶機,到買桌面音響,再到買hifi耳機一路走來在這條道路上燒了不少錢。

成為汽車編輯后,小編美美有機會試駕到各種豪車,而坐上豪車小編美美除了感受動力底盤駕駛感受之外,也總是不會忘記了聽一聽豪車上那醉人的音響系統。

在小編美美的心中,最讓人心動的音響就是沃爾沃的B&W音響和路虎車上常見的英國之寶。而奔馳車上的柏林之聲、哈曼卡頓也十分動聽。當然這些車都有一個統一的特點,就是貴。

那麼要買一台音質好的車要多少錢呢?想想自主車中搭載JBL的江淮瑞風A60,搭載燕飛利仕的吉利博瑞都要15萬以上,不過最近有一款10萬不到的自主SUV卻也搭載了高端音響,它就是寶駿560律動版。

那麼關於560這款車型大家已經是再熟悉不過了,大空間高配置這些大家都知道,對於它的外觀內飾等部分小編美美不再過多介紹,對於新上市的律動版大家肯定有一些十分關心的問題, 那麼小編美美就整理了5個問題,看看有沒有你想知道的。

1、律動版售價多少?

2、律動版有什麼變化?

變化一:木紋內飾

這個好不好看看你自己的喜好。

變化二:全景影像

新手神器,當然這個只在高配車型上出現。

變化三:电子手剎

檔次感更好,使用更方便,並且也有autohold功能,不錯不錯。

變化四:全景天窗

增加車內的開揚感,尤其是對於後排有利。

變化五:全LED尾燈

層次感更加好,點亮速度更好。主要是看起來更加高檔呀。

變化六:自動空調/副駕駛電動座椅

相比較手動空調來說還是有一定的實用性的,而副駕駛電動座椅的加入也算是小提升吧。

變化七:獨立后懸挂

這是許多人十分期待的東西,終於在律動版上與我們見面了,獨立懸挂理論上舒適性和循跡性會更加好。

變化八:燕飛利仕音響

這也是變化的重中之重,音響的規格同級第一,至於表現如何,接下來為你分析。

3、律動版貴嗎?

相比較售價9.48萬的寶駿560 2016款 1.5T 手動豪華型來說,貴了4000塊的律動版手動樂享型多出了獨立后懸挂、电子手剎、自動駐車和燕飛利仕音響,因此律動版還是十分有性價比的。

4、為何會有律動版?

律動版的推出讓小編美美感到意外,寶駿560是同級車型中第一個主打高端音質的車型,哈曼旗下的燕飛利仕音響再10萬內的車型上使用在小編美美印象中也十分罕見,就在2016年的年尾,上汽通用五菱與哈曼(中國)正式合作,因此就有了560律動版,或許是寶駿對於音質的重視,又或者是基盤用戶的需求,總之哈曼正式簽手了上汽通用五菱,接下來估計會有搭載哈曼音響的寶駿730、寶駿510等車型。

5、燕飛利仕音響如何?

如果你是和hifi迷的話,對於燕飛利仕肯定不會陌生,燕飛利仕是哈曼旗下的音響品牌,誕生於1968年,在汽車音響領域燕飛利仕的使用也十分常見,索納塔、吉利博瑞等車型都使用了燕飛利仕音響,寶駿560這次使用的燕飛利仕音響有9個揚聲器,前後車門各2個160mm低音揚聲器+25mm高音揚聲器,加上備胎處的170mm重低音單元。根據經驗來看,由於重低音單元沒有在車身上固定而是採用備胎處箱體的設計,因此對於低音綿密的歌曲的低音處理應該會比較模糊。

但是這並不會影響寶駿560成為同級音質最好的車型。

總結

對於買車,有的人追求舒適,有的人追求動力,而有的人則是對音響的要求十分高,在10萬左右的汽車消費者中相信有不少人都是喜歡好音質的,因此把音質作為賣點的560律動版在下一步大棋,對於基盤用戶來說,即使不在乎音質,那麼懸挂以及細節的升級也會讓他們拍手叫好,而對於10萬左右的汽車消費者,衝著哈曼的高級音質買560也是可以預見的,不再局促於五菱寶駿常提到的基盤用戶之後,寶駿開始勇敢地賣出自己的腳步,無論如何寶駿560律動都是值得表揚的,而律動版的升級也是誠意十足。

只是,小編美美想弱弱地問一句?6AT車型什麼時候來?本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準