分類
發燒車訊

前端Leader你應該知道的NPM包管理機制

npm install 命令

首先總結下npm 安裝一個模塊包的常用命令。

/* 模塊依賴會寫入 dependencies 節點 */

npm install moduleName

npm install -save moduleName

npm install -S moduleName 

/* 模塊依賴會寫入 devDependencies 節點 */

npm install -save-dev moduleName

npm install -D moduleName

/* 全局安裝模塊包 */

npm install -g moduleName

/* 安裝特定版本的包 */

npm install 包名@版本號

/* 通過地址安裝git倉庫 */

npm install git+https://github.com/itwmike/axios.git

npm install git+ssh://git@github.com:itwmike/axios.git
 
/* 安裝特定分支或Tag的git倉庫 */

npm install git+https://github.com/itwmike/axios.git#tag

/* 通過用戶名安裝git倉庫 */ 

npm install github:帳號/倉庫名 # npm install github:itwmike/axios

npm install github:帳號/倉庫名

  

npm 依賴包版本號

npm 所有node包都使用語義化版本號,規則要求如下:  

  • 每個版本號都形如1.2.3,由三個部分組成,依次叫做“主版本號(major)”、“次版本號(minor)”和“修訂號(patch)” 。

  • 當新版本無法兼容基於前一版本的代碼時,則提高主版本號 。

  • 當新版本新增了功能與特性,但仍兼容前一版本的代碼時,則提高次版本號 。

  • 當新版本僅僅修正漏洞或者增強效率,仍然兼容前一版本代碼,則提高修訂號。

默認使用 npm install -save 下載的都是最新版本,同時會在package.json 文件中登記一個最優版本號,如下形式:

"dependencies": {
  "axios": "^0.19.0"
},

  

最優版本號前面會多出一個“標記”,這個標記有啥意義?它的寫法又有哪些?

 

npm install 都做了哪些事?

拿到一個node項目時首要做法是運行 npm install 命令,這個命令將 package.json 文件中的依賴包自動解析並安裝,這也是項目能夠本地運行的前置條件。那如此簡單的一條命令,npm 背後又做了哪些不為人知的事呢?

Number One

自 npm 5.0后,項目中如果沒有 package-lock.json 文件的時候,npm 會自動幫我們生成。該文件的主要作用是記錄依賴包之間的具體版本號,對包版本有一個鎖定的意義,項目開發中應該將此文件上傳到git等版本控制工具(博主為此經歷了血淋淋的慘痛教育)。

Number Two

檢測本地包是否已經下載。如果本地 node_modules 下已經存在和 package-lock.json 中版本一致的包,則不會重新下載。

Number Three

下載依賴節點中對應的模板包。下載規則是:如果 package-lock.json 文件存在,則按照該文件中記錄的版本號下載對應的模塊包;如果文件不存在或文件中沒有該包的記錄,此時會按照版本號的標記(上面已講)規範下載並同時更新到 package-lock.json。

了解了 package-lock.json 的作用后,筆者有個疑問:手動修改 package.json 中的包版本號后運行 npm install 命令會下載新包么?

帶着這個疑問,筆者做了實驗,得出如下結論:

  • 如果新舊版本號差距較大,比如從 ^2.5.2 變為 2.6.0 ,那麼會下載最新包並且更新 package-lock.json 。

  • 如果新舊版本號差距較小,比如從 ^2.5.2 變為 2.5.4,那麼不會更新。

總之是否更新要看特定情況,取決於 package.json中版本號的標記和 package-lock.json 是否一致。

cnpm install 探索

cnpm 是淘寶 npm 鏡像,在國內很受歡迎,雖然筆者並不喜歡使用。那 cnpm 和 npm 對包的管理是否一樣呢?

  • cnpm install 並不會生成 package-lock.json

  • cnpm install 並不受 package-lock.json 的約束,它會按照版本號標記規則下載依賴包

 

由此可見,我們在項目中使用 cnpm 的時候一定要慎重,因為很可能團隊成員每個人使用的依賴包版本都不相同,造成打包后的結果也不同。

如果團隊要使用 cnpm,請使用固定版本號的方式安裝依賴包如:cnpm install -E moduleName

 

本文轉載自:

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

【其他文章推薦】

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

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

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

南投搬家前需注意的眉眉角角,別等搬了再說!

分類
發燒車訊

盤點2016年起實施的新能源汽車新政策

電動汽車充電介面及通信協定5項新國標  

第一版電動汽車充電介面等4項國家標準曾在2011年發佈,並於2012年3月1日起實施,包括《電動汽車傳導充電用連接裝置第1部分:通用要求》、《電動汽車傳導充電用連接裝置第2部分:交流充電介面》、《電動汽車傳導充電用連接裝置第3部分:直流充電介面》《電動汽車非車載傳導式充電機與電池管理系統之間的通信協定》等。此次發佈的5項國家標準在4項標準的修訂基礎上新增《電動汽車傳導充電系統 第1部分:一般要求》,於2016年1月1日起正式實施。

