我家也有太陽能:屋頂型太陽能對鳥兒的致命吸引力

文:宋瑞文(加州能源特約撰述)

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

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

智慧電動機車與電池交換站體系並進,Gogoro 打造「平民特斯拉」

  台灣新創企業 Gogoro 挾著創辦人陸學森、主要投資人尹衍樑,以及 1.5 億美元募資總額,吸引了產業界的注意。Gogoro 揭櫫智慧城市與智慧能源的大方向,但主要專利卻集中在電動機車相關領域,電動機車與智慧城市的連結乍看似乎有些牽強,使得產業界相當好奇 Gogoro 為何研發機車卻言必稱智慧城市?   至 CES 2015,謎底揭曉,Gogoro 一方面展出設計與功能上均讓人驚豔的智慧電動機車,但更重要的戰略性意義,則在於搭配機車的電池交換站體系之上,電池交換站體系不僅作為電動機車的後勤系統,更可望藉由機車位入口,打進未來智慧城市基礎建設的重要領域。   Gogoro 先前對其產品三緘其口,頗有蘋果飢餓行銷策略之風範,也成功的引起媒體關注與好奇,CES 2015 上正式發表產品後,國內外多家科技媒體均第一時間報導,一時成為產業新聞熱門焦點,Gogoro 此次產品發表,較引人注目的主體是智慧電動機車,但實際上,Gogoro 可說是同時發表兩種產品,電動機車只是其一,電動機車的電池交換站則可說是另一個關鍵產品,兩者的戰略性一樣重要。  
 

   
革新電動車充電   Gogoro 電池交換站「GoStation」,系統設計風格相當簡潔,大小約如同一般的 ATM 機台,全白機身微微傾斜,上有 8 個容納電池的槽孔,頂端為智慧面板,旁邊可以單體 8 個槽孔為單位擴充,以利在熱門地段,能提供更多交換用電池,電池上有綠色提把設計,點綴於白色整體外觀之中,可說兼具時尚與實用的風格,這樣的設計可說較為偏向消費性電子產品風格,而非傳統的汽機車設計風格。  
 

    Gogoro 電動機車使用的電池與特斯拉(Tesla)Model S 電動車相同,為 Panasonic 18650 鋰電池,這呼應了先前 Gogoro 與 Panasonic 合作的消息,電池外觀大小有如鞋盒大小,重約 9 公斤,為一般人雙手可提起的重量,內建 NFC 等 25 種感測器,Gogoro 主打電池交換概念,當機車騎到電池沒電時,並不用慢慢等著充電,而是騎到 GoStation,將機車電池取出,放入空槽孔中,6 秒鐘後,會由其他槽孔跳出充滿電力的電池,拿取後直接上路。  
 

    (Source:)   過去電動機車為人詬病之處就是充電慢、行駛距離不足,但若能在城市中遍布 GoStation,則可解決此二個問題,因為隨時交換電池只需 6 秒鐘,只要在 GoStation 普及的範圍內,可說實際上不用擔心行駛距離問題,而由於機車在亞洲大多為市區交通,如通勤、快遞送貨等使用,只要能在市區內普遍設立 GoStation,就可大為提升電動機車的實用性,解除過去電動機車銷售上最大的障礙。而 GoStation 設置成本也並不高,每座約為 1 萬美元。    
邁入智慧城市   另一方面,GoStation 與交通有關、存有大量電池,並與電力網路相連結的特性,一旦普遍設立,將成為進軍智慧城市的踏腳石。   智慧城市的重要領域包括交通、能源、水資源、保健、廢棄物處理等領域,GoStation 的交換資料,能夠讓城市政府交通相關單位掌握機車的使用熱點,進而做出更好的市政規劃,而 GoStation 內部存放大量充電中的電池,在歐美,類似的設施,如特斯拉的電池交換站,都設想到可以同時作為智慧電網的一環,如當市區內某區域能源需求突增,可由附近的站點暫停充電,甚至從電池饋電,來因應變化,而不至於跳電,而 GoStation 也可能在夜間電力離峰時間充電,降低白天尖峰的用電壓力。  
 

 

  除此之外,《富比世》(Forbes)報導,陸學森表示,當大都會人口成長,尖峰用電需求不斷上升,想像 Gogoro 智慧電動機車與 GoStation 能收集車主何時、在何處交通的資料,將有助於城市的智慧電網了解與預測用電需求,因而能提早因應。如此一來,城市電力網路將不必為了尖峰流量而大幅擴建或更新輸配系統,可節省大量預算。   陸學森接受科技媒體《SlashGear》採訪時也指出,在都會化的趨勢下,世界最終將有 6 成人口居住在大城市之中,而目前的都市居民有 12% 的收入,都花費在能源相關的開銷上,其中有一半是汽油,若能節約這一大部分的開支,不僅對人類有幫助,也是廣大的市場,更有助於降低全球碳排放。   由此可知,GoStation 不僅只是推動電動機車的推手,其最終願景為協助城市以及電力網路智慧化。此外,GoStation 的智慧面板,若與智慧城市的資訊系統結合,不僅可提供氣候等資訊,甚至可能作為智慧服務功能。    
