成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

以編程方式看待世界:12項值得了解的技術成果

譯文
開發 前端 開發工具
往數據庫里填充字節確實很無聊——我們為什么對身邊的一切進行編程?

每家初創企業都在談論如何改變世界,但其中大部分根本不會討論世界本身或者說存在于其中的物理事物。很多企業只是單純打算交換數據庫中的數據包與位置——雖然這一切也很重要,但字節本身并沒有意義。畢竟這個世界是由原子組成。

[[163022]]

字節與原子之間的障礙正在逐漸消失,歸功于物聯網的迅猛發展,如今程序員已經不再被局限于虛擬世界當中。如今,我們能夠超越向磁盤寫入1與0的傳統作法:我們可以切實通過編寫代碼告訴設備如何掠奪、剪切、扭曲或者變更原子形態。現在,我們的軟件能夠開啟燈光、變更室內外觀、駕駛汽車以及移動墻壁等等。

時至今日,大量新的市場空間與機遇允許開發人員立足于真實世界。快速發展的相關領域包括自動駕駛汽車、智能家居、智能辦公環境等等,而大規模定制化方案要求程序員們熟悉如何對數據結構做出調整,從而在對象之內實現變化。如果“面向對象編程”真能名符其實,那么開發人員的黃金時代可以算是真正來臨了。

這些任務需要由新型語言——或者尚未正式誕生的新型語言——以及能夠與陳舊語言相對接的新型協議來實現。改變世界意味著學習這些語言與協議的工作方式以及部署需求。如果大家希望真正改變世界,那么今天的這份語言與協議清單將成為各位必須掌握的先決性專業知識。而一旦大家開始直接改變世界,那么將永遠無法重新滿足于鼓搗什么數據庫。

Basic

作為經典編程語言之一,Basic以部分簡單硬件控制器為基礎直接推動了早期微型計算機革命。那些制作出ESP8266控制器主板的技術人員使用的正是Basic語言,因為正如他們所言,這是“一款簡單但卻非常強大的語言,允許大家在無需計算機科學學位的前提下實現令人驚嘆的成果。”

其中包含所有經典結構,包括一些古董級成果:goto。不過其中也包含一部分用于提取網絡頁面或者發送電子郵件的新命令。但必須承認,在使用Basic時我們的大部分時間都將被用于調整接口以收集需要被發送至互聯網的數據。

要獲取更多相關信息,大家可以參閱ESP8266社區或者該語言的專門網站。

X10

X10是首款允許程序員擺脫虛擬世界并觸及真實世界的工具。X10從來不是一種復雜或者難于理解的協議,這可能是因為其誕生時間為1975年——比沃茲尼亞茨與喬布斯推出Apple I還早一年。盡管已經相當老邁,但X10仍然具備極高人氣,因為目前還有著大量低成本設備對其提供支持。

該協議只提供一部分主要消息收發功能。大家可以向開關發送幾個字節,并借此實現開關開、閉以及亮度調節。就這么多。除此之外,大家可以利用其它一些選項輪詢遠程開關并嵌入更多數據,但其大部分功能似乎仍是打開與關閉之類的簡單操作。這些數據包可上行至家庭環境下的120伏供電線路,且必須通過由X10制造的FireCracker等獨立設備來生成。

包括Flipit與Bottle Rocket在內的多種軟件項目致力于簡化與FireCracker的協作流程。當然,大家也可以直接選擇最為原始的解決方案——X10,該公司自1978年就一直在推出家庭功能控件。

Insteon

2005年,Insteon公司發布了一項協議以提供體積更大的消息收發與更好的傳輸能力,并希望借此取代X10協議。眾多報道指出,X10信號往往會在大型家居環境或者線路復雜的場景下發生丟失。也有不少人抱怨稱,其信號會受到噪音的影響。因此,Insteon添加了一項機制以確保每個節點或者開關同時作為中繼器運作,從而使得信號能夠傳遞得更遠并順利抵達電路體系中最為幽深的角落。這是一種值得稱道的睿智設計,也確實帶來了理想的信號廣播效果。