標準內容:新修訂的5項國家標準主要在提高電動汽車充電設施安全性及相容性方面做出更進一步的要求。

交流充電部分,更新禁止採用存在安全隱患的直通電纜加普通家用插頭的連接方式,大於16安培的充電方式要求在車輛插座和供電插座安裝電子鎖和溫度感測器等規範。

 

直流充電部分,更新在直流充電槍內要求安裝電子鎖,同時預留車輛插座加裝電子鎖的機械結構,要求車輛和設施必須具備檢測和告警功能等規範。

 

新能源車補貼政策  

2015年4月29日,新一輪新能源汽車補貼政策正式出臺,其中指出在2016-2020年,對消費者購買的進入國家新能源車目錄的純電動汽車、插電式混合動力汽車和燃料電池汽車繼續給予購車補貼。新標準規定新能源車的補貼將分階段退坡,到2020年補貼標準將在2016年基礎上下降40%。

政策內容:新的補貼標準將依據節能減排效果,並綜合考慮生產成本、規模效應、技術進步等因素逐步下調。具體下調辦法是,2017-2018年補貼標準將在2016年基礎上下降20%,2019-2020年補貼標準在2016年基礎上下降40%。而燃料電池汽車的補貼將從2015年的18萬元/輛提升至20萬元/輛。

 對比2013—2015年新能源車補貼標準,2016年起執行的新補貼標準針對續駛里程大於等於80km小於150km的純電動車和增程式在內的插電式混合動力乘用車的補貼金額分別降低了6500元和1500元,而續駛里程大於等於250km的電動車和燃料電池乘用車補貼金額分別提高了1000元和2萬元,因而您在購買新能源車的時候,續駛里程將是非常關鍵的價格影響因素。

新補貼標準對補助範圍內的新能源汽車產品技術的要求也有所提高,其中純電動乘用車的最低續駛里程由大於等於80km提升至100km,同時在行駛速度方面,純電動乘用車30分鐘最高車速應不低於100km/h。

車船稅管理新規  

規程內容:規程中指出,已經繳納車船稅的車船,因品質原因,車船被退回生產企業或者經銷商的,納稅人可以向納稅所在地的主管稅務機關申請退還自退貨月份起至該納稅年度終了期間的稅款,退貨月份以退貨發票所載日期的當月為准。

此外,已完稅車輛被盜搶、報廢、滅失而申請車船稅退稅的,由納稅人納稅所在地的主管稅務機關按照有關規定辦理。

而對不屬於車船稅徵稅範圍的純電動乘用車和燃料電池乘用車,應當積極獲取車輛的相關資訊予以判斷,對其徵收了車船稅的應當及時予以退稅。

第四階段乘用車燃料消耗量限值  

政策內容:2012年6月28日,國務院發佈《節能與新能源汽車產業發展規劃(2012-2020年)》,明確了我國汽車節能標準的整體目標,要求2020年當年乘用車新車平均燃料消耗量達到5.0 L/100km。目前,第四階段的GB 19578-2014《乘用車燃料消耗量限值》和GB 27999-2014《乘用車燃料消耗量評價方法及指標》已於2014年12月22日正式發佈,於2016年1月1日起實施,要求汽車生產企業2016年平均燃料消耗標準需滿足6.7L/100km。

除了以上提到的自2016年1月1日起實施的政策外,還有一些和我們密切相關的政策和措施已在2015年的最後一天終止或完成,讓我們也來關注一下。

節能惠民補貼政策到期取消

政策內容:2013年,國家財政部、發展改革委、工業和資訊化部發佈《關於開展1.6升及以下節能環保汽車推廣工作的通知》,決定從2013年10月1日起至2015年12月31日,繼續實施1.6升及以下節能環保汽車(乘用車)推廣政策,對購買符合條件節能汽車的消費者給予3000元補貼。截止2015年末,國家共實施了3個階段的汽車節能補貼,從每一輪政策的推出可以發現,國家對享受節能補貼的車型要求在逐年提高,推廣車輛要達到產品綜合燃料消耗量標準也由2011年的6.9L調整到2013年的5.9L,且需符合“國V”排放標準。

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

【其他文章推薦】

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

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

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

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

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

分類
發燒車訊

Faraday Future概念車 賭城CES首度亮相

以「挑戰特斯拉」為目標的美國電動車新公司Faraday Future正式於1月4日在美國賭城CES(消費性電子展)展會上展出首款概念車──「FFZERO1」。同時,Faraday Future預計在兩年內將開始量產。

「FFZERO1」以蝙蝠俠的蝙蝠車為設計概念,黑色外型十分具有未來感。跑車級的性能擁有超過1000馬力的功率、電池容量將近100kWh,續航里程最遠483領,最高行駛時速達200英里(約為時速320公里),且從時速0加速到100公里僅需3秒鐘。Faraday Future指名的頭號對手特斯拉旗下最高階的Tesla Model S,最高時速約為155英里(時速249公里)。