以亞洲都市為起點   智慧城市目前為全球主流趨勢,在台灣也成為多個市政府的重要施政目標,如台北市長柯文哲即期望建立智慧政府、智慧城市與智慧市民,也因此造成資訊局長一度難產,最初柯文哲市長期待新任資訊局長能夠成為台北智慧城市的資訊長,然而,智慧城市牽涉專業領域過廣,並非單一一人所能勝任,所需要的人才規格,也非市政府的薪資標準所能負擔,於是有了「香蕉的待遇只能僱到猴子」之嘆,最後折衷辦法為市府成立智慧城市委員會,由各領域專業的委員協助制定策略,資訊局負責執行。   由台北市資訊局長一度難產,可看出智慧城市千頭萬緒,對每個城市來說都是相當大的挑戰,若城市內以機車需求,由民間力量普設 GoStation,將可成為智慧城市推動的一大助力。  
 
 
 
 
 
  (Source:)
 
 
 
 
    Gogoro 於 CES 2015 中透露,2015 年將於一個亞洲城市開始進行 GoStation 計畫,但尚未明言將為哪個城市,可說繼承一貫的飢餓行銷策略,推測 Gogoro 可能於下一個消費性電子展會或是汽機車重要展會發表其首要主打城市。而《富比世》則報導,Gogoro 將選擇超過 1,000 萬人口的大都會,作為第一個起步的城市。    
消費性電子產品設計思維   然而,如此廣大的願景,仍然要 Gogoro 的智慧電動機車本身成功,才有可能成真。在機車本身,Gogoro 的表現可說也讓人相當驚艷,其機車的設計可說跳脫了傳統電動機車的既定印象,與 GoStation 的設計風格一樣,偏向消費性電子產品風格,而非傳統的汽機車設計風格,多家歐美科技媒體認為,這樣的特立獨行風格,來自於陸學森為設計消費性電子產品出身,過去從未設計過機車。但如此一來,反而帶來了新鮮感。科技媒體《The Verge》譽為「你所買得起最酷的機車」。   機車車身與零組件也與過去電動機車不同,並不利用現有機車零組件,全數零組件含傳動系統、懸吊系統、前後輪碟煞、LED 車燈、底盤與所有的電子系統都是由 Gogoro 原創設計打造。  

  機車的車身可說以輕便、小巧、簡潔的都市風格為主,在性能上,可由停車狀態在 4.2 秒鐘內加速到 30 英里(48.3 公里),最高速度約達 60 英里(96.6 公里),內建雙電池槽,兩個電池都充滿電的狀態下,行駛距離達 100 公里,以市區行駛來說這樣的性能與續航力已經相當足夠,CES 2015 上 Gogoro 更展示機車壓車快速轉彎與燒胎,宣告其智慧電動機車絕非過去一般人印象中「無力」的舊式電動機車。  

    (Source:)   目前全球機車市場最主流的機車為 125cc 車種,約佔 8 成市場,Gogoro 也以 125cc 為「假想敵」,其傳動系統動力在鋁輕量化車身上的表現,比 125cc 對手快上 16%。而 Gogoro 機車也加強防水性,而比內燃機機車防水性更佳,當亞熱帶地區下大雨積水,傳統機車擔心排氣管浸水拋錨,Gogoro 機車卻沒有這樣的顧慮。   Gogoro 強調其產品為智慧電動機車(Smartscooter),非僅是一般電動機車,身為智慧產品,除了頭燈會在天色暗時自動開啟這種智慧功能以外,與智慧型手機的連結更是重點。  
 

     
電動車與智慧手機的結合   陸學森曾於宏達電任職的經歷,為 Gogoro 帶來了更完整的與智慧型手機整合的概念,除了會在智慧型手機 app上顯示基本的行駛路線、電池電力等資料,可以用 app 開行李箱,以及可透過手機 app 個人化設定諸如機車面板顏色、鎖車燈號顏色等等以外,車身上有 30 種感測器,含電池上的 25 種感測器,隨時檢查車身與電池狀況,每 10 分鐘回報,若是車子有了任何問題,就會即時在手機上通知車主,若是車主沒有看手機,則會在下次交換電池時,在 GoStation 的智慧螢幕上通知車主,確保車主的安全。  
 

  (Source:)   Gogoro 智慧電動機車還有一個對手機重度使用者最貼心的功能:在行李箱裡頭就有 USB 埠可以幫手機充電。   車身上的感測器更結合了演算法,當車主買回 Gogoro 智慧電動機車,開始騎乘後,感測器收集的資料,會讓智慧電動機車不斷學習車主的行駛模式,一邊調整能源管理模式,最後,機車的能源管理,將能完全配合車主的日常需求,達到最省電的效果。    
