技術微週刊創刊了!每週一期,一期包括和技術相關的重要業界資訊 和 技術文章與動態。週刊的內容甄選自一週的精彩內容,有技術乾貨、技術動態,也有技術人生,末尾還加了小彩蛋。如果你覺得有幫助,請推薦我們給更多技術同仁。
— 業界資訊 —
Google 翻譯在 Android 和 iOS 上更新至 5.8 版本。新版 Google 翻譯 App 增加了英語與中文間的 Word Lens(即時相機翻譯)功能,同時優化了中國使用者體驗。
Google 宣佈正在推出一個專注於開源的全新網站 opensource.google.com ,並表示,“自開源以來,免費和開源軟體已經成為 Google 技術和組織基礎的一部分,這個全新的開源網站,將深度展示我們對開源的熱愛,它預計將包含:我們的應用,我們支援的組織,以及我們釋出的開源專案的完整列表。
據 Venturebeat 報導,微軟4月1日宣佈,將關閉開源軟體託管平臺CodePlex。微軟2006年推出這項服務,並決定在今年12月15日將其關閉。
據 MIT 官網最新訊息,MIT 教授、全球資訊網之父 Tim Berners-Lee 榮獲 ACM 頒發的 2016 年圖靈獎,獎金 100 萬美元。6月24日,ACM將在舊金山舉行頒獎禮。
經過長達一點年半的研發,Adobe 聯合 Google 於 2017 年 4 月 3 日釋出了思源宋體( Source Han Serif,Google 稱 Noto Serif CJK)。和思源黑體一樣,思源宋體以 “SIL 開放字型許可證” 開源發行,且同樣含簡繁日韓四種漢字寫法和七種粗細字重給出。
Ubuntu 將停止開發 Unity,預設桌面迴歸 GNOME,宣佈放棄智慧手機業務
Ubuntu 以及 Canonical 的創始人 Mark Shuttleworth,4 月 7 日在 Ubuntu 官方網站發表了一篇重磅文章,文中提到了 Ubuntu 未來的一些重要變化,公司會將重心轉移至雲端計算業務和物聯網,並將放棄智慧手機方面的願景,同時對於 Linux 使用者來說可能是一個非常重要的好訊息,那就是 Ubuntu 的預設桌面將回歸 GNOME 桌面環境。
— 技術文章與動態 —
後端開發
沒學好 Linux 命令?請看這個系列
非常棒的學習 Linux 命令系列文章。
查詢和排序演算法是演算法的入門知識,其經典思想可以用於很多演算法當中。因為其實現程式碼較短,應用較常見。所以在面試中經常會問到排序演算法及其相關的問題。但萬變不離其宗,只要熟悉了思想,靈活運用也不是難事。
我們遇到的問題中,有很大一部分可以用動態規劃(簡稱DP)來解。 解決這類問題可以很大地提升你的能力與技巧,我會試著幫助你理解如何使用DP來解題。 這篇文章是基於例項展開來講的,因為乾巴巴的理論實在不好理解。
從執行緒的來由到執行介紹,到Python、執行緒和全域性直譯器鎖,這篇文章比較全面地介紹了 Python 執行緒。
面試的時候經常會被問到 malloc 的實現。從作業系統層面來說,malloc 確實是考察面試者對作業系統底層的儲存管理理解的一個很好的方式,涉及到虛擬記憶體、分頁/分段等。本文逐個細說。
這篇文章介紹了一個好用的抓包工具 Wireshark, 用來獲取網路資料封包,包括 HTTP、TCP、UDP 等網路協議包。記得大學的時候就學習過TCP的三次握手協議,那時候只是知道,雖然在書上看過很多TCP和UDP的資料,但是從來沒有真正見過這些資料包,老是感覺在雲上飄一樣,學得不踏實。有了wireshark就能截獲這些網路資料包,可以清晰的看到資料包中的每一個欄位。更能加深我們對網路協議的理解。
也許你寫了無數行的程式碼,也許你能非常溜的使用高階語言,但是你未必瞭解那些高階語言的執行過程。例如大行其道的Java。Java號稱是一門“一次編譯到處執行”的語言,但是我們對這句話的理解深度又有多少呢?從我們寫的java檔案到通過編譯器編譯成java位元組碼檔案(也就是.class檔案),這個過程是java編譯過程;而我們的java虛擬機器執行的就是位元組碼檔案。不論該位元組碼檔案來自何方,由哪種編譯器編譯,甚至是手寫位元組碼檔案,只要符合java虛擬機器的規範,那麼它就能夠執行該位元組碼檔案。那麼本文主要講講java位元組碼檔案相關知識,並通過具體的Demo來深入理解。
想要理解volatile為什麼能確保可見性,就要先理解Java中的記憶體模型是什麼樣的。
為什麼忘記 commit 也會造成 select 查詢的效能問題
遇到一個很有意思的問題,一個開發人員反饋在測試伺服器ORACLE資料庫執行的一條簡單SQL語句非常緩慢,他寫的一個SQL沒有返回任何資料,但是耗費了幾分鐘的時間。讓我檢查分析一下原因,分析解決過後,發現事情的真相有點讓人哭笑不得,但是也是非常有意思的。
C++17 技術層面的工作已經全部完成,並提交 ISO 進行最終投票。對於 C++17 標準的正式釋出來說,剩下的工作只是一些常規程式還要走,但這些都只是行政工作而已。
雖說輸入法不是什麼新事物,各種語言版本都有,不過在C#不常見;這就會給人一種誤會:C#不能做!其實C#能不能做呢,答案是肯定的。三種方式都行:IMM、TSF以及外掛式。
ASP.NET WEB API 是一個框架用來搭建HTTP服務以供客戶端(比如:瀏覽器,手機,IPhone等)呼叫。它與ASP.NET MVC很相似因為它包含mvc的功能,比如 routing, controllers, action results, filter, model binders, IOC container or dependency injection。但是它並不是MVC框架的一部分。它是ASP.NET 平臺的核心部分。能被MVC或者其他型別的web應用使用。同時它也可以用作獨立的web服務應用程式。
Web 前端
經歷了 6 個 RC 版本之後,Angular 專案組終於釋出了正式版 Angular 4.0.0。本文說明了值得關注的部分。
不管是新手還是老手,不仔細深摳一下還真鬧不明白this倒地咋回事捏。今天,我們就一起看一下this倒地咋回事,別再為了this發愁了。
認為 Google 不能處理 JavaScript ?再想想吧。Audette Audette 分享了一系列測試結果,他和他同事測試了什麼型別的 JavaScript 功能會被 Google 抓取和收錄。
為什麼一堆符號運算結果竟然能是兩個字元。相信你如果能把這個理清楚了,以後遇到型別轉化之類的題目,就可以瞬間秒了。
“萬事開頭難” 當我想要認真寫一篇文章向大家分享我對前端的認識與感悟的時候,突然就深刻的體會到了這句話確實太有道理了。
我在一家小公司做前端,因為公司以及職位的變化,對於在小公司如何做前端有一些心得,拿出來與各位做個分享,希望對處於小公司的前端有一定用處,也激勵自己重新學習並總結。
今天我們將要和大家分享一些 WebGL 實驗,在這個實驗中我們將建立一個非常逼真的雨滴效果,並把它放到不同的場景中去。在這篇文章中,我們將給出製作這種效果所用到的一些一般性技術和技巧的概覽。
移動端
Google 工程副總裁 Dave Burke 介紹下一代 OS 的第一個開發者預覽版:Android O。在未來數月裡,我們將釋出更新的開發者預覽版,並將在五月份的 Google I/O 上深入探討 Android 的所有動態。
Google 正為 Chrome OS 新增 Android Studio 支援
日前,Google 釋出了一個錯誤報告,讓許多人發現 Google 正在進行在 Chrome OS 上支援 Android Studio 的相關開發工作。在 Chrome OS 上安裝此 Android IDE 可以測試和執行在 Linux、macOS 或 Windows 上無法做到的原生測試以及其他更多功能,這也稱得上是官方的 Android 整合開發環境。
Swift 3.1 已經正式釋出了,Swift 3.1 是一個小更新版本,包含對標準庫的改進。由於 IBM 和社群其他成員的努力,該版本還包括許多關於 Swift 的 Linux 實現的更新。還有一些 Swift 包管理器的更新。此外,Swift 3.1 編譯器現在可以自動預編譯 Objective-C 橋接頭,還可以加快混合原始碼專案的除錯配置構建。
目前,大多數App還停留在人工測試階段,人工測試投入的成本最低,能夠保證核心功能的使用,而且測試人員不需要會寫程式碼。但是,在很多測試場景下,人工測試的效率太低,容易出錯。本文介紹的是 iOS 自動化測試。
最常見的DNS劫持是筆者在看視訊的時候,被劫持跳轉到了某個廣告頁。一般來說,對付網頁劫持的方案我們通過NSURLProtocol來完成。
機器學習
TensorFlow 之大遠遠超出你的認識。事實上它是一個針對深度學習的庫,並藉由和谷歌的關係贏得了許多關注。但除去這些噱頭,本文介紹的一些特性值得深入玩味。
機器學習令人興奮,但實際操作卻很困難也很複雜。它涉及到很多手動操作,如集合工作流和管道,設定資料來源,以及在內部部署與雲部署的資源之間切換等。Python 是一款強大的工具語言,被廣泛應用在大資料和機器學習之中。本文推薦了 5 個 Python 庫,幫你疏通機器學習之路。
本文會為你介紹 2016 年機器學習 Top 20 Python 開源專案,同時分析得出一些有趣的見解和發展趨勢。
在門外漢看來,機器學習(Machine Learing,ML)入門是個不可完成的任務。如果你選錯了方向,確實就是不可能的了。然而,在我學習機器學習的基本知識一週後,發現入門比我想象的容易。本文旨在給予那些對機器學習有興趣的人一些入門指南,這個指南來自我為期一週的學習經驗。
本文目標是利用TensorFlow做一個簡單的影象分類器,在比較大的資料集上,儘可能高效地做影象相關處理,從Train,Validation到Inference,是一個比較基本的Example, 從一個基本的任務學習如果在TensorFlow下做高效地影象讀取,基本的影象處理,整個專案很簡單,但其中有一些trick,在實際專案當中有很大的好處。
技術人生
今年三十了,到了傳說中程式設計師最應該迷茫的年齡了,那麼我迷茫嗎,沒的說,按照某司 34 歲就要勸退的要求,我還有 4 年的程式生涯。
本文要討論的健康問題,其實並不僅僅限於程式設計師,其他那些需要長期坐在電腦前的工作,比如:網路編輯、網站管理員、IT 從業人員等,也會面臨同樣的健康問題。除了指出這些健康問題,本文還給出了相應建議。
是否存在 10 倍效率的程式設計師,在這件事上程式設計社群內是嚴重的兩極分化:有人說根本沒有這樣的人,也有人說事實上不僅存在這種人,如果你知道到哪裡去尋找,甚至還存在 100 倍效率的程式設計師。
很多人都向往著有一天自己創業,程式設計師更是如此。如果你想創業,那麼該怎樣創業、需要有哪些準備、自己還有什麼不足等等這些問題你考慮過嗎?本文就跟大家分享周鴻禕在接受媒體採訪時給程式設計師上的創業課。
這是程式設計師討論了很久的一個話題:要不要給程式碼寫文件?值得給程式碼寫文件嗎?
— 輕鬆一刻 —
優化新手寫的程式碼時
↓↓↓
關注 & 置頂技術微週刊,提升技術