總部設於美國加州的Faraday Future執行團隊仍是謎團,只知中國網路電視巨擘樂視(LeTV)創辦人賈躍亭也是投資者之一。去年12月,Faraday Future宣布將在拉斯維加斯斥資10億美元設立占地面積約27.9萬平方公尺的工廠。這座工廠預計將提供4,500個工作機會(目前已有750名員工),且會得到內華達州州政府高達3億3,500萬美金的補助。

在今年的CES上,Faraday Future的研發團隊也首度曝光,當中包括多名來自BMW、Tesla、Audi、Google、NASA、Apple的技術人才。曾在Tesla擔任首席設計師的Nick Sampson擔任研究與工程學部門資深副總裁與產品研發總監。Sampson指出,Faraday Future是科技公司而非傳統車商,車子也將搭配手機App來進行車身設定與狀態監控,還可學習車主的使用偏好,可說是一輛智慧型的電動車。

雖然FFZERO1造型酷炫,但並不會是實際量產的車款。FFZERO1只有單座、採模組化電池,滑板底盤(skateboard chasis)的設計讓Faraday Future未來能根據需求來更換不同車款的電池與馬達裝置,提供更多尺寸、樣式以及性能的多樣化產品。Faraday Future計畫2017年正式開始量產、2020年發售,但Sampson也坦承,車用電池的供應商目前仍未確定。

(照片來源:Faraday Future)

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

【其他文章推薦】

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

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

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

南投搬家前需注意的眉眉角角,別等搬了再說!

分類
發燒車訊

Deepin 下 使用 Rider 開發 .NET Core

目錄

Deepin 下 使用 Rider 開發 .NET Core

國產的 Deepin 不錯,安利一下。

Deepin 用了也有一兩年,也只是玩玩,沒用在開發上面。後來 Win10 不太清真了,就想着能不能到 Deepin下擼碼。要搞開發,首先少不了 IDE,VS2019 用不來,Vs Code 太複雜、麻煩,後來發現了 Rider 這個神器,可是 Rider 是英文界面,筆者的英文是渣渣的。結果在 Windows 下 使用 Rider 開發一段時間后, 已經熟悉了 Rider ,於是計劃後面遷移到 Deepin 下開發 .NET Core 。筆者裝了雙系統 Windows10 + Deepin 15。

安裝 Rider

Rider 的Linux 下載地址

下載壓縮包后,將壓縮包解壓,打開 bin 目錄,在目錄下打開終端,運行

sh rider.sh

或者直接點擊 rider.sh 文件,選擇執行即可。

之後會彈出安裝界面。

根據提示一步步安裝。

最後會要求輸入賬號密碼或者激活碼激活 Rider 。

我這個是高材生的福利~你們沒有的話就用 Github 開源項目免費申請使用,或者其他手段激活。

安裝完畢后,點擊 New Solution ,發現只能創建 .NET Frameork 的項目(Mono)。

先關閉 Rider ,接下來安裝 .NET Core

安裝 .NET Core SDK

有兩種安裝方法

  1. 自己下載二進制的 安裝包

  2. 使用軟件包形式安裝

    無論哪種方法,如果不把 SDK/Runtime 放到 /usr/share/dotnet 下,Rider 是無法識別的(默認路徑,可以進入Rider修改設置),下面兩種方法都是在 Linux 簡單二進制安裝 .NET Core SDK的方法。

sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet -f
export DOTNET_ROOT=/usr/share/dotnet export 
PATH=$PATH:/usr/share/dotnet

推薦第一種方法,第二種方法的或,可以按照微軟的文檔自己試試。。。

安裝完畢后就是這個樣子。

如果要通過軟件包形式安裝,參考一下這裏 

體驗開發

想不到在 Deepin 下,Rider 竟然支持 Desktop Application(WPF)。

不過這不是重點,我又不會 WPF,先試一下 ASP.NET Core ,晚一點再看看 WPF。

運行的時候,報這個錯,是 Https 證書的問題,只需要任意位置打開終端,輸入下面的命令即可。

dotnet dev-certs https

不知道為什麼,瀏覽器打開 Blazor 應用一片空白。。。

換成 MVC 試試。

不知道為什麼 Blazor 打開會空白。不管了,試試 Desktop Application。

創建 Wpf 項目后,提示要安裝插件,然後退出重新打開。

不過最後重新打開項目還是報錯

Project 'WpfApp1' load finished with warnings
            The imported project "/usr/share/dotnet/sdk/3.0.100/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.WinFX.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.  /usr/share/dotnet/sdk/3.0.100/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets at (26:3)
            Windows is required to build Windows desktop applications. at (59:5)

算了~就這樣好了,反正我又不會 WPF ~

本文是使用 Typora 寫的,很清真。

好好學習唄~

