發表文章

Windows設置10,172,192私有網路網段走特定介面卡

為了Internet上網使用WIFI,有線網路進行sniffer網路封包,參考了 這篇 來設定路由。 查看目前網卡狀態 包含IP/IPv6、預設閘道(Gateway) ipconfig 印出的內容如下 無線區域網路介面卡 區域連線* 2:    媒體狀態 . . . . . . . . . . . . .: 媒體已中斷連線    連線特定 DNS 尾碼 . . . . . . . . : 無線區域網路介面卡 區域連線* 4:    媒體狀態 . . . . . . . . . . . . .: 媒體已中斷連線    連線特定 DNS 尾碼 . . . . . . . . : 無線區域網路介面卡 Wi-Fi:    連線特定 DNS 尾碼 . . . . . . . . :    IPv6 位址. . . . . . . . . . . . .: 2001:b400:e232:8074:5d4f:c8:27d3:7aa7    臨時 IPv6 位址. . . . . . . . . . : 2001:b400:e232:8074:902e:41f6:518b:70d7    連結-本機 IPv6 位址 . . . . . . . : fe80::5d4f:c8:27d3:7aa7%12    IPv4 位址 . . . . . . . . . . . . : 192.168.43.23    子網路遮罩 . . . . . . . . . . . .: 255.255.255.0    預設閘道 . . . . . . . . . . . . .: fe80::ae57:75ff:febd:d311%12                                        192.168.43.2...

使用IoT大平台語音辨識/語音轉文字(STT)功能

圖片
步驟1. 登入IoT大平台會員 Step1. Login CHT IoT platform 我想這不需要多介紹... 步驟2. 取得IoT大平台的API金鑰 Step2. Register X-API-API key for STT/TTS 登入大平台後,右上角個人圖像,點下去會顯示[API金鑰管理] 或是直接前往網址 https://iot.cht.com.tw/iot/appkey 申請金鑰時預設是全部都可以使用,如果你只是要用STT功能,找到如下圖所示的chtlasr國語語音辨識服務部分勾選即可。 步驟3. 開始使用 Step3. Ready for use the speech-to-text api API的說明頁https://iot.cht.com.tw/iot/developer/intelligence 辨識包含三個步驟: (1) 取得ASR ID  (2) 傳送語音資料, 並獲得辨識結果 (3) 結束辨識 我下面假定你步驟2取得的x-api-key是 aaaaaaaa-bbbb-cccc-dddd-123456789ab (1) 取得ASR ID curl -v -i \     -X POST \     -H "X-API-Key: aaaaaaaa-bbbb-cccc-dddd-123456789ab " \     -H "Accept: application/json" \ https://iot.cht.com.tw/apis/CHTIoT/chtlasr/v2/MyServlet/tlasr?Action=connect 正常的話伺服器會回應http 200,內容會中會包ASR ID( 紅色粗體 標示){"ResultStatus":"Success","AsrReferenceId":" tlasr_116017588_20190709_145925058_009 ","ApiProcessingTime":"2019-07-09T14:59:25.058_2019-07-09T14:59:25.339_281ms...

中華電信IOT大平台的Android App遭遇問題

圖片
中華電信IoT大平台的Android專案展示App https://github.com/yuzheng/android-iot-app 遭遇問題1:Android Studio版本問題 修改android-iot-app/app/build.gradle (1) 移除專案原先buildToolsVersion (2) 改build.gradle的相依library的語法   androidTestCompile改androidTestImplementation   compile改implementation 遭遇問題2:無法解析專案,缺少chtiotlib Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project:chtiotlib. Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve project:chtiotlib. Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve project:chtiotlib. ... 這是因為專案有使用到git submodule,就是用來與IoT大平台連線用的lib: chtiotlib  建議要先學習一下git submodule的用法,可參考 這裡 。 git submodule的設定檔案在.gitmodules,裡面會顯示submodule的目錄和對應的url來源。 更新submodule使用git submodule update可更新,只是我update有遭遇目錄有檔案存在,無法寫入的錯誤,所以就把chtiotlib裡面的檔案都刪掉再update就可以。 遭遇問題3:無法連線proxy.cht.com.tw 開啟gradle.properties把systemProp.http.proxyHost和systemProp.http.prox...