用手機模式走一條不一樣的路   甚至連電動機車的商業模式也可能模仿手機。手機往往與電信業者結合,以便宜價格推出,但是收取服務費用,《富比世》報導,Gogoro 表示,電動車最大的成本來源就是電池,電池本身佔 4 成成本,若把電池與充電迴路除去,機車車身成本就會大為降低,如此一來,Gogoro 將可以追求手機商業模式,也就是說,機車本身以相當低廉的價格販售,主要從電池充電服務收費來得到營收。   如此一來,更能避免電動機車過去不能普及的另一個主要障礙:價格過高。Gogoro 雖然尚未宣布其價格,但預期若在手機商業模式下的補貼後,將比想像中低,由於其設計風格,與可能的低價,相對於特斯拉的高價,科技媒體《SlashGear》將 Gogoro 譽為「平民特斯拉」(Tesla for the everyone)。   大部分國內媒體,將 Gogoro 視為一般電動機車報導,但從許多外媒報導可看出,歐美媒體以及產業界已經看出 Gogoro 的野心與潛力,全球目前估計約有 2 億輛機車,而機車產業已經幾乎 20 年沒有重大創新,的確是進行破壞式創新的適當領域,而 Gogoro 結合智慧城市概念的遠大願景,將從哪個城市開始落實,發展是否順利,不僅是電動機車界動見觀瞻,也將成為智慧能源與智慧城市領域的注意焦點。   (首圖來源:)      本文全文授權轉載自《科技新報》─〈〉

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

常見的索引模型淺析

  索引的出現是為了提高數據庫查詢的效率,就像書的目錄一樣。常見的索引模型有哈希表、有序數組、B+樹。

  • 自適應哈希索引(AHI)

  哈希表是一種常見的數據結構,即通過哈希算法計算出一個数字在表中的位置,並將数字存入該表。哈希索引就是通過哈希表來實現的,一般情況下查找時間複雜度為O(1)。InnoDB會監控對錶上各索引頁的查詢,會自動根據訪問的頻率和模式為某些熱點頁建立哈希索引,所以又叫自適應哈希索引,訪問模式一樣指查詢的條件一樣。

  比如我們維護一張身份證信息和用戶姓名的表,需要根據身份證號查詢姓名,哈希索引大概是這樣的:

  哈希索引適合只有等值查詢的場景,例如select * from T where index_col = ‘##’。哈希索引是無序的,如果需要區間查詢,那就要把所有數據掃描一遍。

  • 有序數組索引

  有序數組在等值查詢和區間查詢場景中效率都很高,同樣用上面的表舉例,索引大概是這樣的:

  要查詢某條數據或者區間的時候,使用二分法時間複雜度為O(logN)。但如果需要在中間更新數據時,那麼就要移動後面所有的數據。有序數組索引只適用於靜態存儲引擎,比如保存2019年度學校所有學生信息。

  • B+樹索引

  B+樹是為磁盤或其他直接存取輔助設備設計的一種平衡查找樹。下面是一顆高度為2的B+樹,所有記錄都在恭弘=叶 恭弘子結點上順序存放,恭弘=叶 恭弘子結點通過指針相連。

  B+樹索引就是B+樹在數據庫中的實現,由於B+索引在數據庫中具有高扇出性,在數據庫中B+樹的高度一般為2~4層。查找某一鍵值的行記錄時最多只需要2~4次IO。以InnoDB的一個整数字段索引為例,這顆B+樹大概是1200叉樹,這裏N叉樹的N取決於數據塊的大小。高度為4的時候就可以存1200的3次方個值,大概為17億。考慮到樹根的數據塊總是在內存中,一個10億行的表上一個整数字段的索引,查找一個值最多只需要訪問3次磁盤。

  在InnoDB存儲引擎中,表是根據主鍵順序存放的。根據恭弘=叶 恭弘子結點內容,B+樹索引又分為聚簇索引和輔助索引。

    • 聚簇索引:按照每張表的主鍵構造一顆B+樹,恭弘=叶 恭弘子結點的key是主鍵值, value是該行的其他字段值,聚簇索引的恭弘=叶 恭弘子結點也稱為數據頁。
    • 輔助索引:恭弘=叶 恭弘子結點的內容是主鍵的值。

我們用一個例子來說明上面的概念,創建一張表,在字段k上有索引:

create table T(
id int primary key, 
k int not null, 
name varchar(16),
index (k))engine=InnoDB;

  表中R1~R5的(ID,k)值分別為(100,1)、(200,2)、(300,3)、(500,5)和(600,6),兩顆B+樹如下,可以明顯看到這兩個顆樹的區別。

  使用普通索引查詢時,例如 select * from T where k = 2,需要先搜索k索引樹,得到ID的值為200;再到ID索引搜索一次。這個過程就叫做回表,非主鍵索引查詢需要多搜索一棵樹。

  參考資料:《MySQL實戰45講》

       《MySQL技術內幕:InnoDB存儲引擎》第二版

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

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

中興攜手國家電網組合資公司 建成都無線汽車充電站

中興子公司中興新能源汽車與國家電網四川省電力公司達成協議,將在成都組建合資公司。此合資公司在傳統集中式充電模式的基礎上分佈式建設無線汽車充電站,第一批支援無線充電的社區巴士同日會在成都正式投入運營。   除社區巴士外,中興還將逐步推廣支持無線充電的大型公車專案,而房車的無線充電技術亦已成熟,用戶如有條件和需要,可對房車和停車廠進行改造,即可享有無線充電功能。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

巴西浮油事件3個月 污染擴至座頭鯨保育區

摘錄自2019年11月3日中央通訊社巴西報導

巴西東北巴伊亞州(Bahia)外海阿布羅略斯(Abrolhos)群島四周,有著巴西最豐富的海洋多樣性。群島中一座國家公園有著罕見珊瑚群、海鳥以及座頭鯨繁殖地。巴西海軍3日通報,困擾巴西海岸3個月的浮油污染已飄到座頭鯨保育區,嚴重污染生物多樣性豐富的群島地區,背後的環境及經濟破壞目前還無法量化。海軍在聲明中表示,海軍船艦清理的油污有部分在海洋中,有部分則在海灘上。