最後錄了個視頻玩,不知道說啥,看看內容界面就好~

打不開的話,請點擊 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

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

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

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

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

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

分類
發燒車訊

從沒聽說過的併發的名詞-管程

在接觸併發之前,我只聽說過進程、線程,管程這個詞倒是頭回聽說,抱着認真好學的態度,去找了找關於 管程 的資料,不學不知道,原來併發里的兩大難題–互斥和同步都可以用管程來解決,可以說,管程是一把解決併發的萬能鑰匙。

 

那什麼是管程呢?原來管程並不像進程、線程這樣來形容一個特指東西的名詞,管程是指管理共享變量以及讀共享變量的操作過程,讓他們支持併發。Java 中的 Monitor,我們經常將它翻譯成 “監視器”,其實它還有個更學術的名字就是管程。

 

管程有三種模型,其中廣泛應用的是 MESA 模型,Java 管程實現參考的也是 MESA 模型,所以我就着重學習這個模型。前面提到了管程可以解決併發領域互斥和同步的兩大核心問題,下面我們先看看管程是如何解決互斥問題的。

 

  • 互斥問題的解決

 

互斥指的同一時刻只允許有一個線程訪問共享資源,管程解決互斥問題的思路很簡單,就是將共享變量及對共享變量的操作統一都封裝起來,如圖:

 

 

線程 A 和線程 B 如果想訪問共享變量 queue,只能通過管程提供的入隊和出隊操作,入隊和出隊操作保證互斥性,只允許一個線程進入,而對外暴露的就只有管程,看上去有點面向對象封裝的意思。

 

  • 同步問題的解決

 

在管程解決互斥問題的解決方案中,我們看到了其實共享變量和對共享變量的操作都是被封裝起來的,要想訪問共享變量就要訪問管程,所以同步的解決辦法就是在管程的入口添加一個等待隊列,當多線程想同時進入管程內部時,只允許一個線程進入,其他線程在等待隊列中等待。

 

進入到管程內部,有可能執行修改共享變量的方法還有條件,比如要執行入隊操作,必須保證隊列不滿;要執行出隊操作,必須保證隊列不空,管程對每個條件的變量還對應有一個等待隊列,如圖:

 

 

這裏的入口等待隊列與條件等待隊列是完全不同的兩個隊列,當進入管程內部的線程因執行方法的條件不滿足會進入條件等待隊列,等待被其他線程喚醒,喚醒後會重新進入入口的等待隊列,競爭資源。

 

Java 內置的管程

 

Java 內置管程與 MESA 模型類似,在 MESA 模型中,條件變量可以有多個, Java 語言內置的管程里只有一個條件變量。

 

 

Java 內置的管程方案就是 syncronized ,使用 syncronized 修飾的代碼塊,在編譯器會自動生成相關加鎖和解鎖代碼,但是只會支持一個條件變量。

 

 

總結一下 :

 

 

 

以上是管程的相關介紹,後續我們會進入 Java JUC 工具包的學習,看看除了 syncronized 其他強大的併發編程類都有哪些獨特的用處。

 

 這裡有一篇 

 

感興趣的同學可以瀏覽一下哦~

    

 

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

【其他文章推薦】

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

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

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

南投搬家前需注意的眉眉角角,別等搬了再說!

分類
發燒車訊

【自然語言處理】利用LDA對希拉里郵件進行主題分析

首先是讀取數據集,並將csv中ExtractedBodyText為空的給去除掉

import pandas as pd
import re
import os

dir_path=os.path.dirname(os.path.abspath(__file__))
data_path=dir_path+"/Database/HillaryEmails.csv"
df=pd.read_csv(data_path)
df=df[['Id','ExtractedBodyText']].dropna()

對於這些郵件信息,並不是所有的詞都是有意義的,也就是先要去除掉一些噪聲數據:

def clean_email_text(text):
    text = text.replace('\n'," ") #新行,我們是不需要的
    text = re.sub(r"-", " ", text) #把 "-" 的兩個單詞,分開。(比如:july-edu ==> july edu)
    text = re.sub(r"\d+/\d+/\d+", "", text) #日期,對主體模型沒什麼意義
    text = re.sub(r"[0-2]?[0-9]:[0-6][0-9]", "", text) #時間,沒意義
    text = re.sub(r"[\w]+@[\.\w]+", "", text) #郵件地址,沒意義
    text = re.sub(r"/[a-zA-Z]*[:\//\]*[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+/i", "", text) #網址,沒意義
    pure_text = ''
    # 以防還有其他特殊字符(数字)等等,我們直接把他們loop一遍,過濾掉
    for letter in text:
        # 只留下字母和空格
        if letter.isalpha() or letter==' ':
            pure_text += letter
    # 再把那些去除特殊字符后落單的單詞,直接排除。
    # 我們就只剩下有意義的單詞了。
    text = ' '.join(word for word in pure_text.split() if len(word)>1)
    return text