除此之外,該協議也更加豐富、復雜且具備冗余特性。相較于僅由兩比特構成的簡單命令,Insteon數據包能夠承載“高達”十個字節的信息以構成兩條完整命令。其主要命令仍然致力于實現開關的開啟與關閉,但其同時也提供其它選項,旨在輪詢傳感器或者創建智能恒溫機制。

Insteon公司的協議被廣泛應用于各類智能hub以及家庭自動化工具當中,包括Amazon的Echo以及羅技的Harmony產品。以Linux Home Automation項目與OpenRemote為代表的多款開源工具也將通過發送數據包的方式集成這款供電線路控制器。

Zigbee、Z-Wave以及更多

X10與Insteon所觸及的還僅僅是表面。另有多種解決方案能夠將信號發送至設備——一部分通過供電線路,也有一部分以無線形式傳輸。Zigbee與Z-Wave都屬于設備間的低功耗無線通信標準,尤其適用于需要在企業或者家庭環境中相互通信的低功耗嵌入式傳感器及處理器。

舉例來說,Zigbee最近剛剛發布公告,宣稱開始在超市中實驗溫度傳感器以實現農產品監測,從而確保部分水果與蔬菜處于最佳保存環境。Z-Wave則在其官方網站中介紹了一款能夠通過無線按鈕幫助年老或者體弱用戶遭遇困境時進行呼救的“家庭尊嚴”設備。目前這類應用方案已有數百種,其每次執行只需發送數比特數據即可完成任務。

Zigbee與Z-Wave并非惟一的執行標準。這份日漸龐大的名單中還包括Panstamp、AMX、KNX、Lutron以及更多。其中一部分屬于利基型方案:以AMX為例,其專注于音響設備以強化會議室效果。Panstamp則面向遍布于世界每個角落的小型無線控制器。它們都擁有自己的格式,但卻可以通過編程方式實現交互。標準間的競爭可能令程序員們感到困惑,不過這畢竟要比不存在標準好得多。

XBMC、Freebox以及更多

如果說有人能夠坐在沙發上邊看著白癡電視節目邊改變世界確實有些夸張,但可以肯定的是,數字化圖像、視頻以及音頻確實打破了傳統娛樂方式的束縛。以XBMC、Freebox以及VLC為代表的各類協議與框架原本被設計將填鴨式視頻提供給躲在沙發中的無聊人士,但其如今也能夠為整棟房屋乃至建筑物做出貢獻。

這些視聽設備從表面上看似乎與改變世界沒有任何關系,因為它們在很大程度上只是在處理數字化內容文件——不過必須強調的是,隨著平板顯示器的普及程度越來越高,它們的作用也在逐步凸顯。舉例來說,時代廣場周邊的建筑物就能夠根據屏幕上的顯示內容不斷變更外觀。更多屏幕意味著數字化內容絕僅僅是大家手機上的顯示素材,這同時也是一種轉變建筑物或者室內效果的有效途徑。

PostScript

很多人并不理解在PDF文件內存儲數據或者將文本頁面內容發送至打印機時所使用的數據結構的復雜性水平。事實上,PostScript文件中的數據并非簡單的數字排列,而是一整套由字母、線條、數字以及圖形構建而成的頁面勾勒體系。該語言能夠沿直線或者貝塞爾曲線移動筆劃,而后對生成的圖形進行填充。各種字體也不單純屬于位圖,而是復雜曲線的集合,從而輕松以亞像素精度進行縮放或者位移。

該語言本身屬于上世紀七十年代的神器,其基于堆棧的語法能夠顯著降低括號的使用頻率。任何曾經使用過惠普計算器的朋友都會在PostScript中找到熟悉的感覺。該語言由圖靈設計完成,而人們則通過編寫PostScript代碼進行復雜的分形計算及其它古怪的任務——哦,當然還有開發病毒。

時至今日,該語言的人氣往往略遜于SVG,這是因為此種XML變體能夠在Web之上得到廣泛支持。不過二者的底層結構非常相似,而且代碼轉換也非常簡單。這兩款語言都能夠通過PSToEdit等多種軟件包被轉換為其它代碼格式,從而驅動激光切割機以及銑床設備。

