BD、人脸识别、KATA、Gray码--程序员杂志文摘
2013年? 2月版:大數據:www.programmer.com.cn/14655/
2013年12月版:http://www.csdn.net/article/2013-11-26/2817621
?
(1):對2013年大數據技術的五個體會:沒有連接
????????????? 這個是01月的大數據預測:http://tech.it168.com/a2013/0109/1444/000001444933.shtml
預測1:企業大數據主動從Sandbox遷出,并定義一套明確的業務和技術需求
在2012年,企業在大數據上面的主動升級,超過了大多數人的預測。根據對世界上300個大企業的研究顯示,數據量預計將在2013年增加約60%。13%的受訪者表示他們對大數據的準備已經到位。另外有38%的公司有了實施計劃。
企業正在形成專門的大數據團隊,對很多人來說這在預算上已經成為一系列的項目,因為企業需要繼續尋找更好的方法來管理、存儲和分析他們持續增長的、必須保持在線的、可用于分析的數據據資產。我們將會看到更多明確定義的需求開始出現——無論是在業務方面還是在IT方面,如低成本的可擴展性、快速響應的查詢和分析,以及充分利用現有的基于標準的工具(包括SQL和BI)的能力等。這是除了內置的安全性和數據可用性功能外,企業期待出現的功能。
預測2:公司在管理大數據時將尋求除了Hadoop以外新的技術組合
過去一年,Hadoop的勢頭越來越猛。Hadoop通過Web 2.0組織的推廣,現在受到了銀行、金融機構、電信運行商、大型零售商和其他企業的重視。然而,大數據的舉措不僅集中在Hadoop平臺。
業務和IT的挑戰在于在不同的部門甚至于不同的公司之間組合使用各種不同的技術協調工作。企業部署私有云來管理數據財產與傳統的數據庫和數據倉庫環境這兩者的結合,以及在各種硬件上運行的Hadoop基礎環境。所有企業大數據項目的一個共同的主題是渴望可以快速啟動和運行而不會造成干擾到現有的IT環境。
預測3:預算限制是解決大數據挑戰的最大障礙之一
大數據的支出正在上升,在未來一年,成本問題仍將是啟動大數據項目時最大的一個障礙之一。根據最近的一項分析報告顯示,大數據支出在2013年預計達到340億美元。這些支出一方面是因為某些特殊行業組織由于行業的特殊性,必須保持數據在線和可用性;另一方面是由于企業想要利用來自多個源的數據的更多的信息,以進行更好的分析。這需要進行一個適當的平衡——在滿足業務需求的同時,尋找最高效的技術基礎設施——是一個挑戰。
大數據的增長速度不會減慢。現有需求和未來需求的建設能力是至關重要的。太多太快不是要走的路,大數據并不一定意味著大筆的預算。
預測4:大數據工具必須同時滿足業務和技術用戶
在2013年,我們將看到大數據工具和應用程序的需求增長,它們將變得更容易使用,并且將同時滿足業務和技術用戶。如果你深入了解下Hadoop的基礎技術能力,就會看到其在許多方面仍不成熟,需要獨特的專業技能。我們已經看到了許多解決這方面的需求的新產品,包括Cloudera Impala和微軟Polybase。事實上,今天已經存在的一些功能,使其更容易在正確的時間用最好的工具集訪問正確的數據。
預測5:重量級廠商,如甲骨文和IBM,將會大數據市場進行收購
在過去一年,隨著大數據市場的成熟,大型組織已經接受了大數據。我們預計,一些缺乏獨特的技術能力或專業知識的廠商將會在2013年被收購。兩個明顯的重量級廠商是甲骨文和IBM——它們已經在數據管理領域構建了多樣化的產品。但更應該看到,產品上市時間是企業獲得更強大的立足點的關鍵。
(2):人臉識別這點事:Hello,人臉識別!
???? 2013年15個最新科技RSS訂閱源:
1、雷鋒網:雷鋒網是專注于移動互聯網創新和創業的科技博客,客觀敏銳地記錄移動互聯網的每一天。雷鋒網由一群移動互聯網的信徒建立,他們中有投資人,有觀察者,有產品經理,有資深玩家,還有創業者。
http://www.leiphone.com/feed
2、互聯網那些事:互聯網那點事精心打造國內互聯網產品信息門戶站點。為產品策劃和產品運營人士提供專業的產品資訊文檔,以及產品設計、策劃、運營、交互設計、用戶體驗、電子商務信息、互聯網創業信息、移動互聯網等專業信息服務。
http://feed.feedsky.com/alibuybuy
3、月光博客:月光博客,是一個專注于電腦技術、網站架設互聯網、搜索引擎行業、Google Earth、Web 2.0等的原創IT科技博客。
http://feed.williamlong.info/
4、愛范兒:愛范兒是發現創新價值的科技媒體。 全景關注移動互聯網,集中報道創業團隊、最潮的智能手持及最酷的互聯網應用,致力于“獨立,前瞻,深入”的分析評論.
http://www.ifanr.com/feed
5、cnBeta:cnBeta.com提供最新最快的IT業界資訊,報導立場公正中立,.創造最適合目標人群閱讀的新聞、評論、觀點和專訪。
http://www.cnbeta.com/backend.php
全文版RSS:http://pipes.yahoo.com/pipes/pipe.run?_id=5OVll5Fs3hGCc1KftJCjyQ&_render=rss
6、ITeye:ITeye資訊頻道最新資訊,報道移動開發,WEB前端,企業構架,Java新聞,Ruby新聞,Python、Rails、PHP等編程開發技術資訊
http://www.iteye.com/rss/news
7、IT癮資訊推薦:IT癮推薦資訊,推薦關于互聯網科技,手持設備,編程軟件開發,信息技術,Google,Android等資訊
http://itindex.net/feed.jsp
8、36氪:關注互聯網新媒體以及創業的科技博客,是中國領先的科技新媒體,報道最新的互聯網科技新聞以及最有潛力的互聯網創業企業。36氪的目標是,通過對互聯網行業及最新創業企業的關注,為中文互聯網讀者提供一個最佳的了解互聯網行業當下與未來的科技媒體。
http://www.36kr.com/feed/
9、Engadget 中國版:Engadget的中文站點,報道計算機硬件,數碼/消費電子產品,科技新聞。
http://cn.engadget.com/rss.xml
10、PingWest:PingWest是一家提供關于硅谷與中國最前沿科技創業資訊、趨勢與洞見的在線媒體,致力于成為溝通中國與美國這兩個全球最大的互聯網/移動市場的互聯網社區。
http://feed.feedsky.com/pingwest
11、InfoQ:InfoQ是一個實踐驅動的社區資訊站點,致力于促進軟件開發領域知識與創新的傳播。
http://www.infoq.com/cn/rss/rss.action?token=yV5lHoM3uVZTqXcuTdyeDFK4uzcE6XNQ
InfoQ全文版:http://pipes.yahoo.com/pipes/pipe.run?_id=10560380f804c7341f042a2b8a03e117&_render=rss
12、TechWeb:科技媒體,新媒體、新技術、新商業互動交流平臺。
http://www.techweb.com.cn/rss/hotnews.xml
13、伯樂在線:伯樂在線-博客專注于分享職業相關的博客文章、業界資訊和職業相關的優秀工具和資源。
http://blog.jobbole.com/feed/
14、極客公園:發現產品價值,帶來互聯網熱門趨勢、熱點產品的深度分析,發掘產品和趨勢的價值
http://feeds.geekpark.net/
15、奇客Solidot:奇客的資訊,重要的東西
http://www.solidot.org/index.rss
(3):? 通過KATA提升編程技能:http://www.csdn.net/article/2013-12-09/2817747-kata
??????? Kata(路數練習)的思想就是通過反復練習來實踐編碼,在不斷使用各種技能的過程中形成肌肉記憶。Kata從很多方面改善工作流程,比如編寫測試、處理錯誤甚至編輯器的使用,更熟悉語言技巧。
有人做過一個實驗,把幾只貓養在暗室中,每天只有一小段時間開燈,有一個旋轉裝置,一組貓開燈時可以上去玩,而另一組卻只通過一個洞看到完全相同的景象。實驗結束時,后面一組貓都得了功能性失明。
這個結果使我大吃一驚。如果只有書本知識,那我也會是功能上的瞎子。只有大量編碼才能從自發水平上真正獲得知識。
第一次“路數練習”
Kata(路數練習)的思想就是通過反復練習來實踐編碼,在不斷使用各種技能的過程中形成肌肉記憶。練過一些簡單的程序之后,我想做點內容更充實的東西。于是想到了通過Kata實現“井子棋”。我的目標是在1小時內實現它。為此,我還用Screenflow來記錄自己的進步。
我用自己熟悉的Ruby開發了第1版,測試框架用了不太熟悉的RSpec。
最開始我的時間大多花在測試環境的搭建上,每次走不下去就上網搜索。而到了第2版,進步就很明顯了。第6遍,終于在1小時之內完成了游戲。
Kata從很多方面改善了我的工作流程,比如編寫測試、處理錯誤甚至編輯器的使用。另外,熟能生巧,一些之前未想過的語言技巧也是在熟練中獲得了。
用Kata學習新語言
如果換一門語言呢?我想試試Haskell。
第一步是讀教程,我花了幾天時間通讀了《Learn You a Haskell》。這個時候,我應該就像那些只看不玩的貓,得跟語言交互才行。
我理解算法,也知道哪些過程要實現,于是唯一的障礙是語言。此時,Kata提供了一種可控的環境,使我能夠專注;而視頻記錄則提供了一種方式,使我能反思遇到的問題。
測試環境搭好之后,語法成了主要問題。每次寫點東西就出錯,總要追到最簡單的形式才正確。一個小時只完成一個構造函數。我現在堅持每次Kata一小時,不論完成與否。理論上,每次我至少可以走到跟上次一樣的地方。
初學新語言時,會擔心一不留神學到的知識就溜走。第2遍Kata時,我的這種感覺就沒有了。到第3遍時,效率大大提升,不再猶豫、搜索,犯的錯誤也跟之前不同了。到第10遍時,終于又在1小時內實現“井子棋”!
作者Chong Kim,本文作者是一位熱愛編程、數學和棋類游戲的軟件工匠。擁有15個GitHub軟件倉庫,主要基于Ruby、Clojure和JavaScript。
(4):Gray碼及其應用:http://www.csdn.net/article/2013-12-18/2817634-Gray?????? VS 漢明距離!
控制臺上有四個開關和一個按鈕,每個開關都可以扳到ON和OFF中的一個,只有當四個開關的ON/OFF狀態處于某個唯一的正確組合時,按動按鈕之后才能打開密室的大門。為了以最快的速度逃脫密室,你打算怎么辦?
控制臺上有四個開關和一個按鈕,每個開關都可以扳到ON和OFF中的一個,按鈕上用粗體寫著OPEN。只有當四個開關的ON/OFF狀態處于某個唯一的正確組合時,按動按鈕之后才能打開密室的大門(但你不知道這個正確的組合是什么)。你需要做的事情很明確:不斷扳動開關,嘗試各種各樣的ON/OFF組合,然后按動按鈕,直到成功把門打開為止。為了以最快的速度逃脫密室,你打算怎么辦?一個游戲引發的思考
幾年前,我玩過一個第三人稱冒險游戲,游戲的名字已經不記得了,唯一印象深刻的就是上面這個場景。為了避免自己忘記哪些組合已經試過,我們只需要按照某種規律逐一嘗試所有的組合就行了。比方說,用數字0來表示OFF狀態,用數字1來表示ON狀態,然后按照二進制數的規律依次嘗試2?=16種不同的組合:0000, 0001, 0010, 0011, 0100, …, 1110, 1111。其中,從0000到0001需要扳動一次開關,從0001到0010需要扳動兩次開關……最恐怖的是,從0111到1000需要扳動全部四個開關。在最壞情況下,最后試到的那個組合才是正確的組合,那么整個過程下來,我們一共要扳動26次開關!更要命的是,在游戲中,扳動一次開關非常費勁,你需要持續按住某個按鍵很長時間才行。
于是,一個有意思的問題出現了:換一種嘗試的順序,能讓我們少扳動幾次開關嗎?最少需要扳動幾次開關呢?
容易看出,由于我們一共要試16種不同的組合,因此整個過程至少要扳動15次開關。會不會扳動15次開關就足夠了呢?這意味著,每兩個相鄰的組合之間都只相差一個開關的位置。如此理想的解是否真的存在,這我不太清楚;但我當時立即想到,如果要試遍三個開關的所有23=8種組合,只扳動7次開關確實是可以辦到的。這相當于沿著立方體的棱既無重復又無遺漏地經過每一個頂點。其中一種方案如圖1所示,它所對應的試驗順序如下。
000 → 001 → 011 → 010 → 110 → 111 → 101 → 100
圖1 把8個三位01串看作立方體的8個頂點,兩個01串之間有一條棱當且僅當它們只相差一位
當時我的想法很簡單:既然知道怎樣快速遍歷三個開關的所有組合,那就干脆讓第一個開關保持OFF狀態,把所有形如0???的組合都先試一遍吧:
0000 → 0001 → 0011 → 0010 → 0110 → 0111 → 0101 → 0100
接下來呢?我的想法是,把第一位扳成1,然后像剛才那樣再遍歷一次后三位的組合吧。把0100變成1000需要扳動2次開關,再把后三位的組合全試一遍又需要7次開關,最后一共扳動了16次開關,嗯,已經很不錯了。但是,剛扳完第一個開關,把0100變成了1100后,本想繼續把后三位還原成000的,卻突然一下意識到:1100本來就是一個新的組合呀。干脆先把這個組合試了再說。
0100 → 1100
緊接著,就像有人用一根大棒把我敲醒了一樣,我猛然意識到:然后就從1100出發,逆著剛才的順序遍歷后三位的所有組合,最后回到1000不就行了嗎?
1100 → 1101 → 1111 → 1110 → 1010 → 1011 → 1001 → 1000
這樣,我們就實現了扳動15次開關既無重復又無遺漏地遍歷四個開關的所有16種組合,每扳動一次開關得到的正好都是一種新的組合!
利用類似的方式,我們可以繼續擴展,把32個五位01串也排成一列,使得每個01串到下個01串都只需要變動一位。當然,剛才那8個三位01串的排列順序,本身也可以看作是由更基本的情況擴展而來的。事實上,我們可以像表1那樣,從一位01串這種最最基本的情況出發,不斷通過“鏡像”和“添首位”的方法,最終得到把2?個n位01串排成一列的方案,使得相鄰兩個01串總是只差一位。
表1 生成鏡像二進制編碼的方法
我們姑且給它起個名字,叫做“鏡像二進制編碼”吧。
PCM信號轉換器的故事
人們剛開始實現數字通信的時候,曾經為如何把模擬信號轉化為數字信號而傷透腦筋。1937年,英國科學家Alec Reeves發明了一種將模擬信號進行數字化的方法,即我們現在所說的脈沖編碼調制(pulse-code modulation,縮寫成PCM或許大家會更熟悉一些)。假設我們有一段聲音,它的波形圖如圖2所示。那么,我們就間隔相等地在時間軸上取一些點,看看此時波形圖的高度在什么位置,并用二進制數來表示。如果使用五位二進制數的話,那么每個采樣結果都有32種不同的取值,可以與十進制中的0到31相對應。對于普通的人聲來說,為了充分刻畫出波的形狀,理論上每秒至少需要采樣8000次才行;采樣頻率越高,還原真實聲音的效果也就越好。
圖2 脈沖編碼調制示意圖
這種編碼方式確實不錯,關鍵是,如何設計一種信號轉換器,讓它能自動地按照這種方式把模擬信號轉換成數字信號?總不能雇幾個員工去人肉完成每秒上千次的采樣和轉換吧。
圖3 用陰極射線管制作一個信號轉換器
人們巧妙地用陰極射線管和X、Y兩組偏轉板解決了這個問題。如圖3所示,電子槍射出的電子束首先從兩塊Y偏轉板之間穿過,并且受到Y偏轉板所產生的電場的影響而上下偏轉,其偏轉幅度由輸入電信號決定;偏轉后的電子束繼續從兩塊X偏轉板之間穿過,并受其產生的電場影響而左右偏轉。X偏轉板上的電位差由某個鋸齒波發生器決定,其效果就是讓電子束不斷地從左至右掃描。在電子束到達電子收集屏之前,還必須經過一個上面有穿孔的“編碼盤”。如果我們想要把每一個采樣值都轉化成五位01串的話,那么編碼盤上的孔應該如圖4所示。把所有的東西結合起來,電子束便能根據輸入信號在不同的高度處從左往右掃描,每掃描一次都會產生一個五位01串,其中1意味著電子束穿過了編碼盤上的孔,0意味著電子束被編碼盤擋住了。如果電子束在r?所示的高度處掃描一次,得到的五位01串就是01101,或者說十進制的13。
這種信號轉換器的原理的確巧妙,但理論與實際之間還是有一定距離的。在實際應用時,我們會遇到一個有些意想不到的問題。讓我們假設,某個采樣值正好是23.5,于是電子束會在圖4的r?高度處從左往右掃描一次。注意,這條掃描線經過了四個孔的邊界,于是完全有可能出現這樣的誤差:電子束穿過了第二位對應的孔,同時也穿過了第三位、第四位和第五位所對應的孔。于是,這個值最后就被編碼為了11111。或者,電子束完全錯過了后面四個位置上的孔,于是這個值就被編碼為了10000。在最壞情況下,我們甚至會把15.5編碼為11111或者00000,這是不能容忍的錯誤。怎么辦呢?
1947年,貝爾實驗室的Frank Gray提交了一項專利,漂亮地解決了這個問題。Frank Gray的方法非常簡單:把傳統二進制編碼改為鏡像二進制編碼!新的編碼盤如圖5所示。我們用五位鏡像二進制編碼中的第一項,即00000,來表示最小的高度值,或者說十進制的0;用鏡像二進制編碼中的下一項,即00001,來表示次小的高度值,或者說十進制的1;類似地,用00011表示2,用00010表示3,用00110表示4,以此類推,一直到用10000表示31。這樣,任意兩個相鄰高度所對應的數字編碼都只有一位的差異,換句話說恰好從它們中間穿過去的掃描線只會遇到一處邊界。如果掃描線的高度恰好是15.5,則轉換后的結果要么就是01000(它代表15),要么就是11000(它代表16),剛才的誤差問題就解決了。
Frank Gray在專利文件中說,這種新的編碼方式還沒有一個名字,并且首次提出了“鏡像二進制編碼”(reflected binary code)這個名字。后來,人們逐漸開始用“Gray碼”來指代這種編碼方式,“Gray碼”這個名字也就慢慢固定了下來。
Gray碼的其他應用
在工業上,Gray碼還有很多應用。假如有一個溫度(或水位、氣壓、比分等)檢測系統,當它探測到數值從7變到8時,系統便會把0111改成1000。萬一在改動的過程當中正好出現了讀取操作,此時讀到的數據就是錯誤的。采用Gray碼的話,數值的加1和減1操作將會成為真正的原子操作,這個問題也就能避免了。
有趣的是,n位Gray碼的第一個01串和最后一個01串之間也只差一位。因此,如果把n位Gray碼看作是循環的,任意兩個相鄰的01串仍然滿足要求。有些方向傳感器會使用Gray碼來表示方向,便是用到了Gray碼的這個性質。例如,不妨用000, 001, 011, 010, 110, 111, 101, 100依次表示八個方向,那么不管是從哪個方向轉到哪個相鄰的方向,所對應的01串都只變了一位,這樣也就不會產生錯誤的“中間數值”了。
作者顧森,網名Matrix67,數學愛好者。2005年開辦數學博客www.matrix67.com,至今已積累上千篇文章,有上萬人訂閱。新書《思考的樂趣》已在圖靈公司出版。
總結
以上是生活随笔為你收集整理的BD、人脸识别、KATA、Gray码--程序员杂志文摘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过SQL自动添加流水号
- 下一篇: Web、网页、浏览器,web标准