留個日期。
總算寫出沒有bug的APP。
工具是用cordova。
2018年6月29日 星期五
2018年5月22日 星期二
PC新時代: HTML5+WebAssembly
雲端化的PC二大關鍵:HTML5及WebAssembly
HTML5一統使用者界面,WebAssembly一統執行方式,使得所有語言又有新平台可用。
除了裝置相關IO動作外,一般使用者可以在Browser上執行所需程式來解決問題。
商用軟體更可以將程式中的關鍵放在Server端,也不用怕使用者偷走。
在這樣的環境下,MCU應用也變得很不一樣。
有了Browser,MCU只要將所需UI送過去,就可以取代TFT, Touch等輸出入裝置。
所以只需要無線裝置就可以了,例如Blue-tooth等就可以用了。
這也是為何BLE會變成MCU新戰場,而且比以前的MCU-USB還要激烈。
目前還是由Browser去主動連線裝置,也許未來UI是由MCU自己送出。
但MCU去連Browser這個趨勢是不可能改變的。變成操作MCU的UI也要有Browser上的相關知識。
熟悉Browser已成為工程師下個時代必須要會的事。
2018年5月18日 星期五
VPU筆記1
影像輸入處理用。
但看來目前正處於大爆發,因為AR是主要戰場。
VR因為先天問題,發展卡住,開始轉向AR發展。
AR需求對外部環境的影像輸入再處理,意外推動VPU的需求。
VPU目前看來做顯示卡的公司會比較有利。
因為外界影像輸入後,第一件事是3D建模去取得環境3D訊息,再做為顯示卡輸入。
3D建模需要標準,這樣軟體才能去處理。
目前的標準是OpenVX。
若要做機器人視覺,看來還是要跟上時代。
2018年3月9日 星期五
智商稀釋現象
遇到的老闆中有一些印象很深。
台大畢業,智力及反應力對我來說是超人級。
官運也很好,能力強,一路升到總經理。
之後就好像不太對了。管部門還可以,但管公司時沒好,但也沒犯大錯。可是公司就慢慢退化。
這個現象我一直無法理解。
最近差不多解開了,我稱為智商稀釋。
主要會有這個問題,就是決策不假他人之手,這個習慣產生出來的。
回頭看歷史,好像也有幾個皇帝也有這個現象,明末好像就是。
所有事都要親力親為,但國家的事實在太多了,又不放給其他人處理。一天要批公文上百甚至上千。
要看的公文多到就算是超人也會超載,於是決策品質整個下降。
現象就是,不會犯大錯,但沒有好決策。
或許名校出身的人都有超人的優越,所以從不認為智商有一天會超載。
一般人還很容易接受。所以會無法理解出了什事。
再接下來的科技是大數據,人工智慧,這些都是在處理超過人腦可以處理資料的機器。
要去控制一個資料處理比人強的機器,不是去比誰強。
和機器合作才是重點。
2017年7月19日 星期三
資訊社會的衝擊
工業社會早已是習以為常,但目前社會已進入資訊社會。
於是看到有許多人出現適應不良的狀況。
老實說,個人也是。一但覺得適應不良,一般人是直接退回去。
資訊社會最大的特徵是資訊量大到人腦無法承受。在智慧手機出現後,這已是無人可以避免的問題。
所以就出現有人,寧願用功能手機也不想換成智慧型手機。但在2017年7月1日後,這個可能性也沒了。因為2G退場,功能手機門號失效。
不願換掉2G門號,那就換成3G吧!不幸的是3G在2018年底退場,二者只差1年半,時間一到,功能手機就是失效。
這種資訊爆炸的社會,是對的?是正常的? 我也很存疑。資訊化的另一個產物=自動化,同時也在侵蝕社會經濟。
之所以會有這種感覺,是因為從工業社會的角度看過去。
工業社會的特性是經濟總是正成長,產品一代出過一代,人只要努力沒有賺不到錢。工業社會是以人為生產主體,人才是經濟重心。
那資訊社會呢?則是以資訊為重心,人是被分析的對象。當自動化再次進化成人工智慧時,人變成被管理的對象!
這種變化,我想大部分人都無法接受。
但這就是人類社會,當高智能種族出現,低智能的人種變成被管理。只是這回是機器爬上那個位置。
人類出現高智能不是沒有前例,第一次是語言出現,人類和動物不同了。動物被人類管理。
第二次出現是文字,沒有文字,人類無法管理國家。有文字的國家常常去打沒有文字的種族。
文字的出現科技才得以進展,不是嗎?
文字為何要發明出來?因為人腦超載了。當土地大了,要管理的事變多了,光用人腦已無法記憶。要使用符號來提醒,於是文字發明。
文字是人腦記憶的擴充。
那這次,又是怎麼回事,資訊社會再次使人腦超載。這次超載的不只是量的超載,更是處理上的超載。
所有可以電子化的資料都可以被存下來,資訊量爆炸的時代,就算有文字,人腦也無法負荷,因為連消化都來不及。
資訊社會的一大特徵是資訊產出速度無與倫比。在這種狀況下人要如何適應?
第一個方法是,增加資料輸入及消化的頻寬。也就是讀書看得比別人快,學習速度比別人快,應是可以追上。
這個方法筆者早在20年前就在使用了。但現在也只是勝過大部分人類,還是比不上電腦,在20年前沒有想到電腦會勝過人腦。
第二個方法是,改變知識的吸收層級。
這個理論的重點是:不是所有資料都是重要的,資料量大,重覆性大的可以被壓縮成現象。
資料可以被整理,如果換成另一種角度看。就像是數學中的FFT,在時域上看不清的,在頻域上就很明顯。
人工智慧及大數據相關資料查了,會發現和機率統計很有關係。機率統計也是一種大範圍的行為探討,這也是資訊社會中極為重要的常識。
不過有正確的機率統計概念的人,我想還不是很多。
再來是處理能力的增強,用人腦算計,我看很難。反過來用,用電腦去算出機率統計的結果,由人腦來理解,這是一項可行的方法。
在電腦的操作上,最實用化的科技全都是電玩發展出來的。筆者老早看到這個趨勢,很早就在追電玩理論。
現在電玩理論也相當發達:
電玩心理學:人如何看資訊,資訊對心理影響
電玩UI :資訊展現方法,如何規劃使用者需求資訊
電玩人工智能: 就是現在的人工智能
電玩伺服器: 伺服器即時反應技術,多重伺服器同步
電玩行銷:互動式網路行銷,客服機器人
電腦去完成大量資料的操作,現在已叫做大數據。
這些都是人可以對資訊操作的方法。只可惜,電玩被很多家長視為不良玩具。其實不玩電玩,才是擋住人往下個世紀的門票。
再來是經濟問題,工業社會的經濟方式在資訊社會是行不通的,所以會造成經濟退化。實際上忽略了資訊社會的新經濟。
手遊經濟目前已超越PC加上遊戲主機,電腦硬體一向是近年來經濟龍頭,被超越了代表什麼意思。
傳統行銷在手遊上是行不通的,現在經濟已不是學校理論可以去探討的,一定要換個方法才行。
但經濟真的退化?還是只是新經濟來不及接手的暫態。
行銷是不是要換個方法來看手機經濟要如何操作。
這次的衝擊是全面性的。以人為主的概念不再是絕對。
電腦不是人腦可以拼的,還是想辦法去利用電腦,提高人腦的對資訊的認知高度才是適應時代的方法。
2017年5月24日 星期三
VS Code使用IAR設定
VS Code C/C++插件升級後,變成無法去找出原先定義的地方。
後來發現是VS Code沒有IAR設定生成的問題,就試著手工填看看,結果有成功。
開入STM32專案目錄後,開C檔會有一堆紅標。
點任一個紅標字,左側會出現一個小燈泡,去點它,會開啟c_cpp_properties.json檔
先借用win32的除錯器來用。
原文:
"name": "Win32",
"includePath": [
"${workspaceRoot}",
"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include/*",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.10586.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.10586.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.10586.0/shared",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.10586.0/winrt"
],
"defines": [
"_DEBUG",
"UNICODE"
],
改成:
"name": "Win32",
"includePath": [
"${workspaceRoot}/",
"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include/*",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.10586.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.10586.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.10586.0/shared",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.10586.0/winrt",
"${workspaceRoot}/BLE_CNTR/Inc",
"${workspaceRoot}/BLE_CNTR/Drivers/STM32L0xx_HAL_Driver/Inc",
"${workspaceRoot}/BLE_CNTR/Drivers/STM32L0xx_HAL_Driver/Inc/Legacy",
"${workspaceRoot}/BLE_CNTR/Middlewares/Third_Party/FreeRTOS/Source/portable/IAR/ARM_CM0",
"${workspaceRoot}/BLE_CNTR/Drivers/CMSIS/Device/ST/STM32L0xx/Include/",
"${workspaceRoot}/BLE_CNTR/Middlewares/Third_Party/FreeRTOS/Source/include",
"${workspaceRoot}/BLE_CNTR/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS",
"${workspaceRoot}/BLE_CNTR/Drivers/CMSIS/Include"
],
"defines": [
"_DEBUG",
"UNICODE",
"USE_HAL_DRIVER",
"STM32L051xx"
],
就可以用了。
2017年4月21日 星期五
FreeRTOS Coroutine的限制
MCU因RAM不足,去動Coroutine的方法,但不太順。有switch case存在時就會掛。
後來改為if else就好了。然後找到這篇;
http://www.freertos.org/co-routine-limitations.html
難怪很少人用,有坑。
用photothreads則沒有看到這個問題。
因為Coroutine也是由switch case做出來的,才會有此問題。
結論是,不要在switch case內使用crDELAY,就可以。那只好改成一長串的if else。
記下來,以免又採到坑。
後來改為if else就好了。然後找到這篇;
http://www.freertos.org/co-routine-limitations.html
難怪很少人用,有坑。
用photothreads則沒有看到這個問題。
因為Coroutine也是由switch case做出來的,才會有此問題。
結論是,不要在switch case內使用crDELAY,就可以。那只好改成一長串的if else。
記下來,以免又採到坑。
訂閱:
文章 (Atom)