Ubuntu 14.04編譯安裝python2.7.9

Ubuntu 14.04編譯安裝python2.7.9 請使用下面gist script, 執行時需要sudo這個script 然後發現系統的python2.7.6還是存在/usr/bin/python, 部份script指定這個路徑後依然跑舊的版本, 所以先備份2.7.6 sudo mv /usr/bin/python2.7 /usr/bin/python2.7.bak 接著設定新的為預設啟用 sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python2.7 2 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7.bak 1 sudo update-alternatives --install /usr/bin/python2 python2 /usr/local/bin/python2.7 2 sudo update-alternatives --install /usr/bin/python2 python2 /usr/bin/python2.7.bak 1 sudo update-alternatives --install /usr/bin/python2.7 python2.7 /usr/local/bin/python2.7 2 sudo update-alternatives --install /usr/bin/python2.7 python2.7 /usr/bin/python2.7.bak 1

如何在AppCompatActivity中設定背景透明

測試了幾個方案,最簡單就是改styles.xml,改下面兩個設定值 android:windowBackground設為透明(@android:color/transparent) android:windowIsTranslucent設為true 注意! 直接用Android Studio編譯後啟動的時候,我們設成透明背景的部分可能會是白色,建議關掉後直接點安裝好的App。 可到我的github中看Demo https://github.com/Mirochiu/TransparentBgApp

記:第二隻藍芽滑鼠

今天揮別了第一支藍芽滑鼠 Microsoft Bluetooth® 行動滑鼠 3600 ,藍光滑鼠的特性是可以在玻璃上使用,之前的光學滑鼠都不行,想當年跟教授在85度C改論文Meeting時,桌面是玻璃讓大家十分困擾。 大學時期也用過無線滑鼠,只是那時三個月就要換電池。是從它開始,直到使用它之後,我才對於無線滑鼠改觀。3600的一顆AA電池至少可用1年半載。 只是前些陣子開始秀斗秀斗,三不五時卡個5秒鐘不能操作,更換電池也無效,而且發生頻率有逐漸增加趨勢,只是我很喜歡它的整體造型和觸感,遲遲下不了決定,拖了大半日子直到今天才換掉它。 這次選擇了 羅技的M590多工靜音滑鼠 ,號稱電池可以使用2年,並支援兩台電腦,還附上和自家專利的接收器,不過價格我記得是比3600貴個200台票。 不過就是因為M590支援兩台電腦,還附上接收器,這2點正是打中我的痛點。我因為開發上需要,會使用公司電腦打Code,再用與筆電打文件,筆電有內建藍芽,但是電腦就是沒有,又不想額外帶著接收器,羅技會想到把這2個需求合在一起真的是神了! M590兩側的觸感和3600一樣是有點橡皮質感,指尖部份M590應該是塑膠成形時的顆粒紋路,根據我經驗這使用個1~2年後,常點擊的位置的紋路就會被抹平,變一塊平的凹陷影響觸感,3600這方面就做得比較好,我使用了N年觸感都沒變,這應該就是M590是稍微可惜的地方。

解開/解包boot.img

AOSP內只提供打包用的mkbootimg 這篇簡短描述解img用工具 https://unix.stackexchange.com/questions/64628/how-to-extract-boot-img 1. 下載unpackbootimg ./unpackbootimg -i {img檔案} -o {輸出目錄} 2. 會分解出zImage和ramdisk, 取出ramdisk用下面指令可解開 gunzip -c {Ramdisk的gz檔案} | cpio -i unpackbootimg https://github.com/osm0sis/mkbootimg 關於解包再打包寫的比較詳細的一篇 https://www.whitewinterwolf.com/posts/2016/08/11/how-to-unpack-and-edit-android-boot-img/ 簡短的打包指令 http://lagunawang.pixnet.net/blog/post/42548336-repack-android-ramdisk