這些油污3個月前開始出現在巴西東北部外海,巴西著名2000公里海岸線上的200多個海灘都遭油漬污染。船員及志工已在海灘上清出數噸重的原油。巴西官員說,目前還無法量化油漬造成的環境及經濟破壞。

巴西政府2日點名一艘掛有希臘旗幟的油輪布普林納號(Bouboulina)是主要嫌疑犯,說這艘油輪當時從委內瑞拉載石油前往新加坡。巴西國家太空署(Inpe)2日表示,海中仍可能有油污在洋流推動下,南下至巴西東南的聖靈州(Espiritu Santo)及里約熱內盧州(Rio De Janeiro)。

清理污染的志工。照片來源: Kleber from Burgos / WWF-Brasil

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

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

Tesla 力拚中國市場,買車送充電樁

2014 年 Tesla 公司虧損額擴大了三倍,押寶中國市場收穫了名氣卻輸了銷量,主要問題是中國市場的充電站嚴重缺乏,Tesla 為解決這一難題宣布將免費為中國車主安裝家用充電樁,這是 Tesla 首次在整車銷售中提供這一服務。  
    據 Tesla 財報顯示,2014 年公司營收為 31.93 億美元,淨虧損達 2.94 億美元,Tesla 設定 2014 年中國市場電動車銷售目標為 1 萬輛,實際銷量只有 2,000 多輛。充電站缺乏是導致 Tesla 電動車在中國市場慘敗的重要原因。   Tesla 拿出的第一個對策是為車主免費安裝家用充電器樁,此前客戶在購車後需要支付安裝費,這是 Tesla 面向全球客戶統一的做法。安裝一個充電樁大約是 8,000 多元人民幣,不但給客戶省錢了,也省了很多事。   以 Tesla Model S 在中國高達 80 萬人民幣的售價而言,僅佔 1% 的充電樁費用免去能夠吸引客戶嗎?Tesla 憑藉一己之力很難在中國市場完成充電站的布局,目前 Tesla 在中國市場的超級充電站僅有 60  多個,充電樁大約 1,000 個,很難滿足消費者的需求。     本文全文授權轉載自《科技新報》─〈〉

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

Zookeeper分佈式過程協同技術 – 群首選舉

Zookeeper分佈式過程協同技術 – 群首選舉

群首概念

群首為集群中服務器選擇出來的一個服務器,並被集群認可。設置群首目的在與對客戶端所發起的狀態變更請求進行排序,包括:create、setData、delete操作。群首將每一個請求轉換為一個事務並將事務發送給追隨者,確保集群按照群首確定的順序接受並處理這些事務。

Zookeeper事務

Zookeeper服務器會在本地處理只讀請求(例如:exists、getData、getChildren)。如果一台服務器接收到客戶端的getData請求,服務器讀取該狀態信息,並將這些信息返回客戶端。由於服務器在本地處理讀請求,所以在處理以只讀請求為主要負載時,性能會比較高。

那些會改變狀態的客戶端請求(create、delete、setData)將會被轉發給群首,由群首執行相應的請求,完成狀態的更新,這就是Zookeeper的事務。

選舉過程

每個服務器啟動後進入LOOKING狀態,服務器之間進行通信來選舉一個群首,通過信息交換對群首選舉達成共識。在本次選舉中勝出的服務器將進入LEADING狀態,而集群中其他服務器將進入FOLLOWING狀態。

群首選舉消息(leader election notifications)或簡單的稱為通知。當一個服務器進入LOOKING狀態就會向集群中的每一個服務器發送一個通知消息。消息中包含該服務器的投票信息。

投票信息包含服務器標識符(sid)和最近執行的事務的zxid信息,例如投票信息(1,5)代表機器ID為1,最近執行的事務zxid為5。

zxid為一個long型(64位)整數,分為2部分:時間戳部分和計數器部分,每個部分為32位。

 當一個服務器收到一個投票信息,該服務器將會根據以下規則修改自己的投票信息:

  1. 將接受的voteId和voteZxid作為一個標識符,並獲取接收方當前的投票中的zxid,用myZxid和mySid表示接收方服務器自己的值。
  2. 如果(voteZxid > myZxid)或者(voteZxid = myZxid 且 voteId > mySid),保留當前的投票信息。
  3. 否則,修改自己的投票信息,將voteZxid賦值給myZxid,將voteId賦值給mySid。

當一個服務器收到的仲裁數量的服務器發來的投票信息都一樣時,就表示群首選舉成功,如果被選舉的群首為某個服務器自己,該服務器將會開始行使群首角色,否則就會成為一個追隨者並嘗試連接被選舉的群首服務器。一旦連接成功,追隨者和群首之間將會進行狀態同步,在同步完成后,追隨者才可以處理新的請求。 

 

 

通過例子來演示選舉過程,三台服務器在分別發送出不同的選舉投票信息,其投票值包含服務器的標識符和最新的zxid。每個服務器都會收到另外兩個服務器發送的投票信息,在第一輪之後,服務器S2和S3將會改變其投票信息為(1,6),之後服務器S2和S3在改變投票信息之後會發送新的通知消息,S1服務器在接收到仲裁數量的通知消息擁有一樣的投票信息,最後S1被選舉出為集群的群首。

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

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