然後取出ExtractedBodyText的那一列,對每一行email進行噪聲過濾,並返回一個對象:

docs = df['ExtractedBodyText']
docs = docs.apply(lambda s: clean_email_text(s))  

然後我們呢把裏面的email提取出來:

doclist=docs.values

接下來,我們使用gensim庫來進行LDA模型的構建,gensim可用指令pip install -U gensim安裝。但是,要注意輸入到模型中的數據的格式。例如:[[一條郵件字符串],[另一條郵件字符串], ...]轉換成[[一,條,郵件,在,這裏],[第,二,條,郵件,在,這裏],[今天,天氣,腫么,樣],...]。對於英文的分詞,只需要對空白處分割即可。同時,有些詞語(不同於噪聲)是沒有意義的,我們要過濾掉那些沒有意義的詞語,這裏簡單的寫一個停止詞列表:

stoplist = ['very', 'ourselves', 'am', 'doesn', 'through', 'me', 'against', 'up', 'just', 'her', 'ours',
            'couldn', 'because', 'is', 'isn', 'it', 'only', 'in', 'such', 'too', 'mustn', 'under', 'their',
            'if', 'to', 'my', 'himself', 'after', 'why', 'while', 'can', 'each', 'itself', 'his', 'all', 'once',
            'herself', 'more', 'our', 'they', 'hasn', 'on', 'ma', 'them', 'its', 'where', 'did', 'll', 'you',
            'didn', 'nor', 'as', 'now', 'before', 'those', 'yours', 'from', 'who', 'was', 'm', 'been', 'will',
            'into', 'same', 'how', 'some', 'of', 'out', 'with', 's', 'being', 't', 'mightn', 'she', 'again', 'be',
            'by', 'shan', 'have', 'yourselves', 'needn', 'and', 'are', 'o', 'these', 'further', 'most', 'yourself',
            'having', 'aren', 'here', 'he', 'were', 'but', 'this', 'myself', 'own', 'we', 'so', 'i', 'does', 'both',
            'when', 'between', 'd', 'had', 'the', 'y', 'has', 'down', 'off', 'than', 'haven', 'whom', 'wouldn',
            'should', 've', 'over', 'themselves', 'few', 'then', 'hadn', 'what', 'until', 'won', 'no', 'about',
            'any', 'that', 'for', 'shouldn', 'don', 'do', 'there', 'doing', 'an', 'or', 'ain', 'hers', 'wasn',
            'weren', 'above', 'a', 'at', 'your', 'theirs', 'below', 'other', 'not', 're', 'him', 'during', 'which']

然後我們將輸入轉換成gensim所需的格式,並過濾掉停用詞:

texts = [[word for word in doc.lower().split() if word not in stoplist] for doc in doclist]

再將這所有的單詞放入到一個詞袋中,把每個單詞用一個数字index指代:

from gensim import corpora, models, similarities
import gensim
dictionary = corpora.Dictionary(texts)

再分別統計每一篇email中每個詞語在這個詞袋中出現的次數,並返回一個列表:

corpus = [dictionary.doc2bow(text) for text in texts]

 這個列表告訴我們,第14(從0開始是第一)個郵件中,一共6個有意義的單詞(經過我們的文本預處理,並去除了停止詞后)其中,51號單詞出現1次,505號單詞出現1次,以此類推。。。

最後,就可以開始構建我們的模型了:

lda = gensim.models.ldamodel.LdaModel(corpus=corpus, id2word=dictionary, num_topics=20)
print(lda.print_topic(10, topn=5))

 可以看到,第11個主題最常用的單詞,接下來,我們看下所有的主題:

for i in lda.print_topics(num_topics=20, num_words=5):
    print(i)

 我們再看下第一篇email屬於哪一個主題:

print(lda.get_document_topics(corpus[0]))

 屬於第四個主題的概率是0.95

相關代碼和數據:鏈接: https://pan.baidu.com/s/1sl1I5IeQFDHjVwf2a0C89g 提取碼: xqqf 

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

【其他文章推薦】

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

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

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

南投搬家前需注意的眉眉角角,別等搬了再說!

分類
發燒車訊

花一天時間試玩vsphere6.7(EXSI)服務器版的vmware

花一天時間試玩vsphere6.7(EXSI)服務器版的vmware

要註冊賬號(2019年11月14註冊):

登陸網址:https://my.vmware.com/cn/group/vmware/home
賬號:haha@grr.la
密碼:0nV+SJ8fZbdE8g==

看了下。不管是標準版,企業版,測試版的6.7下載的軟件包都是同一個,區別應該在於激活密鑰

主要有兩個鏡像:EXXI鏡像,VCenter鏡像

EXSI和VMware有點像,不過可以直接裝在裸機上,Vcenter需要裝在windows server上,管理EXSI平台

鏈接:https://pan.baidu.com/s/1x8K4dnMdhg7uz11Hyi7v2A
提取碼:tqaw