文摘:牛的大腦-IPv6

來源: 牛的大腦-IPv6 http://systw.net/note/af/sblog/more.php?id=60 簡介 IPv6為1995年SIPP更名,原名為IPNG(NextGeneration) IPv5是實驗性 IPv6位址長度128bit(16 bytes), IPv4位址長度32bit(4 bytes) header長度固定320 bits(40 bytes) IPv6位址分類 保留IP ::/0 表示default route (ip -6 route中可用, ipv4是0/0) ::/128表示unspecified address(未知的位置),或無適合ip ::1/128 為loopback位置,等同於ipv4的127.0.0.1 64:ff9b::/96      IPv4/IPv6 translation  (NAT64,DNS64) ::ffff:0:0/96     IPv4 mapped addresses. ::ffff:0:0:0/96   IPv4 translated addresses. 可參考wiki  https://en.wikipedia.org/wiki/Reserved_IP_addresses#IPv6 Ipv6是可以有多種address type, ipv4只能一種type unicast, mutlicast, anycast/cluster, 沒有ipv4的broadcast type 1-to-1, 1-to-many, 1-to-nearest/1-to-1-of-many unicast分為 1. scoped - global unicast 相當於ipv4 public ip ----> 2000::/3 2. no-scoped  2.1 unique local unicast 相當於ipv4 private ip ----> FD00::/8  2.2 link-local unicast ----> FE80::/10 另有不使用的 Site-Local ...

文摘:關於ipv6-中華電信IPv6網路操作與實務應用

來源:http://163.28.82.8/data2/seminar99/ipv621.pdf linux kernel 2.2.0開始支援ipv6 設定Ipv6網路介面 單一介面預設值 – 僅有Link-Local位址(MAC位址所形成) • 單一介面永久增加一筆IPv6位址 – # vi /etc/sysconfig/network-scripts/ifcfg-eth0 • IPV6ADDR="3ffe:501:ffff:100::2/64" (增加一筆) – # vi /etc/sysconfig/networking/devices/ifcfg-eth0 • IPV6ADDR_SECONDARIES="3ffe:501:ffff:101::10/64 3ffe:501:ffff:102::10/65" (增加多筆) – # /sbin/service network restart (重新載入) • 單一介面臨時增加一筆IPv6位址 – # ip -6 addr add 3ffe:501:ffff:101::10/64 dev eth0 (增加一筆) • 單一介面清除一筆IPv6位址 – # ip -6 addr flush dev eth0 • 單一介面筆清除一筆IPv6位址 – # ip -6 addr del 3ffe:501:ffff:101::10/64 dev eth0 • 檢驗全機IPv6位址 – # ip -6 addr show • 檢驗單一介面IPv6位址 – # ip -6 addr show dev eth0 設定DNS伺服器位址IPv4與IPv6 vi /etc/resolv.conf • nameserver 3ffe:2029:f001:184a::6 • nameserver 168.95.1.1 ND/RS芳鄰搜尋/路由請求 nd=neighbor discovery=芳鄰找尋 rs=router solicitation=路由請求/懇求 1. 安裝RDNSS套件 – # yum -y install ndis6 • 2. 傳送RS封包 – # ifconfig eth0 down – # ifconf...

文摘:爲什麼技術最強的碼農當不了首席工程師?

中文翻譯版: https://www.twblogs.net/a/5cc3be55bd9eee3971144575 爲什麼技術最牛的碼農當不了首席工程師? 原始英文版本: https://sizovs.net/2019/02/15/the-principal-developer/ 文章由 Eduards Sizovs - DevHub 創辦人寫在個人blog:  https://sizovs.net/ That’s why a principal developer is  a diplomatic communicator . He knows how to deal with different personalities, how to influence people  across the organization , negotiate,  manage up and down . He dares to raise uncomfortable questions, speak up when others are silent and align everyone around his vision.”