OBD-II

多年以來,汽車只不過是由油箱、活塞、齒輪組外加后輪曲軸共同構成的簡單機械。然而如今的汽車已經成為大量計算機制構建而成的復雜網絡,只不過恰好還是配備四條輪胎。ODB-II標準是人類與汽車進行互動,并借此了解當前車輛運轉狀況的重要接口。

大部分游走于計算機與汽車之間的代碼都屬于純粹的信息。舉例來說,我們可以向傳動輪端口發送部分字節,從而由其返回當前時速信息。類似的代碼還可以實現RPM、引擎效率乃至數十種其它指標的查詢。像Torque這樣的多數基礎應用都需要通過OBD-II端口對車輛進行追蹤。

這類應用在業余賽車手以及汽車愛好者群體中極具人氣,但它們也完全能夠服務于普通民眾。ArduinoOBD庫就是一種很好的選項,可以幫助大家將自己的計算機與車輛相對接。

G

計算機數字控制,簡稱CNC,最初于上世紀五十年代出現在銑機設備之上,而工程師們隨后很快開發出G語言——專門用于操控切割工具的移動方式。整個流程在初次接觸時可能有點反直覺的意味,因為從代碼控制角度出發,其實現的是從當前材料上切掉某些部分而非添加某些部分。不過一旦我們習慣了立足于最終結果逆向審視設計思路,大家就可以想象出如何移動切割刀并去除不需要的部分。

大部分編碼工作涉及選定坐標系,同時安排切割刀移動到特定位置。這些設備往往能夠“插補”并計算直線或者圓的中位點,從而簡化簡單形狀的創建方式。不過對于復雜的形狀,我們仍然需要采取一些特定規劃。

隨著多年以來各家制造商向其中添加強化元素,G語言的性質也出現了顯著變化。很多目前被廣泛使用的現代化宏以及面向對象層都會經過編譯為原始G代碼并發送至設備當中。

目前,G語言的一類變體將用于驅動多種3D打印機。雖然變體與本體所使用的具體代碼有所區別,但其核心語言卻從未發生改變。

STL

這種用于描述3D對象的標準格式已經成為3D打印領域的通用語言。在線商店通過交付STL文件出售虛擬對象,大家可以對其進行編輯或者直接發送至3D打印機。

這種語言本身可以說相當基礎。文件的大部分內容為用于覆蓋物體表面的刻面三角形角部三維坐標。雖然該格式似乎能夠支持更為復雜的多邊形,但文件本身傾向于使用傳統三角形。另外,盡管與構建3D對象的基本要求有所沖突,但這種文件格式本身并不強制要求三角形完全覆蓋對象或者定義所述表面的每個部分。

STL文件能夠容納點或者二進制版本的ASCII表達內容,不過大多數文件都選擇使用二進制版本——因為其更為緊湊。

Slicer

STL文件并不能容納充足的信息以驅動3D打印機,因此其中包含的三角形需要被轉換成一份指令列表,從而移動3D打印機噴頭并控制擠壓機開關。打印機本身通常使用GCode,也就是Slicer,其在本質上相當于將GCode交付至CNC銑機設備。二者之間最大的不同在于Slicer代碼屬于添加型描述,即以從無到有的方式進行對象構建——相比之下,數控機床為消減型描述,將多余部分去除以雕刻對象輪廓。二者用于驅動打印噴頭位置的指令大多相同,但Slicer新增了用于控制素材擠壓的指令。

目前市面上存在著相當數量的Slicer程序,一部分為開源、一部分屬于專有性質。其中一些擁有復雜的IDE,用于在打印之前對對象進行編輯。舉例來說,KISSlicer就提供一套免費版本,其能夠與單頭打印機對接; 而其Pro版本則支持更為復雜的多頭打印機。

Python