VMware vSphere 6 Enterprise Plus
0A65P-00HD0-3Z5M1-M097M-22P7H

參考文檔:https://pan.baidu.com/s/18Cq9marptM-Rbym9l7RvtQ

這個是新的文檔:https://www.lanzous.com/i7ewj1i

上面如果失效:https://blog.csdn.net/techgroup/article/details/100053477

一、安裝EXSI參考:https://blog.csdn.net/weixin_42758707/article/details/100525596

需要注意的地方:不需要DHCP服務器,路由器分配IP就行,ip最好設置為固定IP,可以開啟ssh

填寫密鑰的地方:

開啟ssh后可以使用ssh登陸

二、創建虛擬機根vmware一樣,要先上傳鏡像再創建,可以創建Linux,MacOS,windows

也可以從ovf導入

三、其他功能

支持虛擬機資源監控,克隆虛擬機,建立快照,導出為模版等功能

支持用VMware連ESXI平台(CTRL+L),連接之後可以創建或刪除虛擬機,還可以對虛擬機開關機

四、VMware vSphere Client6.0(看樣子官方不再長期支持了)

https://yq.aliyun.com/articles/636965

https://wsgzao.github.io/post/vmware-vsphere-client/

五、解決ssh無法密碼登陸的問題(提示密鑰登陸)

CTRL+ALT+F1進入命令行,修改/etc/ssh/sshd_config 重啟services.sh

[root@localhost:~] vi /etc/ssh/sshd_config 
[root@localhost:~] grep PasswordAuth /etc/ssh/sshd_config
PasswordAuthentication yes
[root@localhost:~] services.sh restart

六、安裝vcenter

安裝到windows server2016中,應該還有其他辦法

安裝文檔:https://www.lanzous.com/i7eh24j

安裝很簡單,整個安裝過程比較慢,可能要半個小時甚至更長

牛逼,8G,不搞了

換了個電腦,繼續實驗

七、vcenter管理ESXI

vcenter地址:vcenter.jd.com(172.18.3.252)

exsi1地址:172.18.3.151

exsi2地址:172.18.3.255

步驟:先創建數據中心,然後數據中心中添加主機(exsi節點)

管理參考:https://www.cnblogs.com/djlsunshine/p/11372482.html

新建數據中心:

添加主機(添加exsi節點)

設置是否啟用鎖定模式,如果啟用了鎖定模式,管理員就不能夠使用vSphere客戶端直接登錄到ESXI主機,只能通過vCenter Server對主機進行管理。在這裏不啟用鎖定模式

激活參考:https://www.lanzous.com/i7eikla

激活碼複製粘貼全部導入了。一個機器一個激活碼:https://blog.csdn.net/lizhiyuan_eagle/article/details/79989216

然後就可以看到exsi中的虛擬機:

遇到的小問題,我克隆的第一個exsi變成第二個exsi,被識別數來了,只能再裝一台:

vcenter同樣支持管理虛擬機,連接虛擬機

八、遷移exsi1的虛擬機到exsi2

冷遷移,直接遷

取消掛載cdrom再遷移

熱遷移,要添加虛擬交換機在每個exsi網絡上

主機—配置—虛擬交換機—添加網絡:

exsi2一樣,添加個虛擬交換機,ip不能一樣

然後就可以遷移了

整個遷移過程網絡沒有丟包,ssh也沒有中斷

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

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

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

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

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

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

分類
發燒車訊

特斯拉:兩年後你的車就能「自己」來找你

特斯拉於上週六(9日)發佈了最新車載作業系統Version 7.1,此次升級對自動駕駛儀的多款主要功能進行了升級。最重要的就是「召喚」功能,即在無需司機駕駛的情況下,汽車可以自主進入或退出停車位或車庫。

特斯拉的軟體升級是在2016年CES消費電子展之後進行的,今年展會上自動駕駛汽車和更先進的車載軟體成為汽車製造商中的兩大熱門主題。馬斯克(Elon Musk)認為,從技術上看,自動駕駛汽車將在未來24個月到36個月之間準備就緒。

至於當前的「召喚」功能,其所能執行的任務還相當有限。馬斯克稱當前的反覆運算更像是遙控功能,而非自動駕駛功能。當前的「召喚」功能要求司機與汽車距離不超過10米。在使用這個功能時,司機需要持續監控和維持對汽車的控制。此外,特斯拉要求司機只能在地形平坦的私人停車位使用「召喚」功能。

與此同時,Version 7.1最新升級還可讓特斯拉電動汽車自我泊車,無論是在平行還是垂直位置。特斯拉自動駕駛儀的自動引導功能也增加了更多限制,比如在居民區或沒有中央分隔線的公路上,速度更慢。而在其他公路上,自動引導功能也將車速限制為時速8公里或10公里以內。馬斯克表示,為了保證汽車安全行駛,這些新的限制完全合理。