空污太嚴重 印度最高法院諭令禁焚農作物殘梗

摘錄自2019年11月5日中央社外電報導

有鑑於空汙嚴重,印度最高法院今天(5 日)下令首都新德里周邊地區全面停止焚燒農作物殘梗。法院指出,新德里居民持續因為空汙喪失寶貴生命歲月,「這根本不該發生在文明國家」。倘若禁令未貫徹執行,整個行政和警察體系都會被追究責任。

儘管焚燒農作物殘梗已屬非法,許多經濟困窘農民表示,他們別無其他選擇。印度政府曾試圖杜絕農民這個習慣,例如補助購買排除焚燒農作物殘梗必要性的設備,但效果不彰。此外,農民也可將殘梗轉化為生質能源團塊等較具實用價值物品,但成本偏高。

氣候政策研究員、「印度大霧霾」」(The Great Smog of India,暫譯)一書作者辛赫(Siddharth Singh)表示,政府應採取作為,賦予農作殘餘物價值,例如出資採購並以乾淨方式焚燒。

不過,印度智庫「政策研究中心」(Centre for Policy Research)研究員哈里希(Santosh Harish)認為,焚燒農作物對空汙的「貢獻」被高估了。

哈里希指出:「過去幾週,殘梗焚燒確實(對空汙形成)扮演重要角色,占比約40%,但我認為新德里市長高估農民能耐,對新德里境內空汙來源卻輕描淡寫…若新德里全面推卸責任,他們就搞錯重點了。」

根據哈里希的說法,新德里空汙危機的主要成因是交通運輸工具、工業設施和發電廠所排放廢氣,另外還有施工粉塵。此外,嚴重空汙範圍已超越首都區,涵蓋印度北部多數地區。

根據環保組織「綠色和平」(Greenpeace)3月發布的報告,全球汙染程度最高的30座城市中,印度就包辦其中22座。新德里市長克里瓦爾(Arvind Kejriwal)上週表示,新德里已成「毒氣室」,罪魁禍首就是「焚燒農作物產生的煙霧」。

新德里的空汙情形在3日急遽惡化,細懸浮微粒(PM2.5)濃度達近3年新高,接近每立方公尺1000微克,而世界衛生組織(WHO)建議的每日最高安全上限為每立方公尺25微克。空汙嚴重甚至導致飛機航班被迫延誤或改變起降地點,各級學校也關閉;經濟條件佳的居民多選擇待在有空氣清淨機運轉的住家裡。

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

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

程序員必備基礎:Git 命令全方位學習

前言

掌握Git命令是每位程序員必備的基礎,之前一直是用smartGit工具,直到看到大佬們都是在用Git命令操作的,回想一下,發現有些Git命令我都忘記了,於是寫了這篇博文,複習一下~

https://github.com/whx123/JavaHome

公眾號:撿田螺的小男孩

文章目錄

  • Git是什麼?
  • Git的相關理論基礎
  • 日常開發中,Git的基本常用命令
  • Git進階之分支處理
  • Git進階之處理衝突
  • Git進階之撤銷與回退
  • Git進階之標籤tag
  • Git其他一些經典命令

Git是什麼

在回憶Git是什麼的話,我們先來複習這幾個概念哈~

什麼是版本控制?

百度百科定義是醬紫的~

版本控制是指對軟件開發過程中各種程序代碼、配置文件及說明文檔等文件變更的管理,是軟件配置管理的核心思想之一。

那些年,我們的畢業論文,其實就是版本變更的真實寫照…腦洞一下,版本控制就是這些論文變更的管理~

什麼是集中化的版本控制系統?

那麼,集中化的版本控制系統又是什麼呢,說白了,就是有一個集中管理的中央服務器,保存着所有文件的修改歷史版本,而協同開發者通過客戶端連接到這台服務器,從服務器上同步更新或上傳自己的修改。

什麼是分佈式版本控制系統?

分佈式版本控制系統,就是遠程倉庫同步所有版本信息到本地的每個用戶。嘻嘻,這裏分三點闡述吧:

  • 用戶在本地就可以查看所有的歷史版本信息,但是偶爾要從遠程更新一下,因為可能別的用戶有文件修改提交到遠程哦。
  • 用戶即使離線也可以本地提交,push推送到遠程服務器才需要聯網。
  • 每個用戶都保存了歷史版本,所以只要有一個用戶設備沒問題,就可以恢複數據啦~

什麼是Git?

Git是免費、開源的分佈式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。

Git的相關理論基礎

  • Git的四大工作區域
  • Git的工作流程
  • Git文件的四種狀態
  • 一張圖解釋Git的工作原理

Git的四大工作區域

先複習Git的幾個工作區域哈:

  • Workspace:你電腦本地看到的文件和目錄,在Git的版本控制下,構成了工作區。
  • Index/Stage:暫存區,一般存放在 .git目錄下,即.git/index,它又叫待提交更新區,用於臨時存放你未提交的改動。比如,你執行git add,這些改動就添加到這個區域啦。
  • Repository:本地倉庫,你執行git clone 地址,就是把遠程倉庫克隆到本地倉庫。它是一個存放在本地的版本庫,其中HEAD指向最新放入倉庫的版本。當你執行git commit,文件改動就到本地倉庫來了~
  • Remote:遠程倉庫,就是類似github,碼雲等網站所提供的倉庫,可以理解為遠程數據交換的倉庫~

