[好站分享] GitHub 上的瘋狂 C++ 相關資源清單:Awesome-C++
逛國外網站這麼久,很少碰到有資源齊全到讓我倒抽一口涼氣的...這個作者對 C++ 很有愛啊~~
Awesome-C++,是掛在 GitHub 上的一個 C++ 資源清單。收集了 C++ 相關的函式庫、軟體、書籍、文章...還推薦作者覺得也不錯的其它清單。連結如下:
https://github.com/fffaraz/awesome-cpp
一旦點進去,你會被裡面滿滿的超鏈結,把你的腎上腺素濃度打到最高... XD。如果您平常工作與 C++ 相關,您絕對不能錯過這份清單。我簡單列出一下這份清單有什麼:
(以下文長,是寫給英文苦手的讀者看的。英文沒啥問題的朋友,建議直接看原文即可)
一、函式庫與框架
* 標準函式庫(Standard Libraries):
C++ 原生函式庫、POSIX、ISO、GNU 各家出品的標準函式庫都有。
* 程式框架(Frameworks)
「框架」比「函式庫」規格大一點。一般來說,「函式庫」幫你把常用的程式寫好,你只要叫用就好了,是一種幫助你加速完工、但並沒帶來任何新功能的一堆程式碼。「框架」則是替原始 C++ 帶來一些令人驚艷的新功能。不過這種分法,並非絕對的。
* 人工智慧(Artificial Intelligence, AI)相關框架與函式庫
想要催得動這一坨東西,得有點 AI 背景。否則你可能不知道函式庫提供給你「深先搜尋(Depth-first Search)」與「廣先搜尋(Width-first Search)」這些函數怎麼讓那堆冷冰冰的硬體多一點智慧。
* 非同步呼叫所使用的事件佇列(Asynchronous Event Loop)
一般來說,一個程式呼叫另一個程式,「叫人的」得等「被叫的」把事情做完,才能繼續進行下一步。就像一個經理眼睛盯著新手做事、沒辦法回到辦公桌做自己的事一樣,這種模式叫「同步呼叫(Synchronous Call)」。比較好的作法,是你交代完新手該做什麼,就離開回去做自己的事,等新手做完了,再來報告說「我做完了」,這種模式叫「非同步呼叫(Asynchronous Call)」。不過要能做到「非同步」,「叫人者」與「被叫者」之間,得有「事件(Event)」這個機制,讓兩者互相溝通該做的事,以及是否完工。此處提供的,都是讓 C++ 能達成「非同步」機制的函式庫或框架。
* 音效(Audio)相關框架或函式庫
這裡放的,都是讓你的 C++ 能做到讀取音效檔(如:mp3),並用程式碼對該檔進行剪輯、混音...等動作的函式庫或框架。
* 生物(Biology)相關框架或函式庫
這邊的函式庫,可以讓您用 C++ 比對兩條 DNA 序列相似度有多高,或者從一大堆不同樣本的 DNA 中,找出哪條 DNA 與哪條可能有親緣關係...等。
* 命令列(Command Line Interface, CLI)相關框架或函式庫
用這邊的函式庫,可以讓您在命令列跑出一些令人驚艷的效果。如 NCurses 就是一套能在命令列之下,用文字盡量模擬出下拉式選單、按鈕...圖形界面的感覺。
* 壓縮(Compression)相關函式庫
讓您不必瞭解檔案壓縮原理,會叫用相關函數就能做到檔案壓縮。
* 平行處理(Concurrency)相關函式庫
讓 C++ 也能輕易做到同時處理多件事情的函式庫。
* 資料結構相關函式庫(Containers)
提供資料結構內的 B-Tree 與 Hashmaps 等架構,讓 C++ 輕鬆取用。
* 加密(Cryptography)相關函式庫
提供加密解密相關函數。
* 資料庫(Database)相關函式庫
讓 C++ 可以用幾道命令,輕鬆接取 MySQL、MongoDB...等知名資料庫內的資料。
* 除錯、測試、效能(Debug)相關函式庫
雖然原文只用了「Debug」這樣的簡單字眼,但這一區的函式庫包含「單元測試(Unit Test)」、「效能測試(Benchmark)」、「記憶體用量追蹤(Memory Tracking)」等功能的函數。讓您的程式在還沒跑之前,就接受嚴格檢驗,降低發生錯誤的機會。
* 遊戲引擎(Game Engine)
提供一些函數,讓您輕鬆讀入 3D 建模軟體(如:Maya, 3D Studio...)做出來的模型與動畫。並在程式內特定事件(如:碰撞)發生時播放。也提供打光(Shading)、物理函數(如:彈跳、碰撞)...等方便的程式供您取用。這些東西讓您在寫遊戲時,能以更快的效率產出結果。
* 圖形界面(Graphical User Interface, GUI)
讓您用 C++ 建立漂亮的視窗、對話框、核取框、下拉式功能表...等圖形界面。
* 圖形(Graphics)相關函式庫
這部分多與遊戲引擎搭配,提供 2D 圖形處理或 3D 光跡追蹤(Rendering)等「外觀美化」的函數。讓您的遊戲角色或場景,看起來更栩栩如生。
* 影像處理(Image Processing)相關函式庫
包含讀入/繪出各式圖檔(PNG、JPG、GIF...)、光學字元辨識、電腦視覺、讀入/播放各式影片(MP4...)等函數。
* 國際化(Internationalization)相關函式庫
讓您用 C++ 寫出來的程式,可以輕易支援各國語言(當然,各國語言要事先請翻譯社先翻好,這邊只是提供語系切換的機制)。
* 行程間通訊(Inter-Process Communication, IPC)相關函式庫
兩個跑起來的獨立程式(如:兩個執行檔)想在執行過程中交換資料,稱為「行程間通訊」,簡稱 IPC。IPC 雖然不至於難如登天,不過要做到,手續還是很瑣碎的。這邊的函式庫提供好用函數,讓兩個行程交換資料時,變得比較容易。
* JSON 支援相關函式庫
JSON 原文是 JavaScript Object Notation。是一種用「純文字」來表示「資料」的方法。如一筆「李大華、35 歲、手機 0937555666」的資料,用 JSON 表示是這樣的:
[
Name: "李大華",
Age: 35,
Mobile: "0937555666"
]
之後可以讓這樣的資料,流通於瀏覽器與伺服器之間。而 JSON 函式庫,可以快速幫您分析 JSON 表示的資料,將它還原成您要的格式。
* 日誌(Logging)支援函式庫
日誌在「系統稽核」中,是很重要的功能。系統得把「什麼人、等級多高、做了什麼事、何時做的、對哪部分做的、從哪個 IP 過來...」忠實記錄下來。萬一系統出事了,我們就能追查可能是誰搞的。類似「監視器」的功能。這部分的函式庫,可以讓 C++ 輕易做到「日誌」功能,您不用傷腦筋日誌功能該怎麼寫,它已經幫您寫好了。您只要會用就行。
* 機器學習(Machine Learning)相關函式庫
提供如「類神經網路」、「電腦視覺」等進階函式庫,讓您的 C++ 程式有少量人類視覺與思考能力(真的很少量,請不用有太高期待)。
* 數學(Math)相關函式庫
一些線性代數、矩陣運算...等相關數學函數。
* 多媒體(Multimedia)相關函式庫
如:影音串流...等相關函數。
* 網路(Networking)相關函數
提供各種低階網路協定相關函數。如:TCP/IP、HTTP、點對點傳輸、非同步通訊、以及一些與 Facebook 橋接的相關函數。
* 物理模擬(Physics)相關函數
這部分也可以大量用於遊戲程式設計。主要提供一些函數,用來模擬自然界各種物理現象。如水流、風吹、碰撞、彈跳...等。
* 機器人控制(Robotics)相關函數
一堆方便你控制或模擬機器人行為的函數。
* 科學運算(Scientific Computing)
一些在科學上比較用得著的數學運算。如工程數學、傅立葉分析...等。
* 腳本語言控制(Scripting)
包含一些能讓 C++ 與各種腳本語言(JavaScript、PHP、Perl...)橋接的函數。
* 序列化控制(Serialization)
首先解釋一下何謂序列化。序列化可以把程式執行到一半的樣子,如數保存於硬碟中,甚至於可以關機。之後可以把序列化的資料「反序列化」,將它「解凍」還原至記憶體繼續跑,就像當初跑到一半被「冷凍」當下再往下執行一樣。這邊提供許多 C++ 序列化的函式庫。
* 影片處理(Video)
可以讀入/播放各種影片檔的函式庫。
* 虛擬機(Virtual Machines)
這邊提供一些用 C++ 寫出來的「輕量級」虛擬機。所謂虛擬機,是用軟體模擬出硬碟、處理器、記憶體、螢幕,工程師可以在虛擬機內安裝另一個作業系統,就好像安裝作業系統至真實機器一樣。
* 網頁應用軟體框架(Web Application Framework)
集合了一些用 C++ 寫出來的 WWW 伺服器、或開發網頁時用得上的函式庫等。
* XML
如果你希望教會你的 C++ 程式「讀懂」一個 XML 檔在講什麼,這邊提供了一堆 XML 解析器(XML Parser),方便您分析從遠方伺服器傳來的 XML 檔到底想表達什麼樣的資料。
* 其它(Miscellaneous)
一些無法分類的東西,通通塞在這裡。大部分是一些小型的函式庫或 C++ 與其它語言的橋接軟體。
二、C++ 相關軟體
* 編譯器(Compiler)
各類把 C++ 原始碼編成 0 與 1 機械碼的軟體。
* 線上編譯器(Online Compiler)
懶得安裝編譯器的話,現在有一堆線上的編譯器。你上傳原始碼,它會編成機械碼後,丟還個執行檔給你下載。
* 除錯器(Debugger)
一些有名的 C++ 除錯器。當你的程式無法執行時,可以靠它找出到底錯在哪裡。
* 整合式開發環境(Integrated Development Environment, IDE)
IDE 就是把文字編輯器(Editor)、編譯器(Compiler)、除錯器(Debugger)...等軟體整合成一體的軟體。您可以不離開該環境,就能寫碼、編譯、除錯、執行...。
* 軟體建構系統(Build Systems)
簡單說,就是把一些瑣碎動作事先安排好、可以在程式碼修改後,下達一條指令(如:「建構!」),就可全自動一條鞭地從編譯、測試、備份、安裝...一口氣完成的系統。
* 原始碼靜態分析軟體(Static Code Analysis)
丟入原始碼,可以幫你找出哪段程式可能發生錯誤,或者可能造成效能低下。也能找出完全沒被叫用到的原始碼,提醒您刪除。甚至於可以把您的程式碼重排成符合特定格式,統一多人寫碼風格時很有用。
三、其它資源
* API Design 文件
* 有用文章(Articles)
* 推薦書籍(Books)
* 寫碼風格(Coding Style)
* 演講(Talks)
* 影片教學(Videos)
* 有用網站(Web Sites)
* 有用部落格(Weblogs)
* 其它 Awesome C++ 姊妹作(Other Awesome Projects)
四、其它也很棒的清單(Other Awesome Lists)
能看到這行字的,給您拍拍手!辛苦了!希望今天分享的內容您會喜歡!也請您不吝按讚鼓勵,或分享給您 Facebook 的親朋好友!
同時也有1部Youtube影片,追蹤數超過6萬的網紅大人的玩具,也在其Youtube影片中提到,跪求有空的朋友 為影片加上字幕(中文即可) 萬分感謝 https://www.youtube.com/timedtext_cs_panel?tab=2&c=UC1FmA48qj1YOYQ5I6j4l6YA 如果覺得我介紹的不錯,歡迎贊助我的開箱影片(Please support my video ...
「virtual machine下載」的推薦目錄:
virtual machine下載 在 紀老師程式教學網 Facebook 的最佳解答
PHP in PHP: 在 PHP 內執行 PHP 虛擬機,好讓你跑另一個 PHP
哈哈哈!很拗口對吧?其實這是一個蠻有趣的計畫。用 PHP 建造一個 PHP VM(Virtual Machine),來解譯另一堆 *.php 。原文點進去後可以下載這個有趣的 PHP VM,然後讓你在 PHP 內啟動一個 PHP VM,去解讀並執行另一堆 *.php 檔了。
點入後,往下捲有詳細說明,不要錯過喔!
https://github.com/ircmaxell/PHPPHP
virtual machine下載 在 大人的玩具 Youtube 的精選貼文
跪求有空的朋友
為影片加上字幕(中文即可)
萬分感謝
https://www.youtube.com/timedtext_cs_panel?tab=2&c=UC1FmA48qj1YOYQ5I6j4l6YA
如果覺得我介紹的不錯,歡迎贊助我的開箱影片(Please support my video Channel) PayPal : jkc1974@gmail.com
開箱介紹:Nintendo Switch 遊戲機 ニンテンドースイッチ~ by 大人的玩具
賣場
http://class.ruten.com.tw/user/index00.php?s=18xtoys
FB
https://www.facebook.com/18Xtoys
任天堂Switch(日語:ニンテンドースイッチ,英語:Nintendo Switch)是任天堂出品的電子遊戲機,於2017年3月3日在日本、北美、歐洲和香港發售,同年12月1日在韓國與台灣發售。擁有可拆卸控制器和可分離式主機,遊戲載體使用了專用卡匣。主機處理器使用了NVIDIA客制的Tegra X1系統晶片,這是任天堂首次採用NVIDIA的系統晶片。[2]開發期中的主機於2015年3月17日以「NX」代號首次公布,在2016年10月20日首次於網路影片上公開正式名稱任天堂Switch和其造型。[4]
目錄 [隱藏]
1 硬體
1.1 主機和底座
1.2 手柄
1.3 硬體規格
2 軟體
2.1 系統
2.1.1 任天堂Switch線上服務
2.1.2 任天堂eShop
2.2 遊戲
3 沿革
4 評價
4.1 發售前
4.2 發售後
4.3 商業評論
4.4 銷售成績
5 事件
5.1 正式發表會前
5.1.1 假任天堂Switch惡搞事件
5.2 正式發售前
5.2.1 「任哥吉拉」事件
5.2.2 主機提前洩漏事件
5.2.3 Joy-Con失去與主機本體連接
5.3 正式發售後
5.3.1 卡匣「口感」
5.3.2 左Joy-Con感應不良問題
5.3.3 任天堂對產能致歉
6 法律糾紛
7 參考資料
8 外部連結
硬體
主機和底座
任天堂Switch主機、底座和Joy-Con手柄控制器
任天堂Switch混合了家用主機和便攜式遊戲機的概念,主體為一個類似平板電腦的裝置,採用了JDI生產的6.2英吋的多觸點顯示屏,解析度為1280x720像素;像素密度為236.87ppi。[5][6]內置32GB儲存空間,並支援Micro SD(SDHC、SDXC)儲存卡作為擴充。採用了USB Type-C型介面作為充電介面,可直接插上充電器充電,也可以放入底座內充電;此外該介面也負責主機與底座之間的畫面、聲音的資料傳輸。主機內置了一個主動散熱風扇和導熱管,目的是使處理器不會因為過熱降低效能,其出風口在主機上方。[7]
任天堂Switch的底座(Switch Dock)可以透過HDMI輸出1920x1080像素的畫面;底座還可以為Switch主機充電;底座上還有3個USB介面(2個USB2.0、1個USB3.0),但目前官方沒有給出用途範例;根據一些媒體的測試,用戶可以透過底座的USB介面連線鍵盤等硬體外設。[8]
手柄
任天堂Switch主機(上)與左右分開的Joy-Con控制器(下)
任天堂Switch的遊戲手柄「Joy-Con」是兩個採用了可分離式設計的手柄,可插在主機主體兩側以類似Game Boy Advance的形態進行遊戲,也可從主體上拆下後獨立作為兩個控制器進行雙人遊戲,還可以裝到外設「Joy-Con Grip」上合成一個傳統樣式的手柄控制器。[9][10][11][12]隨主機附贈的「Joy-Con Grip」沒有為Joy-Con手柄充電的功能,而單獨銷售的「Joy-Con Grip」則包含有為手柄充電的功能。[13]左右兩個Joy-Con手柄都內建了體感控制功能,並且還配備了被稱為「HD振動」的振動反饋裝置,可以給予玩家更細膩的反饋。此外,左側的Joy-Con手柄上包括了一個螢幕擷取按鍵,在發售時只能用於螢幕截圖,更新系統4.0.0後新增視訊錄製功能;右側的Joy-Con手柄中內建了讀取amiibo玩偶的NFC晶片和被稱為「IR Camera」的紅外線傳感器。[14][15]值得一提的是Joy-Con手柄是任天堂自FC遊戲機以來首次取消傳統的十字鍵,改為任天堂Game & Watch最初的分離式方向鍵。[16]
任天堂Switch Pro Controller
除主機附帶的Joy-Con外,玩家還可另購任天堂Switch Pro手柄。Pro手柄還是繼續使用傳統的十字鍵,不過相較於Wii U的手柄,它在鍵位上也有一定變化,最明顯的是右搖杆和ABXY按鍵位置對調,向Xbox系列手柄的按鍵布局靠攏。[17][18]該手柄為任天堂Switch專用,無法在其他任天堂家用遊戲機上使用。此外,Pro手柄右搖杆的主機板處還刻有隱藏的文字以感謝玩家。[19]
硬體規格
任天堂Switch的處理器使用了NVIDIA客制的Tegra X1系統晶片及其內建的GeForce顯卡,這是任天堂首次採用NVIDIA的處理器和顯卡。此前任天堂的家用主機從任天堂GameCube到Wii U都採用了IBM的處理器以及ATI和AMD顯卡。[2]根據遊戲媒體的評測,任天堂Switch使用的Tegra X1處理器為20奈米製造工藝,有4核心ARM Cortex-A57架構中央處理器以及4顆ARM Cortex-A53架構處理核心;[20]圖形處理器採用了基於Maxwell微架構的256核心CUDA,圖形處理器會根據主機處於便攜狀態或插入底座的不同情況進行差異化運算,在便攜狀態下運算頻率為307.2MHz,而插入底座後會提升至768MHz到921MHz。[21][22]主機記憶體為4GB LPDDR4。[23]
任天堂Switch主機的內建儲存空間為32GB,可使用microSD進行擴充,最高支援microSDXC標準,最大支援2TB容量;[24]主機在初始系統1.0.0時只能支援到microSDHC標準,發售同日提供的系統2.0.0更新使其可支援microSDXC標準。[25]
任天堂Switch的遊戲載體採用了任天堂掌上遊戲機系列上一直使用的卡匣而非自任天堂GameCube以來家用主機一直使用的光碟;值得一提的是,為了防止嬰幼兒誤吞卡匣,任天堂在生產卡匣時加入了無毒的苦味劑苯甲地那銨。[26]任天堂Switch繼續支援自家的有近場通訊的玩偶Amiibo。[27]任天堂Switch主機本體內建了4310mAh的鋰電池,但電池不可更換;而根據遊戲的不同,主機續航時間從2.5小時至6小時不等,例如玩《薩爾達傳說 曠野之息》電量最多能持續3小時。[28]
軟體
系統
主條目:任天堂Switch系統軟體
作業系統基於FreeBSD。[29]在任天堂Switch的系統框架中,任天堂隱藏了一個紅白機遊戲《高爾夫》,遊戲可以透過Joy-con操控。根據媒體和玩家分析,該彩蛋是為了向已故的前任社長岩田聰致敬,他是《高爾夫》唯一一名程式設計師。[30]此外任天堂Switch不會再支援Wii U和任天堂3DS上的遊戲社群交流網路服務「Miiverse」;而任天堂3DS系列機型上獨特的「擦肩通訊」功能也不會出現在任天堂Switch上。[31][32]
任天堂Switch線上服務
主條目:任天堂Switch線上服務
任天堂Switch採用叫做「Nintendo Switch Online Services」的新網路服務。2017年3月3日發售時為免費服務,計劃於2018年開始進行收費。屆時只有付費用戶可以透過任天堂Switch線上服務進行網路連線遊戲和語音聊天,獲得每月免費Virtual Console遊戲和限定優惠折扣,此外亦有免費用戶也可使用的基礎功能。這種線上服務有點類似於微軟推出的Xbox Live。[33][34]
任天堂eShop
主條目:任天堂eShop
在任天堂eShop所下載的任天堂Switch遊戲將不會綁定主機,而是綁定帳號,放棄了長久以來任天堂將遊戲綁定主機的政策。[35]玩家可任意修改自己的任天堂帳號所在國家或於同一台主機上登陸多個不同國家的任天堂帳號,來方便地購入只在其他國家發行的遊戲,或是選擇在價格最低廉的國家購入遊戲。這一政策在方便玩家的同時,亦被認為會一定程度上影響當地發行商的利益。截至2017年10月,南非與墨西哥等國eShop因有多個遊戲價格較其他國家eShop低廉而受到玩家關注。
遊戲
主條目:任天堂Switch遊戲列表和暢銷任天堂Switch遊戲列表
任天堂Switch並不是Wii U和任天堂3DS的後續機種,所以不會相容任天堂之前推出的Wii U或任天堂3DS上的遊戲,這結束了任天堂自Wii以來的家用主機可以相容上世代主機遊戲的歷史,也是任天堂首次在可攜式遊戲機上停止相容上一世代型號的遊戲。[36]同時任天堂Switch也是任天堂自FC遊戲機以來首個取消遊戲軟體鎖區的家用主機,也是繼任天堂DS後任天堂再次在可攜式遊戲機上沒有鎖區。[37]
第一款確認在製作的任天堂Switch遊戲是史克威爾艾尼克斯的《勇者鬥惡龍XI 追尋逝去的時光》,遊戲在2015年7月28日正式公布,並稱將計劃登陸當時還被稱作NX的任天堂Switch。[38]而任天堂本社第一款確認登陸新主機的遊戲是《薩爾達傳說 曠野之息》,遊戲原先是Wii U平台獨占。[39]在任天堂Switch正式公布後,育碧宣布旗下的《舞力全開2017》將會登陸任天堂Switch。[40]任天堂Switch的首部宣傳片中出現了《上古卷軸V:無界天際》的畫面,貝塞斯達表示很樂於與任天堂展開合作,但當時公司還沒有確認哪款作品會登陸任天堂Switch,直到2017年1月13日的發表會才正式確認該遊戲會在2017年秋季發售,這也是貝塞斯達首次在任天堂硬體平台上製作遊戲。[41][42]而SEGA也確定將在2017年發售開發代號為「Project Sonic 2017」的《音速小子》系列新作也將會登陸任天堂Switch。[43]2017年5月,卡普空宣布《魔物獵人XX》正式登陸任天堂Switch平台。該作可幾乎完整繼承3DS版的存檔。除了任天堂Switch版玩家可面連/網連之外,不同平台玩家也可以透過網連一同合作狩獵。[44][45]
virtual machine下載 在 [討論]Synology VMM - Virtual Machine Manager 上線. - Mobile01 的推薦與評價
Synology NAS 總算開放自行安裝VM. 如Windows, Linux OS...官網連結於套件中心可直接下載安裝.VMM 套件手動下載有部份Synology NAS 機型並未在官方VMM ... ... <看更多>
virtual machine下載 在 VirtualBox 開啟虛擬機教學vdi + 下載Windows XP SP3 繁體中文 的推薦與評價
... <看更多>