此外,特斯拉還添加了新的安全功能,比如曲線速度自我調整功能,汽車可以掃描前面公路上的曲線,自動駕駛儀可根據所得資訊自動調整速度。

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

【其他文章推薦】

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

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

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

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

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

分類
發燒車訊

2016中國國際汽車新能源及技術應用展覽會|節能與新能源汽車產業發展規劃成果展覽會

展會時間:2016年10月13-16日

展會地點:北京-國家會議中心

展會定位:
唯一的國家級新能源汽車展覽展示平臺;中國參展企業最多、展覽面積最大、展品最為豐富的節能與新能源汽車展。

展覽規模:30,000平方米(2015年)

觀眾數量:60,000人次(2015年)

展覽週期:每年一屆,2013年首屆

支援單位:中華人民共和國工業和資訊化部

批准單位:中華人民共和國科學技術部、中國國際貿易促進委員會

主辦單位:中國國際貿易促進委員會機械行業分會、中國電工技術學會、汽車知識雜誌社、寰球時代汽車投資管理(北京)有限公司

合作單位:北京盛大超越國際展覽有限公司

展位價格:
室內光地:1280元/平方米
標準展位:11800元/個(3m*3m)

參展範圍:

整車類

純電動車,混合動力車,燃料電池車,輕型電動車,天然氣(液化氣)車,醇類及其他代用燃料車和節能汽車。

零部件類

電池、電機、電控等核心零部件和先進技術應用;先進內燃機、高效變速器、輕量化材料、整車優化設計及混合動力等節能技術產品。

充電設施

充電樁、充電機、配電櫃、充換電池及電池管理系統、停車場充電設施、智慧監控、充電站供電解決方案、充電站-智慧電網解決方案等。

新能源汽車發展成果展示;檢測,維修,監控,實驗,安全防護裝備及媒體等.

連絡人:岳巍 先生  
手機(微信):135 5286 5285
郵箱:sales2@s-expo.com  

附:其他推薦展會

2016上海國際汽車新能源及智慧技術展覽會
上海車展新能源姐妹展
展會日期:2016年6月28日-30日
展會地點:上海新國際博覽中心
詳情請點擊

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

【其他文章推薦】

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

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

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

南投搬家前需注意的眉眉角角,別等搬了再說!

分類
發燒車訊

macOS 使用Miniconda配置本地數據運算環境

目前,做數據分析工作,基本人手Numpy,pandas,scikit-learn。而這些計算程序包都是基於python平台的,所以搞數據的都得先裝個python環境。。。(當然,你用R或Julia請忽略本文)

在macOS上,默認安裝有python 2.7,鑒於python2即將停止更新,如果沒有大量的python2代碼需要維護,就直接安裝python3吧。

版本選擇

做數據運算,流行的方式是直接下載Anaconda安裝包,大概500M左右,各種依賴包(綁定了四五百個科學計算程序包),開發工具(jupyter notebook,spyder)一股腦兒都包含了,按照步驟安裝完成,開箱即用,不過裝完後會佔用幾個G的硬盤空間。

我這邊由於硬盤空間有限,採用Miniconda這個發行版本,最新的基於python3.7版本的不到50M。而Miniconda一樣使用conda作為包管理器,可以輕鬆的安裝自己需要的包,例如Numpy,pandas, matplotlib等等。

當然,也可以從安裝包或homebrew開始裝,然後再使用pip來安裝相關的程序包。總體上來說,python自身的版本和執行路徑是相當混亂的,可參考下圖。

安裝步驟

  • 下載
    先從官網下載適合自己操作系統的版本,Miniconda
    支持Windows/Linux/macOS這三種主流操作系統。如果遇到官網下載慢的問題,可以考慮國內的鏡像站點,如。

下載完成后,可以先核對下hash值,與官網的值(5cf91dde8f6024061c8b9239a1b4c34380238297adbdb9ef2061eb9d1a7f69bc)是否一致保證安裝文件未被篡改。

$ shasum -a 256 Miniconda3-latest-MacOSX-x86_64.sh 
5cf91dde8f6024061c8b9239a1b4c34380238297adbdb9ef2061eb9d1a7f69bc  Miniconda3-latest-MacOSX-x86_64.sh
  • 執行安裝
$ bash ./Miniconda3-latest-MacOSX-x86_64.sh 

Welcome to Miniconda3 4.7.12

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue


Do you accept the license terms? [yes|no]
[no] >>> yes

Miniconda3 will now be installed into this location:
/Users/shenfeng/miniconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/Users/shenfeng/miniconda3] >>> 

>>> 

按照提示,敲擊回車。中間需要同意使用條款,需要輸入yes,按照路徑點回車默認即可。

Do you wish the installer to initialize Miniconda3
by running conda init? [yes|no]
[yes] >>> yes

==> For changes to take effect, close and re-open your current shell. <==

If you'd prefer that conda's base environment not be activated on startup, 
   set the auto_activate_base parameter to false: 

conda config --set auto_activate_base false

