標籤: 網頁設計公司

  • 【服務器】VMware Workstation Pro虛擬機搭建本地服務器CentOs7和寶塔面板(保姆式教程)

    【服務器】VMware Workstation Pro虛擬機搭建本地服務器CentOs7和寶塔面板(保姆式教程)

    內容繁多,請耐心跟着流程走,在過程中遇到問題請在下面留言(我只是小白,請專業人士噴輕點)。

    前言

    這幾天一直在複習thinkphp5.1,學習環境是phpStudy8.1,但是遇到了文件有緩存的問題(thinkphp5.1.39,修改文件后刷新沒有效果那種,需要隔幾分鐘才正常),百度也沒有解決方法,搞了幾天,一直沒解決,就氣着去折騰本地虛擬機服務器,使用阿里雲的CentOs7鏡像(本站的服務器也是阿里雲的CentOs7,運維環境也是寶塔哦),運維環境是寶塔面板

    說到寶塔就有一些故事了,買服務器的時候是想用windows server2008的,配置了IIS一段時間,搞不定,然後往nginx方向走,又搞不定,後來用windows寶塔面板,還是搞不定,不管怎麼折騰都沒辦法搞定,網站一直打不開,然後就轉CentOs7了,安裝寶塔,配置域名,訪問域名,網站就可以显示了,回想當初,不知道自己腦子抽了哪條經。

    工具

    • VMware Workstation Pro 15.5.5(虛擬機,自己去下載安裝哦,安裝步驟:下一步,我同意,修改安裝路徑,下一步,完成)

    • CentOs7(iso鏡像,推薦使用IDM或者迅雷下載,鏡像大小4.6GB上下)
      阿里雲鏡像:http://mirrors.aliyun.com/centos/7.8.2003/isos/x86_64/

    • Xshell(用於連接虛擬機,方便使用Linux命令,是一個遠程工具,右鍵就可以複製粘貼哦,還可以拉滾動條。)

    查看並保持vmnet8 ip

    本地vmnet8 ip

    查看本地的vmnet8 ip(安裝好虛擬機后才會自動生成的),打開cmd輸入ipconfig
    按win鍵+R,輸入cmd,回車就能打開cmd

    或者按win鍵+S,搜索“cmd”,也能打開“命令提示符”

    還有左下角的“田”形右鍵,然後選擇“Windows Powershell”;
    還有Git的Git Bash等等。。。。。。。。。。。。。。。。

    輸入ipconfig后,就显示下面界面

    這裏主要的內容是以太網適配器VIware Network Adapter VInet8,把細框里的IPv4地址子網掩碼默認網關(我這裏沒有,我也不知道為什麼)用文本記下來,或者不關這個窗口,後面要用到的。

    虛擬機vmnet8 ip

    虛擬機裏面的虛擬網絡需要設置一下虛擬機裏面的虛擬網絡需要處理一下虛擬機裏面的虛擬網絡需要編輯一下

    下圖標記2的地方,勾勾要去掉,去掉之後點擊NAT設置,查看虛擬機的vmnet8 ip,把紅框里的子網IP子網掩碼默認網關用文本記下來,然後點擊確定。

    現在整理一下要用文本記下來的東西

    創建虛擬機

    點擊創建新的虛擬機

    點擊自定義,下一步。

    選擇虛擬機版本,我這裡是15.5.5,下一步

    點擊稍後安裝操作系統,下一步。

    選擇Linux操作系統,現在安裝的是entOs7,所以版本選擇CentOs7 64位,下一步。

    虛擬機名稱隨意,可以中文,這裏我寫的是服務器ip名(可以重命名的),為了方便定位,不用我說都懂的啦,從左邊欄就可以看出100、101、102沒有102,哎?我跳過102了?我是把流程走一遍再碼字的,碼字的時候,服務器已經ok了,不過問題不大,下一步。。。。

    默認(本站的核心是2個,但是我100、101都是1個核心,這裏默認1個核心夠用了),本地服務器,也就自己一個人訪問,而且這裏配置是跟本機電腦配置有關的,服務器一核心足矣(只要電腦帶得動,給八核我也沒意見),下一步。

    默認(本站的內存是1GB,但是我100、101都是2GB,這裏默認1GB夠用了),同上(如果在阿里雲買服務器,我建議是1核心2GB內存哦),下一步。

    點擊使用網絡地址轉換(NAT),下一步。

    默認,下一步。

    默認,下一步。

    默認,下一步。

    默認(磁盤大小自己改,20GB實際上夠了,下面選項默認),下一步。

    默認,下一步。

    點擊自定義硬件

    點擊打印機,然後點擊移除

    跟着数字的步驟走(步驟3:選擇下載好的CentOs7鏡像,我個人是推薦放在服務器根目錄下,看我圖中的路徑,這裏不明白要留言哦)。

    點擊完成

    安裝CentOs7系統

    點擊開啟此虛擬機

    這裏說一下,默認選中的是Test this this media & install CentOS 7(白色字體是選中狀態),按方向鍵↑然後回車(如果按鍵沒效果,需要把鼠標點一下虛擬機显示屏)。

    中文在最下面,滾下去或者拉到下面才看到(下面的搜索chinese),點擊繼續

    這裏看一下自己的日期和時間是不是亞洲/上海 時區,不是的話自己進去調一下(百度)。

    點擊軟件選擇

    把紅框里的兩個勾勾點上,完成。

    點擊安裝位置

    點擊我要配置分區,完成。

    點擊點這裏自動創建他們,完成。

    默認,/boot(啟動文件),swap(交換分區,類似windows虛擬內存。看內存總大小,如果內存足夠大,這個空間就要設置很大,如果內存小於2G,那麼這個空間設置成內存的2倍大小。),/(根分區),完成。

    點擊接受更改

    點擊網絡和主機名

    打開以太網,修改主機名(也闊以使用默認的啦),然後點擊應用(點完應用后看看以太網是不是關閉了,如果關閉了再點開),完成。

    點擊開始安裝

    點擊ROOT密碼

    設置密碼,我這裏設置123456(本機的,起個好記的就好),完成(點兩次)。

    等待安裝(根據自己的需求去創建用戶吧,但是創建后可能某些操作需要root權限,不折騰就不要創了,昨晚搞CentOs8服務器差點崩潰,CentOs8是規定要創建用戶的,CentOs7和CentOs8就跟windows7和windows10一樣)。

    安裝完畢,點擊重啟。

    選擇第一個。

    我的用戶名是root,密碼123456
    輸入用戶名root,回車。

    輸入密碼123456(不可見的,輸入就行了),回車。

    噔噔噔噔,革命成功

    配置服務器靜態ip(需要配置服務器動態ip的自己百度一下)

    到了這一步,你已經回不了頭了,還學會一丟丟Linux命令,建議多去看看Linux命令

    打開目錄:cd /etc/sysconfig/network-scripts/(複製粘貼就好,這個複製粘貼有點麻煩,找不到的就手敲,正是這樣才要用Xshell工具來遠程,得先配置ip,忍一忍吧),回車。

    我這裏显示的是ifcfg-ens33,這裏要說一下,我百度過,有些是32,也有1667777,先用cd /etc/sysconfig/network-scripts/進入目錄,然後ll显示列表(ls也可以显示列表,只显示列表名)。

    編輯ifcfg-ens33:vi ifcfg-ens33(vi:進入編輯模式,文件名別敲錯。),回車。

    i 字母鍵進入編輯模式(如果不显示下圖的,肯定是vi ifcfg-ens33輸入錯了,自己檢查一下,退出vi方法:按Esc(注意左下角),輸入:q!(不保存退出))。

    看圖IPADDR=192.168.157.103NETMASK=255.255.255.0GATEWAY=192.168.157.2,這裏不建議複製粘貼了,好好敲,我擔心會亂(如果一定要複製粘貼的話,先把裏面的複製出來,加上IPADDR、NETMASK、GATEWAY再粘貼回去,不知道能不能明白我的意思,咱們還是敲吧!!!)。

    保存並退出:按Esc鍵,然後輸入:wq(必須小寫),回車。

    重啟網絡:systemctl restart network,回車。
    查看ip:ip addr, 回車。
    出現下圖就可以了,萬歲。

    配置本地的網絡(只需要配置一次)

    這是本地訪問虛擬機要配置的,文本中記下來的本機ip用這裏(因為我這沒有默認網關,所以不填)。

    使用Xshell連接虛擬機服務器(右鍵就可以複製粘貼哦)

    新建會話,這裏隧道要取消轉發X11連接到:(可能會有人奇怪,為什麼這張步驟和下面步驟在正常思路來說調換了,我其實是忘了,後面才補回來的)。

    新建會話,輸入名稱192.168.157.103(輸入名稱后,下面的主機也是同步的。),然後點擊連接。

    出現這個彈窗就說明99.99%成功了,如果沒有就說明配置出錯,大概率在上一個步驟[配置本地的網絡(點擊跳轉)][60]

    輸入用戶名root

    輸入用戶名123456

    okay。

    安裝寶塔面板

    寶塔官網:https://www.bt.cn/
    寶塔Linux面板命令大全:https://www.bt.cn/btcode.html(一定要多看)

    這裏標註幾個常用的命令(本文章用到的):cd(不用說了吧)、clear(清屏,也可以用Ctrl+L)、ll(當前列表,詳細的展示列表),ls(當前列表,簡潔的展示列表)、vi 文件名(編輯文件,按Esc::wq保存並退出、:q(退出)、:q!強制不保存並退出)。

    安裝

    安裝腳本:yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
    PS:此腳本從官方複製過來的時間為2020年6月19日,僅限CentOs系統,如果距離已久,請到官網複製

    右鍵隨意複製粘貼,Xshell工具的好處(佛主:https://www.kancloud.cn/jiangguowu/kfjsdkfjskd/1076752)。

    DO you want to install Bt Panel tothe /www directory now?(y/n):(現在是否要將Bt面板安裝到/www目錄?(是/否):)。
    按y,回車。

    寶塔面板訪問地址:http://192.168.157.103:8888/7a81976f119.137.3.117換成192.168.157.103自己設置的服務器ip(別傻了,只有本地才能訪問)。

    username: yq0g4uxd
    password: c937d4a9

    是闊一。

    點擊一鍵安裝(也可以不選擇,然後自己去左邊的軟件商店自己選擇安裝)。

    建議設置一下安全入口面板用戶面板密碼(只能設置8位數,為了方便,我強行使用命令行將密碼設置為123456,命令:cd /www/server/panel && python tools.py panel 123456,更多的寶塔命令請到寶塔Linux面板命令大全查看:https://www.bt.cn/btcode.html)

    報錯、錯誤、問題大雜燴(此目錄處理教程中遇到的問題,請在下面留言)

    安裝寶塔 -> 14: curl#6 – “Could not resolve host: mirrorlist.centos.org; 未知的錯誤

    打開:vi /etc/resolv.conf
    加入:nameserver 8.8.8.8nameserver 8.8.4.4

    完美結束!!!

    圖片太多,碼字的時候都卡了,大概68張圖片,感覺還是錄製視頻好啊

    如果有錯誤的地方,歡迎糾正。

    我已經想好下一篇的文章了,出一個寶塔面板使用教程。

    原文鏈接:https://blog.langting.top/archives/117.html

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

    【其他文章推薦】

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

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

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

    ※別再煩惱如何寫文案,掌握八大原則!

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

  • 北加州野火再起安全性斷電 2000多人撤離

    摘錄自2019年10月24日中央社報導

    北加州酒鄉有超過一萬公頃的土地遭到森林野火侵襲,2000多人被迫離家,目前沒有人員傷亡,以公共安全為理由的民生斷電又展開。美國媒體ABC News在推特放上現場畫面。

    這場名為金凱德(Kincade)的火災,起火地點距離太平洋瓦斯電力公司(Pacific Gas and Electric Company,PG&E)切斷電源的索諾馬郡(Sonoma County)不遠,索諾馬是與納帕山谷(Napa Valley)齊名的北加州葡萄酒鄉。

    今年季節性的高熱乾風再度來襲,PG&E近日兩度以公共安全為考量,在非常短的時間、突襲式通知警戒區域的民眾斷電消息,引發擾民爭議,也被批評沒有及早檢查、更新輸電線等相關設備。

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

    【其他文章推薦】

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

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

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

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

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

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

  • 迎接Model 3試產,Tesla發股債籌資11.5億美元

    迎接Model 3試產,Tesla發股債籌資11.5億美元

    美國電動車大廠特斯拉(Tesla)15 日公布最新增資計畫,由於即將進入Model 3 電動車的試產階段,預計將透過發行股票和優先債券融資11.5 億美元(約355 億台幣)。

    華爾街日報(Wall Street Journal)報導,特斯拉預計將發行2.5 億美元普通股及7.5 億美元可轉換優先債券來籌措資金,執行長馬斯克(Elon Musk)本人也將認購2,500 美元的普通股,所得資金將用來強化資產負債表,並降低近期業務擴張可能帶來的風險。

    特斯拉表示,2016 年共生產了8.4 萬輛汽車,未來也將持續投資、創造產品並提升產能,希望至2018 年底總產量能達到50 萬輛,2020 年則達到100 萬輛。在公布計畫後,特斯拉盤後股價上漲2.3% 至261.5 美元。

    報導指出,不僅是汽車,馬斯克也計畫將電動車運用在更多車款上,如公共汽車及載貨卡車;隨著去年收購SolarCity Corp,馬斯克希望未來將特斯拉打造成一家永續能源公司,提供包含電動車、電池及太陽能發電在內相關產品。

    AutoCar 網站則提到,除了今年將試產的Model 3 電動車,特斯拉也已經在著手進行另一部迷你SUV 車款Model Y 的開發,相對於特斯拉其他車款來說,Model Y 和Model 3 一樣將會相對平價,市場估計Model 3 售價約為3.7 萬美元(約113 萬台幣),考量到迷你SUV 的機能與客群的不同,Model Y 的售價可能將再比Model 3 車款高上數千美元。

     

    ▲由 Autocar 製作的 Model Y 概念圖

    (合作媒體:。首圖來源:Tesla)

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

    【其他文章推薦】

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

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

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

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

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

  • 樂視傳財務危機,將以2.6億美元賣矽谷土地

    樂視傳財務危機,將以2.6億美元賣矽谷土地

    中國樂視控股(LeEco Holdings)原本野心勃勃,要成為下一個中國版的特斯拉(Tesla Inc.),但最近卻陷入資金短缺困境,剛剛外媒傳出,樂視打算拋售不到一年前從雅虎(Yahoo Inc.)手中購入的矽谷土地,以解燃眉之急。

    路透社17日引述未具名消息人士報導(見此),樂視為了償還對供應商與商業夥伴欠下的大筆債務,決定以2.6億美元的代價,把矽谷土地賣給沒沒無名的中國地產開發商正中置業集團(Genzon Group),價碼比去(2016)年6月購入時多出1,000萬美元。正中置業則確認,的確在跟樂視洽談購買土地的相關事宜。

    消息並透露,樂視在矽谷的辦公室大舉裁員,估計員工數量已經大砍一半以上。

    樂視執行長賈躍亭甫於去年11月在一份給員工的信中坦承,公司因為擴張速度過快,不幸陷入資金短缺困境。然而,賈躍亭在寫出這封信函的一個月前,才剛在舊金山宣布要在矽谷打造第一座北美總部;他當時說,北美總部估計會聘用12,000名員工。

    賈躍亭曾在1月說,樂視的財務問題,可在3-4個月內解決。在他說完不久,地產商融創中國隨即對樂視投資了22億美元,但投資的對象卻是樂視的娛樂部門,而非燒錢嚴重的汽車製造部門。樂視在美國是與Faraday Future攜手開發豪華電動車,Faraday是賈躍亭出資控股的新創公司。

    據Business Insider 1月的採訪發現,Faraday已然在崩解之中,從去年春季後,已有超過半打的資深主管離職,全球執行長更在重要消費電子展(CES)前夕打包走人。

    知情人士形容Faraday組織結構、中美兩地的營運一團混亂,但當前最急迫的是現金不夠用。如果CES展後未能引入新資金,Faraday撐不過五月應該就會玩完。Faraday金主樂視對此表示全屬臆測,但拒絕進一步做評論。

    (本文內容由授權使用。圖片出處:法拉第未來)

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

    【其他文章推薦】

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

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

    ※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

    南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

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

    ※超省錢租車方案

  • Gogoro升級iQ System 智慧系統3.1,搭載韌體升級FOTA新功能

    Gogoro升級iQ System 智慧系統3.1,搭載韌體升級FOTA新功能

    Gogoro Smartscooter 智慧雙輪的車主們,將能再度感受到,他們擁有的不僅是一台電動機車,而是一部不斷進化的雙輪電腦!Gogoro 於16 日正式推出搭載最新功能的「iQ System 智慧系統3.1」,包含空中韌體升級FOTA(Firmware-Over-The-Air)服務。這項科技可讓車主自行利用智慧型手機及Gogoro App 進行遠程升級,只要有穩定的網路訊號,車主都可以DIY 自行操作,無需再花時間返回服務中心。

    Gogoro 產品企劃經理王光祖表示:「Gogoro 擁有最先進、穩定、安全的技術, 也是目前台灣二輪車市場中,唯一運用空中韌體升級FOTA 的品牌。Gogoro 的車主不但可以透過韌體更新,感受智慧雙輪的聰明程度,更可隨著技術與功能的改進而持續升級,時時感受車子越騎越新的快感。」

    這是繼Gogoro 去年11月初發表「iQ System 智慧系統3.0」後,更進一步的升級版本。重點在於提供更直覺、方便、有感的使用體驗,包括更長時間的高速騎乘,更充沛的爬坡動力,以及從容地面對天氣變化,是第一台可以針對嚴寒或酷熱的氣候有動態調配溫度保護機制的二輪機車。其中在爬坡動力的改進,目前已經有車主在臉書分享經驗。游先生提到:「一路到山頂都是以前從來沒有過的充沛動力感!」網友Alex Yeh 則表示:「車速感覺不會掉太多,還是會有充沛的動力上山!」

    此外,因應部分Gogoro 車主曾發生不小心將手機或智慧鑰匙鎖在置物廂中的問題,之前在「iQ System 智慧系統3.0」時,便已在Gogoro App 中增加「車廂開關設定」的選項,置物箱打開後若在90 秒內關上時,就可以自動解鎖。 此次更新則更加優化了這個貼心的功能,即使在交換電池後,只要在放回電池的90 秒內關上座墊,一樣會自動解鎖,不需再次掏出智慧鑰匙即可上路,讓交換電池的過程更加流暢。

    (合作媒體:。圖片出處:Gogoro)

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

    【其他文章推薦】

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

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

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

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

    ※別再煩惱如何寫文案,掌握八大原則!

    網頁設計最專業,超強功能平台可客製化

  • 電動車商機大,Panasonic再收購Ficosa

    電動車商機大,Panasonic再收購Ficosa

     

    Panasonic 21日發布新聞稿宣布,將追加收購西班牙汽車零件大廠Ficosa International SA 20%股權,目標在今年4月把持股提高至69%、將Ficosa收編為旗下子公司行列,以期望藉由加深與Ficosa的合作,強化車用電子鏡、先進駕駛輔助系統(ADAS)等車用事業。Panasonic於2015年6月取得Ficosa 49%股權。

    Ficosa為全球第3大車用門鏡商,2015年營收為11億歐元,並計畫於2017年開賣與Panasonic攜手研發的新型車鏡。

    車用相關事業被Panasonic視為成長領域事業,Panasonic計畫在2018年度將車用相關事業營收提高至2兆日圓、將較2015年度的1.3兆日圓大增5成。

    路透社報導,Panasonic社長津賀一宏1月接受專訪時表示,「2兆日圓不是一個頂點,應該將目光瞄準在之後的2.5兆日圓或更高的目標上」。

    根據嘉實XQ全球贏家系統報價,截至台北時間22日13點18分為止,Panasonic大跌2.85%至1,209.5日圓,創約1個月來(2月10日以來)新低水準。

    日經新聞於去年12月5日報導,IT、電機大廠為了搶食自動駕駛、電動車(EV)普及所將引發的商機,正積極進行併購,其中日本Panasonic將收購歐洲車燈大廠ZKW、進軍車燈市場。據悉,Panasonic、ZKW已就收購進入最終協商階段,預估收購額最高將達1,000億日圓的規模。

    (本文內容由授權使用。圖片出處:Ficosa)

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

    【其他文章推薦】

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

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

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

    南投搬家公司費用需注意的眉眉角角,別等搬了再說!

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

  • 大摩:特斯拉Model 3自駕系統車禍降低90%

    大摩:特斯拉Model 3自駕系統車禍降低90%

    電動車大廠特斯拉(Tesla Inc.)要價35,000美元的平價車種「Model 3」預計2017年稍晚就能開賣,摩根士丹利(通稱大摩)認為,這款電動車的安全度會是一般車輛的10倍之多,發生死亡車禍的機率有望比其他車種低90%。

    根據網友最近在YouTube貼出影片,自駕系統「Autopilot」能提前好幾步預測到車禍。()

    MarketWatch、Business Insider等外電報導,大摩分析師Adam Jonas 23日發表研究報告指出,特斯拉為每台車安裝超級電腦後,車子安全性提升至其他車輛兩倍已經不夠看,他相信Model 3的安全度會是其他車輛的十倍之多,這會讓死亡車禍的發生機會降低90%。

    Jonas認為,缺少特斯拉駕車輔助科技的二手車價值將因而猛掉,未來甚至會被禁止上路。特斯拉蒐集資料的能力超群,還能將先進的安全輔助技術應用到電動車,還未推出類似科技的傳統車廠,競爭力堪虞。

    假如Model 3大獲成功、數百萬輛擁有自駕功能的車輛上路,那麼對行車安全的統計資料應有影響,這會凸顯其科技的優異程度,並迫使主管機關下令要求所有車輛都必須配備類似的系統。

    特斯拉23日終場下跌0.09%、收254.78美元;年初迄今已大漲19.23%。

    不過,最近有人仔細挖掘特斯拉向美國證管會(SEC)呈交的最新10-K報告,發現該公司已在內文悄悄坦承,Model 3 Beta版的原型車,至今尚無蹤影。

    美國權威汽車雜誌《Car and Driver》記者Anton Wahlman 3月2日報導(),特斯拉在3月1日發布的10-K報告中表示,已在測試Model 3的設計和製程時開發出多種版本,可作為Model 3 Beta版原型車的候選選項;在董事會選定要用哪一款作為Beta版的原型車之後,特斯拉下一階段的工作里程碑就能順利達陣。

    Wahlman認為,這意味著特斯拉在該份公告涵蓋的期間內(截至2016年12月31日為止),仍舊還未完成Model 3 Beta版的原型車。不過,這份文件是在2017年3月1日發布,這或許也代表至3月初為止,董事會還未對要用哪款原型車拍板定案。

      (本文內容由授權使用。圖片出處:Public Domain)

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

    【其他文章推薦】

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

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

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

    ※別再煩惱如何寫文案,掌握八大原則!

    ※產品缺大量曝光嗎?你需要的是一流包裝設計!

  • 博弈論——兩人取子遊戲與威佐夫博弈,隱藏在背後的黃金分割

    博弈論——兩人取子遊戲與威佐夫博弈,隱藏在背後的黃金分割

    本文始發於個人公眾號:TechFlow,原創不易,求個關注

    今天是算法和數據結構專題第25篇文章,我們繼續博弈論專題。

    在上一篇文章當中我們了解了最簡單的巴什博奕,今天我們來看看另一個經典的博弈模型——威佐夫博弈。博弈論和機器學習有些類似,數學家們針對場景進行建模,設計出了幾個經典模型。然後我們在面臨具體問題的時候,對問題進行深入分析,尋找最合適的模型應用來解決它。

    石子問題

    我們來看一道經典的例題,有兩堆石子,有兩個絕頂聰明的人在玩一個遊戲。每次每個人可以從其中一堆石子當中取走任意數量的石子,或者是從兩堆當中同時取走相同數量的石子。無法取石子的人落敗,請問,在告知兩堆石子數量的情況下,這兩個人當中哪一方會獲勝?

    我們簡單分析一下,會發現一些局面是先手必敗的。比如說(0, 0),再比如(1, 2)。我們簡單分析一下(1, 2),先手有4種策略,首先他可以取走第一堆,那麼後手可以取完第二堆,顯然後手獲勝。他也可以在第二堆當中取1個,這時剩下(1, 1),後手會同時取完,同樣是後手獲勝。第三種是他取走第二堆,後手可以取完第一堆,後手獲勝。第四種是他在第一堆和第二堆當中同時取走一個,這時第二堆剩下一個,後手勝。

    那麼,這些必敗的狀態之間有什麼規律呢?我們怎麼找到這個規律,並且找到解呢?

    分析

    我們可以枚舉幾個必敗的狀態:(0, 0), (1, 2), (3, 5), (4, 7)…

    我們觀察一下這些狀態,可以找到兩條規律。我們假設從小到大排的第k個必敗狀態是(x, y),並且x < y。我們可以發現y = x + k。也就是說必敗狀態兩個數的差值是遞增的,這也說明了每一個必敗狀態的差值都各不相同。

    其實這是很容易證明的,我們用反證法,假設(a, a+k), (b, b+k)都是必敗狀態,並且a < b。那麼先手在面臨(b, b+k)的時候,只需要在兩堆當中同時取走b-a個石子,那麼給後手的局面就是(a, a+k)。對於後手來說,這是一個必敗的局面,這就和(b, b+k)先手必敗矛盾,所以不存在兩個必敗局面的差值相等

    我們也可以作圖分析,我們把兩堆石子的數量看成是坐標軸上的一個點。所以遊戲就變成了:棋盤上有一個點,每次每個人可以將它向下、向左或者向左下移動若干個格子,不能移動的人輸。終止節點顯然是原點,一步就能移動到原點的點顯然是必勝點,假設我們給這些所有必勝點都染色的話,剩下的的沒當中橫縱坐標和最小的點就是下一個必敗點。因為它不論如何移動,都會給對手留下一個必勝點。

    我們根據上面的邏輯把必敗點都染色,可以得到下面這張圖:

    從這張圖可以看出,必敗點之間不能通過一次移動得到,換句話說可以一次移動到必敗點的點都是必勝點,從圖上可以看出,除了必敗點的之外的點都是必勝點,並且每一個自然數都必然只會被包含在一個必敗狀態當中。

    到這裏,我們距離解法已經很接近了,現在剩下的問題是,我們如何根據x和y的取值快速判斷它們是否構成一個必敗局面呢?也就是說我們能不能找出一個通項公式,對於第k個必敗局面,它的坐標是(\(x_k, y_k\))呢?

    求解

    為了寫出通項公式,我們需要引入Betty定理

    設a和b是兩個正無理數,並且\(\frac{1}{a} + \frac{1}{b} = 1\)

    記P={[\(a_n\)], \(n \in N^+\)}, Q={[\(b_n\)], \(n \in N^+\)},則\(P \cap Q = \varnothing\)\(P\cup Q = N^+\)

    證明

    \(P\cap Q = \varnothing\)

    反證,我們假設存在\(k \in P\)並且\(k \in Q\),即存在正整數n, m滿足 k < an, bm < k+1。

    也就是:\(\frac{n}{k} > \frac{1}{a} > \frac{n}{k+1}, \frac{m}{k} > \frac{1}{b} > \frac{m}{k+1}\)兩個式子相加可以得到:\(\frac{m+n}{k} > 1 > \frac{m+n}{k}\)

    \(k < n+m < k+ 1\),這與n,m,k都是正整數矛盾

    \(P \cup Q = N^+\)

    反證,假設存在\(k \notin P\)\(k \notin Q\),即存在正整數n,m滿足\(an < k < a(n+1)-1, bm < k < b(m+1)-1\)

    即:\(\frac{n}{k} < \frac{1}{a} < \frac{n+1}{k+1}, \frac{m}{k} < \frac{1}{b} < \frac{m+1}{k+1}\)

    相加,可以得到:\(\frac{m+n}{k} < 1 < \frac{n+m+2}{k+1}\)

    即:n + m < k < n + m + 1,這與n,m,k均為正整數矛盾

    我們花了這麼大力氣來證明Betty定理就是為了用的,因為我們發現必敗狀態的通項和Betty定理序列很像。我們不妨假設存在這樣的a, b同時滿足Betty定理與必敗狀態的性質:

    \[[an] + n = [bn], \frac{1}{a} + \frac{1}{b} = 1 \]

    \[[an] + n = [an + n] = [(a+1)n] = [bn] \]

    代入可以得到:

    \[\frac{1}{a} + \frac{1}{a+1} = 1 \]

    解這個方程,可以得到\(a = \frac{1 + \sqrt{5}}{2}\approx 1.618\),熟悉數學的同學相信一下就看出來了,這個數是黃金分割的比例,這是巧合嗎,還是藏着更深的道理呢?

    至少,求出了a之後,我們就可以非常簡單地判斷必敗狀態了:

    import math
    def lose_or_win(a, b):
        if a > b:
            a, b = b, a
        
        k = b - a
        # 根據差值k求出第k個必敗狀態,判斷是否相等
        return not (int(k * (math.sqrt(5)+1) / 2)) == a
    

    總結

    和之前介紹的巴什博奕相比,威佐夫博弈的推導過程要複雜得多,但是雖然推導過程依然複雜,但是仍然擋不住最後實現的代碼非常簡單。

    另外,在推導的過程當中,我們用到了Betty定理,這個定理的推導和證明雖然不難,但是如果不是數學專業的同學,可能大概率都沒有接觸過。這其實體現了博弈論本身和數學的關係是非常緊密的。一個看起來非常簡單的問題,引申出了一系列眼花繚亂的推導和證明,怎麼樣,大家看得還過癮嗎?

    今天的文章到這裏就結束了,如果喜歡本文,可以的話,請點個關注,給我一點鼓勵,也方便獲取更多文章。

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

    【其他文章推薦】

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

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

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

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

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

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

  • Task.Result跟 Task.GetAwaiter.GetResult()相同嗎?怎麼選?

    前幾天在用線程池執行一些任務時運到一種情形,就是回調方法中使用到了異步方法,但是回調方法貌似不支持async await的寫法。這時候我應該如何處理呢?是使用Task.Result來獲取返回結果,還是使用GetAwaiter.GetResult()呢?本文就來探討下吧。

    作者:依樂祝

    原文地址:https://www.cnblogs.com/yilezhu/p/13168337.html

    這裏先上我這種場景的偽代碼:

    ThreadPool.QueueUserWorkItem(ExcuteScanProcess, node);
    

    ExcuteScanProcess這個回調方法中

    private void ExcuteScanProcess(object state)
    {
        ……其他處理……
        repository.UpdateAsync(node).ConfigureAwait(false).GetAwaiter().GetResult();
        ……其他處理……
    }
    

    如上圖所示repository.UpdateAsync(node)屬於一部方法,這時候我想要等待它異步執行完成之後再執行後續的邏輯。這時候我有兩種選擇,是直接

    repository.UpdateAsync(node).ConfigureAwait(false).GetAwaiter().GetResult();
    

    好呢,還是

    repository.UpdateAsync(node).ConfigureAwait(false).Result;
    

    好呢?

    為此我查找了相關的資料,對它倆的區別做一個簡單的總結:

    其實這兩個使用方式是差不多的。不過,還是有一點小小的區別的:如果任務失敗,Task.GetAwaiter().GetResult()會直接拋出異常,而Task.Result則會把異常包裝在AggregateException中。從這個角度說Task.GetAwaiter().GetResult()要優於Task.Result。畢竟它少了異常的包裝操作,即直接拋出異常,而不是把異常包裝在AggregateException中。

    下面的引言解釋了為什麼Task.Result不僅僅包含Task.GetAwaiter().GetResult()(由於“非常高的兼容性”)的異常傳播行為。

    如前所述,我們有一個非常高的兼容性標準,因此我們避免了改動。因此,Task.Wait保留了始終包裝的原始行為。但是,您可能會發現自己處在某些高級情況下,這些情況下您想要的行為類似於所採用的同步阻塞Task.Wait,但是您希望將原始異常展開而不是傳播,而不是將其封裝在AggregateException中。為此,您可以直接定位任務的等待者。當您編寫“ await task;”時,編譯器Task.GetAwaiter()會將其轉換為方法的用法,這將返回具有GetResult()方法的實例。當用於有故障的任務時,GetResult()將傳播原始異常(這是“ await task;” 如何獲得其行為)。因此,您可以使用“task.GetAwaiter().GetResult()如果您想直接調用此傳播邏輯。

    https://blogs.msdn.microsoft.com/pfxteam/2011/09/28/task-exception-handling-in-net-4-5/

    GetResult”實際上表示“檢查任務是否有錯誤”

    通常,我會儘力避免對異步任務進行同步阻塞。但是,在少數情況下,我確實違反了該準則。在那些罕見的情況下,我的首選方法是GetAwaiter().GetResult()因為它保留任務異常,而不是將它們包裝在中AggregateException

    總結

    通過上述內容的闡述,因此在那些必須對異步任務進行同步阻塞的場景中,我選擇使用GetAwaiter().GetResult()

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

    【其他文章推薦】

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

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

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

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

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

  • mysql大表在不停機的情況下增加字段該怎麼處理

    mysql大表在不停機的情況下增加字段該怎麼處理

    MySQL中給一張千萬甚至更大量級的表添加字段一直是比較頭疼的問題,遇到此情況通常該如果處理?本文通過常見的三種場景進行案例說明。

    1、 環境準備

    數據庫版本: 5.7.25-28(Percona 分支)

    服務器配置:  3台centos 7虛擬機,配置均為2CPU  2G內存

    數據庫架構: 1主2從的MHA架構(為了方便主從切換場景的演示,如開啟GTID,則兩節點即可),關於MHA搭建可參考此文 MySQL高可用之MHA集群部署

    準備測試表:  創建一張2kw記錄的表,快速創建的方法可以參考快速創建連續數

    本次對存儲過程稍作修改,多添加幾個字段,存儲過程如下:

    DELIMITER $$
    CREATE  PROCEDURE `sp_createNum`(cnt INT )
    BEGIN
        DECLARE i INT  DEFAULT 1;
        DROP TABLE  if exists  tb_add_columns;
        CREATE TABLE if not exists tb_add_columns(id int primary key,col1 int,col2 varchar(32));
        INSERT INTO tb_add_columns(id,col1,col2) SELECT i  as id ,i%7 as col1,md5(i) as col2;
        
        WHILE i < cnt DO
          BEGIN
            INSERT INTO tb_add_columns(id,col1,col2) SELECT id + i   as id ,( id + i) %7 as col1,md5( id + i) as col2  FROM tb_add_columns WHERE id <=cnt - i ;
            SET i = i*2;
          END;
        END WHILE;
    END$$
    DELIMITER ;

    調用存儲過程,完成測試表及測試數據的創建。

    mysql> call sp_createNum(20000000);

     2.  直接添加字段

    使用場景: 在系統不繁忙或者該表訪問不多的情況下,如符合ONLINE DDL的情況下,可以直接添加。

    模擬場景: 創建一個測試腳本,每10s訪問該表隨機一條記錄,然後給該表添加字段

    訪問腳本如下

    #!/bin/bash
    # gjc
    
    for i in  {1..1000000000}                    # 訪問次數1000000000,按需調整即可
    do
        id=$RANDOM                          #生成隨機數    
        mysql -uroot -p'123456' --socket=/data/mysql3306/tmp/mysql.sock  -e "select  a.*,now() from  testdb.tb_add_columns a where id = "$id     # 訪問數據
        sleep 10                            #  暫停10s
    done

    運行腳本

    sh  test.sh

     給表添加字段

    mysql> alter table  testdb.tb_add_columns add col3 int;

      此時,訪問正常。

     附ONLINE DDL的場景如下,建議DBA們必須弄清楚

    (圖片轉載於https://blog.csdn.net/finalkof1983/article/details/88355314)

     

     (圖片轉載於https://blog.csdn.net/finalkof1983/article/details/88355314)

    3.   使用工具在線添加

    雖然Online DDL添加字段時,表依舊可以讀寫,但是生產環境使用場景中對大表操作使用最多的還是使用工具pt-osc或gh-ost添加。

    本文主要介紹 pt-osc(pt-online-schema-change) 來添加字段,該命令是Percona Toolkit工具中的使用頻率最高的一種

    關於Percona Toolkit的安裝及主要使用可以參考  五分鐘學會Percona Toolkit 安裝及使用

    添加字段

    root@mha1 ~]# pt-online-schema-change --alter "ADD COLUMN  col4  int" h=localhost,P=3306,p=123456,u=root,D=testdb,t=tb_add_columns,S=/data/mysql3306/tmp/mysql.sock  --charset=utf8mb4 --execute

    主要過程如下:

    1> Cannot connect to A=utf8mb4,P=3306,S=/data/mysql3306/tmp/mysql.sock,h=192.168.28.132,p=...,u=root
    1> Cannot connect to A=utf8mb4,P=3306,S=/data/mysql3306/tmp/mysql.sock,h=192.168.28.131,p=...,u=root
    No slaves found.  See --recursion-method if host mha1 has slaves.  #  因為使用的是socket方式連接數據庫 且未配置root遠程連接賬號,所以會有此提示
    
    # A software update is available:
    Operation, tries, wait:
      analyze_table, 10, 1                                     
      copy_rows, 10, 0.25                                       
      create_triggers, 10, 1                      
      drop_triggers, 10, 1
      swap_tables, 10, 1
      update_foreign_keys, 10, 1
    Altering `testdb`.`tb_add_columns`...
    Creating new table...                                     #  創建中間表,表名為"_原表名_new"
    Created new table testdb._tb_add_columns_new OK.           
    Altering new table...                                     #  修改表,也就是在新表上添加字段,因新表無數據,因此很快加完
    Altered `testdb`.`_tb_add_columns_new` OK.                  
    2020-06-20T12:23:43 Creating triggers...                  #  創建觸發器,用於在原表拷貝到新表的過程中原表有數據的變動(新增、修改、刪除)時,也會自動同步至新表中
    2020-06-20T12:23:43 Created triggers OK.
    2020-06-20T12:23:43 Copying approximately 19920500 rows... # 拷貝數據,數據庫量是統計信息里的,不準確
    Copying `testdb`.`tb_add_columns`:  11% 03:50 remain       #  分批拷貝數據(根據表的size切分每批拷貝多少數據),拷貝過程中可以用show processlist看到對應的sql
    Copying `testdb`.`tb_add_columns`:  22% 03:22 remain
    Copying `testdb`.`tb_add_columns`:  32% 03:10 remain
    Copying `testdb`.`tb_add_columns`:  42% 02:45 remain
    Copying `testdb`.`tb_add_columns`:  51% 02:21 remain
    Copying `testdb`.`tb_add_columns`:  62% 01:48 remain
    Copying `testdb`.`tb_add_columns`:  72% 01:21 remain
    Copying `testdb`.`tb_add_columns`:  81% 00:53 remain
    Copying `testdb`.`tb_add_columns`:  91% 00:24 remain
    2020-06-20T12:28:40 Copied rows OK.                       # 拷貝數據完成
    2020-06-20T12:28:40 Analyzing new table...                # 優化新表
    2020-06-20T12:28:40 Swapping tables...                    # 交換表名,將原表改為"_原表名_old",然後把新表表名改為原表名
    2020-06-20T12:28:41 Swapped original and new tables OK.    
    2020-06-20T12:28:41 Dropping old table...                 #  刪除舊錶(也可以添加參數不刪除舊錶)
    2020-06-20T12:28:41 Dropped old table `testdb`.`_tb_add_columns_old` OK.
    2020-06-20T12:28:41 Dropping triggers...                  # 刪除觸發器
    2020-06-20T12:28:41 Dropped triggers OK.
    Successfully altered `testdb`.`tb_add_columns`.            # 完成

    修改過程中,讀寫均不受影響,大家可以寫個程序包含讀寫的

    注:  無論是直接添加字段還是用pt-osc添加字段,首先都得拿到該表的元數據鎖,然後才能添加(包括pt-osc在創建觸發器和最後交換表名時都涉及),因此,如果一張表是熱表,讀寫特別頻繁或者添加時被其他會話佔用,則無法添加。

    例如: 鎖住一條記錄

    用pt-osc添加字段,會發現一直卡在創建觸發器那一步

     此時查看對應的SQL正在等待獲取元數據鎖

    換成直接添加也一樣,例如

     當達到鎖等待后將會報錯放棄添加字段

    mysql> alter table  testdb.tb_add_columns add col5 int;
    ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

    對於此情況,需等待系統不繁忙情況下添加,或者使用後續的在從庫創建再進行主從切換

    4  先在從庫修改,再進行主從切換

    使用場景: 如果遇到上例中一張表數據量大且是熱表(讀寫特別頻繁),則可以考慮先在從庫添加,再進行主從切換,切換后再將其他幾個節點上添加字段。

    先在從庫添加(本文在備選節點添加)

    mysql> alter table  testdb.tb_add_columns add col5 int;
    Query OK, 0 rows affected (1 min 1.91 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    進行主從切換

    使用MHA腳本進行在線切換

    masterha_master_switch  --conf=/etc/masterha/app1.conf --master_state=alive  --orig_master_is_new_slave --new_master_host=192.168.28.131  --new_master_port=3306

    切換完成后再對其他節點添加字段

    /* 原主庫上添加192.168.28.128  */
    mysql>  alter table  testdb.tb_add_columns add col5 int;
    Query OK, 0 rows affected (1 min 8.36 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    /* 另一個從庫上添加192.168.28.132  */
    mysql>  alter table  testdb.tb_add_columns add col5 int;
    Query OK, 0 rows affected (1 min 8.64 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    這樣就完成了字段添加。

    5.  小結

    生產環境MySQL添加或修改字段主要通過如下三種方式進行,實際使用中還有很多注意事項,大家要多多總結。

    • 直接添加

    如果該表讀寫不頻繁,數據量較小(通常1G以內或百萬以內),直接添加即可(可以了解一下online ddl的知識)

    •  使用pt_osc添加

    如果表較大 但是讀寫不是太大,且想盡量不影響原表的讀寫,可以用percona tools進行添加,相當於新建一張添加了字段的新表,再降原表的數據複製到新表中,複製歷史數據期間的數據也會同步至新表,最後刪除原表,將新表重命名為原表表名,實現字段添加

    •  先在從庫添加 再進行主從切換

    如果一張表數據量大且是熱表(讀寫特別頻繁),則可以考慮先在從庫添加,再進行主從切換,切換后再將其他幾個節點上添加字段

     

     

     

     

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

    【其他文章推薦】

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

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

    ※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

    南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

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

    ※超省錢租車方案