Git的工作流程

上一小節介紹完Git的四大工作區域,這一小節呢,介紹Git的工作流程咯,把git的操作命令和幾個工作區域結合起來,個人覺得更容易理解一些吧,哈哈,看圖:

git 的正向工作流程一般就這樣:

  • 從遠程倉庫拉取文件代碼回來;
  • 在工作目錄,增刪改查文件;
  • 把改動的文件放入暫存區;
  • 將暫存區的文件提交本地倉庫;
  • 將本地倉庫的文件推送到遠程倉庫;

Git文件的四種狀態

根據一個文件是否已加入版本控制,可以把文件狀態分為:Tracked(已跟蹤)和Untracked(未跟蹤),而tracked(已跟蹤)又包括三種工作狀態:Unmodified,Modified,Staged

  • Untracked: 文件還沒有加入到git庫,還沒參与版本控制,即未跟蹤狀態。這時候的文件,通過git add 狀態,可以變為Staged狀態
  • Unmodified:文件已經加入git庫, 但是呢,還沒修改, 就是說版本庫中的文件快照內容與文件夾中還完全一致。 Unmodified的文件如果被修改, 就會變為Modified. 如果使用git remove移出版本庫, 則成為Untracked文件。
  • Modified:文件被修改了,就進入modified狀態啦,文件這個狀態通過stage命令可以進入staged狀態
  • staged:暫存狀態. 執行git commit則將修改同步到庫中, 這時庫中的文件和本地文件又變為一致, 文件為Unmodified狀態.

一張圖解釋Git的工作原理

日常開發中,Git的基本常用命令

  • git clone
  • git checkout -b dev
  • git add
  • git commit
  • git log
  • git diff
  • git status
  • git pull/git fetch
  • git push

這個圖只是模擬一下git基本命令使用的大概流程哈~

git clone

當我們要進行開發,第一步就是克隆遠程版本庫到本地呢

git clone url  克隆遠程版本庫

git checkout -b dev

克隆完之後呢,開發新需求的話,我們需要新建一個開發分支,比如新建開發分支dev

創建分支:

git checkout -b dev   創建開發分支dev,並切換到該分支下

git add

git add的使用格式:

git add .	添加當前目錄的所有文件到暫存區
git add [dir]	添加指定目錄到暫存區,包括子目錄
git add [file1]	添加指定文件到暫存區

有了開發分支dev之後,我們就可以開始開發啦,假設我們開發完HelloWorld.java,可以把它加到暫存區,命令如下

git add Hello.java  把HelloWorld.java文件添加到暫存區去

git commit

git commit的使用格式:

git commit -m [message] 提交暫存區到倉庫區,message為說明信息
git commit [file1] -m [message] 提交暫存區的指定文件到本地倉庫
git commit --amend -m [message] 使用一次新的commit,替代上一次提交

把HelloWorld.java文件加到暫存區后,我們接着可以提交到本地倉庫啦~

git commit -m 'helloworld開發'

git status

git status,表示查看工作區狀態,使用命令格式:

git status  查看當前工作區暫存區變動
git status -s  查看當前工作區暫存區變動,概要信息
git status  --show-stash 查詢工作區中是否有stash(暫存的文件)

當你忘記是否已把代碼文件添加到暫存區或者是否提交到本地倉庫,都可以用git status看看哦~

git log

git log,這個命令用得應該比較多,表示查看提交歷史/提交日誌~

git log  查看提交歷史
git log --oneline 以精簡模式显示查看提交歷史
git log -p <file> 查看指定文件的提交歷史
git blame <file> 一列表方式查看指定文件的提交歷史

嘻嘻,看看dev分支上的提交歷史吧要回滾代碼就經常用它喵喵提交歷史

git diff

git diff 显示暫存區和工作區的差異
git diff filepath   filepath路徑文件中,工作區與暫存區的比較差異
git diff HEAD filepath 工作區與HEAD ( 當前工作分支)的比較差異
git diff branchName filepath 當前分支的文件與branchName分支的文件的比較差異
git diff commitId filepath 與某一次提交的比較差異

如果你想對比一下你改了哪些內容,可以用git diff對比一下文件修改差異哦

git pull/git fetch

git pull  拉取遠程倉庫所有分支更新併合併到本地分支。
git pull origin master 將遠程master分支合併到當前本地master分支
git pull origin master:master 將遠程master分支合併到當前本地master分支,冒號後面表示本地分支

git fetch --all  拉取所有遠端的最新代碼
git fetch origin master 拉取遠程最新master分支代碼

我們一般都會用git pull拉取最新代碼看看的,解決一下衝突,再推送代碼到遠程倉庫的。

有些夥伴可能對使用git pull還是git fetch有點疑惑,其實
git pull = git fetch+ git merge。pull的話,拉取遠程分支並與本地分支合併,fetch只是拉遠程分支,怎麼合併,可以自己再做選擇。

git push