Thank you for installing Miniconda3!

最後的提示是,可以用conda config --set auto_activate_base false命令取消python3環境在啟動時自行加載。

  • 重新開一個新的終端
    可以發現,python3的env已經生效了。
(base) my:~ shenfeng$ python
Python 3.7.4 (default, Aug 13 2019, 15:17:50) 
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
  • 查看env配置
$ conda env list
# conda environments:
#
base                  *  /Users/shenfeng/miniconda3

使用conda deactivate可以python3的執行環境,使用conda activate base可以激活默認的python3環境。

  • 添加國內鏡像源
    由於conda的包服務器都在海外,直接連接安裝可能出現連接超時無法完成的時候,所以可以通過修改用戶目錄下的.condarc 文件。
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  • 使用conda安裝相應的程序包
    先使用conda list檢查已經安裝的包,使用conda install需要的程序包
$ $ conda list numpy
# packages in environment at /Users/shenfeng/miniconda3:
#
# Name                    Version                   Build  Channel

$ conda install numpy

$ conda list numpy
# packages in environment at /Users/shenfeng/miniconda3:
#
# Name                    Version                   Build  Channel
numpy                     1.17.3           py37h4174a10_0    defaults
numpy-base                1.17.3           py37h6575580_0    defaults

相同的方式,我們可以安裝scipy,pandas等包,不再贅述。

交互式工具安裝

大家耳熟能詳的交互式工具肯定就是Jupyter notebook,但我在本機同樣由於磁盤空間問題只安裝ipython。實際上,Jupyter是基於ipython notebook的瀏覽器版本。

  • 安裝
$ conda install ipython
  • 執行ipython交互
$ ipython
Python 3.7.4 (default, Aug 13 2019, 15:17:50) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.9.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import numpy as np                                               
In [2]: dataset= [2,6,8,12,18,24,28,32]                                   
In [3]: sd= np.std(dataset,ddof=1)                                       
In [4]: print(sd)                                                        
10.977249200050075

樣例數據處理

先從網上下載一個樣例數據,為excel文件,另存為成csv進行處理。

以下結合上周文章中的,計算這組數據的概括性度量。

  • 讀取數據
import numpy as np
from scipy import stats

dataset = np.genfromtxt('/Users/shenfeng/Downloads/test1.csv',delimiter=',', skip_header=1)
print('Shape of numpy array: ', dataset.shape)
Shape of numpy array:  (699,)

集中趨勢的度量

  • 眾數
mode = stats.mode(dataset)                                
print('該組數據的眾數為: ', mode)         
該組數據的眾數為:  ModeResult(mode=array([1.]), count=array([145]))
# 結果說明眾數為1,出現了145次
  • 中位數
print('該組數據的中位數為: ', np.median(dataset))
該組數據的中位數為:  4.0
  • 四分位數
# 不需要提前排序
print("1/4分位數: ", np.percentile(dataset, 25, interpolation='linear')) 
1/4分位數:  2.0

print("1/2分位數: ", np.percentile(dataset, 50, interpolation='linear')) 
1/2分位數:  4.0

print("3/4分位數: ", np.percentile(dataset, 75, interpolation='linear')) 
3/4分位數:  6.0
  • 平均數
print('該組數據的平均數為: ', np.mean(dataset))
該組數據的平均數為:  4.417739628040057

離散程度的度量

  • 標準差
print('該組數據的總體標準差為: ', np.std(dataset,ddof=0))
該組數據的總體標準差為:  2.8137258170785375
  • 標準分數
# 變量值與其平均數的離差除以標準差后的稱為標準分數(standard score)
print('該組數據的標準分數為: ', stats.zscore(dataset))
該組數據的標準分數為:  [ 0.20693572  0.20693572 -0.50386559  0.56233637 -0.14846494  1.27313768
 -1.2146669  -0.85926625 -0.85926625 -0.14846494 -1.2146669  -0.85926625 ...省略 ]
  • 離散係數
# 離散係數是測度數據離散程度的統計量,主要用於比較不同樣本數據的離散程度。
print('該組數據的離散係數為: ', stats.variation(dataset))
該組數據的離散係數為:  0.6369152675317026

偏態與峰態的度量

  • 數據分布圖
import matplotlib.pyplot as plt 
plt.style.use('ggplot') 
plt.hist(dataset, bins=30) 

獲得以下分布圖

  • 偏態
print('該組數據的偏態係數為: ', stats.skew(dataset))
該組數據的偏態係數為:  0.5915855449527385
# 偏態係數在0.5~1或-1~-0.5之間,則認為是中等偏態分佈
  • 峰態係數
print('該組數據的峰態係數為: ', stats.kurtosis(dataset))
該組數據的峰態係數為:  -0.6278342838815454
# 當K<0時為扁平分佈,數據的分佈更分散

總結

本文使用Miniconda發行版配置本地數據運算環境,並對樣例做數據的概括性度量。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

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

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

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

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

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