Python語言在生物實驗室、社交科學中始終牢牢占據人氣榜首,甚至在Raspberry Pi社區中被稱為“官方語言”。后面這種說法有點夸張,因為Raspberry Pi單片機通常直接引導Linux,而大多數Linux代碼庫也都能夠運行在該單片之上,不過需要直接面向ARM(v6或者7)架構進行編譯。

不過,Python仍然擁有諸多既有優勢。它作為一種高級語言擁有簡潔的語法與相當寬松的數據傳遞規則。程序員們并不需要深陷抽象的泥潭,例如面對復雜的指針規則。相反,他們只需要編寫一套指令集以處理數字,并利用這些值以指示Raspberry Pi進行哪些操作。

Raspberry Pi社區提供豐富的說明文檔以幫助大家從零開始學習Python。

Processing

機器人與真實世界當中充滿了使用Arduino語言——屬于C與C++子集——的單片機。不過很多程序員希望事件能夠更為簡單,這也是該語言Processing這一名稱的由來。這是一套經過簡化的Java子集,保留了相當一部分較為粗放的類細節規則,同時添加了部分標準方法以幫助獲取結果及切換開關。Java程序員們可能會對Processing在陳舊AWT Applet以及Frame上的表現非常滿意,不過大多數人只是單純希望編寫幾個循環并變更代碼。

Processing代碼通常運行在主機計算機之上,并由其向Arduino發送指令——Arduino則運行Firmata等本地解釋器。開發工作立足于主機設備,不過具體任務則在Arduino之上完成。

Processing亦在移動應用開發場景中發揮著巨大作用,并憑借著利用JavaScript編寫而成的Processing衍生版本而在Web應用開發領域站穩了腳跟。卡恩學院目前正使用其進行計算機編程授課。

原文標題:Program the world: 12 technologies you need to know

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:王雪燕 來源: 51CTO
相關推薦

2016-02-23 14:41:37

移動周刊

2018-02-27 08:51:09

技術Web應用程序

2018-10-09 14:34:58

開源KubernetesGit

2014-08-19 14:12:47

Windows

2019-12-09 16:18:08

程序員數據庫技術

2013-05-27 10:46:05

移動互聯網自動化物聯網

2019-07-17 13:31:34

VLAN集中管理協議VCMP

2021-01-04 09:00:00

JavaScript開發Web

2016-01-12 09:49:35

AndroidiOSWindows Pho

2017-12-19 08:50:56

UIJavaAWS Lambda

2019-12-12 10:46:15

Kubernetes容器系統

2014-10-13 11:30:14

2016-09-28 16:04:16

Linux服務器發行版

2011-10-09 12:36:43

甲骨文OOW

2021-06-07 07:01:43

js關鍵字運行

2018-09-19 22:35:25

2015-10-29 09:11:00

特性Ubuntu 15.1Linux

2017-01-16 15:12:36

Linuxwatch命令命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天堂成人国产精品一区 | 日韩精品一区二区三区免费视频 | 亚洲小视频 | 成人免费网站 | 一级黄色夫妻生活 | 欧美乱码精品一区二区三区 | 午夜网站视频 | 日韩美女一区二区三区在线观看 | 九九99精品 | 精品一区二区三区在线观看 | 91久久国产综合久久 | 成人一区在线观看 | 国内精品久久久久久影视8 最新黄色在线观看 | 欧美精品综合在线 | 成人免费视频播放 | 日本不卡高字幕在线2019 | 国产精品视频网站 | 9191av | av日韩精品 | 欧美激情视频一区二区三区在线播放 | 亚洲高清视频一区二区 | 亚洲成人精品在线 | 国产激情第一页 | 国产日韩亚洲欧美 | а_天堂中文最新版地址 | 99re在线 | 国产精品久久久久久久久久东京 | 91原创视频在线观看 | 国产一级久久久久 | 欧美成人第一页 | 亚洲在线一区二区三区 | 成人av在线播放 | 日韩在线免费播放 | 天天操夜夜爽 | 人人亚洲| 国产成人精品一区二区三区在线 | 祝你幸福电影在线观看 | 九九热免费看 | 国产电影一区二区 | 自拍视频网站 | 黄色日批视频 |