git push 可以推送本地分支、標籤到遠程倉庫,也可以刪除遠程分支哦。

git push origin master 將本地分支的更新全部推送到遠程倉庫master分支。
git push origin -d <branchname>   刪除遠程branchname分支
git push --tags 推送所有標籤

如果我們在dev開發完,或者就想把文件推送到遠程倉庫,給別的夥伴看看,就可以使用git push origin dev~

Git進階之分支處理

Git一般都是存在多個分支的,開發分支,回歸測試分支以及主幹分支等,所以Git分支處理的命令也需要很熟悉的呀~

  • git branch
  • git checkout
  • git merge

git branch

git branch用處多多呢,比如新建分支、查看分支、刪除分支等等

新建分支:

git checkout -b dev2  新建一個分支,並且切換到新的分支dev2
git branch dev2 新建一個分支,但是仍停留在原來分支

查看分支:

git branch    查看本地所有的分支
git branch -r  查看所有遠程的分支
git branch -a  查看所有遠程分支和本地分支

刪除分支:

git branch -D <branchname>  刪除本地branchname分支

git checkout

切換分支:

git checkout master 切換到master分支

git merge

我們在開發分支dev開發、測試完成在發布之前,我們一般需要把開發分支dev代碼合併到master,所以git merge也是程序員必備的一個命令。

git merge master  在當前分支上合併master分支過來
git merge --no-ff origin/dev  在當前分支上合併遠程分支dev
git merge --abort 終止本次merge,並回到merge前的狀態

比如,你開發完需求后,發版全需要把代碼合到主幹master分支,如下:

Git進階之處理衝突

Git版本控制,還是多個人一起搞的,多個分支並存的,這就難免會有衝突出現~

Git合併分支,衝突出現

同一個文件,在合併分支的時候,如果同一行被多個分支或者不同人都修改了,合併的時候就會出現衝突。

舉個粟子吧,我們現在在dev分支,修改HelloWorld.java文件,假設修改了第三行,並且commit提交到本地倉庫,修改內容如下:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello,撿田螺的小男孩!");
    }
}

我們切回到master分支,也修改HelloWorld.java同一位置內容,如下:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello,jay!!");
    }
}

再然後呢,我們提交一下master分支的這個改動,並把dev分支合併過下,就出現衝突啦,如圖所示:

Git解決衝突

Git 解決衝突步驟如下:

  • 查看衝突文件內容
  • 確定衝突內容保留哪些部分,修改文件
  • 重新提交,done

1.查看衝突文件內容

git merge提示衝突后,我們切換到對應文件,看看衝突內容哈,,如下:

2.確定衝突內容保留哪些部分,修改文件

  • Git用<<<<<<<,=======,>>>>>>>標記出不同分支的內容,
  • <<<<<<<HEAD是指主分支修改的內容,>>>>>>> dev是指dev分支上修改的內容

所以呢,我們確定到底保留哪個分支內容,還是兩個分支內容都保留呢,然後再去修改文件衝突內容~

3.修改完衝突文件內容,我們重新提交,衝突done

Git進階之撤銷與回退

Git的撤銷與回退,在日常工作中使用的比較頻繁。比如我們想將某個修改后的文件撤銷到上一個版本,或者想撤銷某次多餘的提交,都要用到git的撤銷和回退操作。

代碼在Git的每個工作區域都是用哪些命令撤銷或者回退的呢,如下圖所示:

有關於Git的撤銷與回退,一般就以下幾個核心命令

  • git checkout
  • git reset
  • git revert

git checkout

如果文件還在工作區,還沒添加到暫存區,可以使用git checkout撤銷

git checkout [file]  丟棄某個文件file
git checkout .  丟棄所有文件

以下demo,使用git checkout — test.txt 撤銷了暫存區test.txt的修改

git reset

git reset的理解

git reset的作用是修改HEAD的位置,即將HEAD指向的位置改變為之前存在的某個版本.

為了更好地理解git reset,我們來回顧一下,Git的版本管理及HEAD的理解

Git的所有提交,會連成一條時間軸線,這就是分支。如果當前分支是master,HEAD指針一般指向當前分支,如下:

假設執行git reset,回退到版本二之後,版本三不見了哦,如下:

git reset的使用

Git Reset的幾種使用模式

git reset HEAD --file
回退暫存區里的某個文件,回退到當前版本工作區狀態
git reset –-soft 目標版本號 可以把版本庫上的提交回退到暫存區,修改記錄保留
git reset –-mixed 目標版本號 可以把版本庫上的提交回退到工作區,修改記錄保留
git reset –-hard  可以把版本庫上的提交徹底回退,修改的記錄全部revert。

先看一個粟子demo吧,代碼git add到暫存區,並未commit提交,就以下醬紫回退,如下:

git reset HEAD file 取消暫存
git checkout file 撤銷修改

再看另外一個粟子吧,代碼已經git commit了,但是還沒有push:

git log  獲取到想要回退的commit_id
git reset --hard commit_id  想回到過去,回到過去的commit_id

如果代碼已經push到遠程倉庫了呢,也可以使用reset回滾哦(這裏大家可以自己操作實踐一下哦)~

git log
git reset --hard commit_id
git push origin HEAD --force

git revert

與git reset不同的是,revert複製了那個想要回退到的歷史版本,將它加在當前分支的最前端。

revert之前:

revert 之後:

當然,如果代碼已經推送到遠程的話,還可以考慮revert回滾呢

git log  得到你需要回退一次提交的commit id
git revert -n <commit_id>  撤銷指定的版本,撤銷也會作為一次提交進行保存

Git進階之標籤tag

打tag就是對發布的版本標註一個版本號,如果版本發布有問題,就把該版本拉取出來,修復bug,再合回去。

git tag  列出所有tag
git tag [tag] 新建一個tag在當前commit
git tag [tag] [commit] 新建一個tag在指定commit
git tag -d [tag] 刪除本地tag
git push origin [tag] 推送tag到遠程
git show [tag] 查看tag
git checkout -b [branch] [tag] 新建一個分支,指向某個tag

Git其他一些經典命令

git rebase

rebase又稱為衍合,是合併的另外一種選擇。

假設有兩個分支master和test

      D---E test
      /
 A---B---C---F--- master

執行 git merge test得到的結果

       D--------E
      /          \
 A---B---C---F----G---   test, master

執行git rebase test,得到的結果

A---B---D---E---C‘---F‘---   test, master

rebase好處是: 獲得更優雅的提交樹,可以線性的看到每一次提交,並且沒有增加提交節點。所以很多時候,看到有些夥伴都是這個命令拉代碼:git pull –rebase

git stash

stash命令可用於臨時保存和恢復修改

git stash  把當前的工作隱藏起來 等以後恢復現場後繼續工作
git stash list 显示保存的工作進度列表
git stash pop stash@{num} 恢復工作進度到工作區
git stash show :显示做了哪些改動
git stash drop stash@{num} :刪除一條保存的工作進度
git stash clear 刪除所有緩存的stash。

git reflog

显示當前分支的最近幾次提交

git blame filepath

git blame 記錄了某個文件的更改歷史和更改人,可以查看背鍋人,哈哈

git remote

git remote   查看關聯的遠程倉庫的名稱
git remote add url   添加一個遠程倉庫
git remote show [remote] 显示某個遠程倉庫的信息

參考與感謝

感謝各位前輩的文章:

  • 一個小時學會Git
  • 【Git】(1)—工作區、暫存區、版本庫、遠程倉庫
  • Git Reset 三種模式
  • Git恢復之前版本的兩種方法reset、revert(圖文詳解)
  • Git撤銷&回滾操作(git reset 和 get revert)
  • 為什麼要使用git pull –rebase?

公眾號

  • 歡迎關注我個人公眾號,交個朋友,一起學習哈~
  • 如果文章有錯誤,歡迎指出哈,感激不盡~

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

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

【思考】URI和URL的區別?以及URL的結構

URI = Universal Resource Identifier
URL = Universal Resource Locator

在學習中,我們難免會遇到 URI 和 URL,有時候都傻傻分不清,為啥這邊是 URI 那邊又是 URL,這兩者到底有什麼區別呢?

我們從名字上看

  • 統一資源標識符(Uniform Resource Identifier, URI):是一個用於標識某一互聯網資源名稱的字符串。
  • 統一資源定位符(Uniform Resource Locator, URL):是一個用於標識和定位某一互聯網資源名稱的字符串。

可能大家就比較困惑了,這倆好像是一樣的啊?那我們就類比一下我們現實生活中的情況:
我們要找一個人——張三,我們可以通過他的唯一的標識來找,比如說身份證,那麼這個身份證就唯一的標識了一個人,這個身份證就是一個 URI
而要找到張三,我們不一定要用身份證去找,我們還可以根據地址去找,如 在清華大學18號宿舍樓的404房間第一個床鋪的張三,我們也可以唯一確定一個張三,
動物住址協議://地球/中國/北京市/清華大學/18號宿舍樓/404號寢/張三.人。而這個地址就是我們用於標識和定位的 URL
我們從上面可以很明顯的看出,URI 通過任何方法標識一個人即可,而 URL 雖然也可以標識一個人,但是它主要是通過定位地址的方法標識一個人,所以 URL 其實是 URI 的一個子集,即 URL 是靠標識定位地址的一個 URI

Url 的構成

URL(Uniform Resource Locator,統一資源定位符),用於定位網絡上的資源,每一個信息資源都有統一的且在網上唯一的地址。

Url一般有以下部分組成
scheme://host:port/path?query#fragment

Scheme: 通信協議,一般為http、https等;
Host: 服務器的域名主機名或ip地址;
Port: 端口號,此項為可選項,默認為80;
Path: 目錄,由“/”隔開的字符串,表示的是主機上的目錄或文件地址;
Query: 查詢,此項為可選項,可以給動態網頁傳遞參數,用“&”隔開,每個參數的名和值用“=”隔開;
Fragment: 信息片段,字符串,用於指定網絡資源中的某片斷;

其實,把 URL 說成是網址其實是很不嚴謹的說法,因為 URL 有很嚴格的結構,表示也很靈活、有彈性。
在 RFC 3986: Uniform Resource Identifier (URI): Generic Syntax 的 Syntax Components 把 URL 描述為如下圖:

如圖所示,把 URL 分成幾個部分,這樣便可以了解URL的構成。 在 URI scheme – Wikipedia 頁面中對 URL 的描述更為詳細,如下圖:

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

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心