會不會為了今日的肚皮,加速斷送了自己明日的性命?

「開放」應該是逼自己勇敢面對未來的一種積極方式,這也是自己一直認為台灣應該積極參與區域經濟、國際貿易協定...各種可以讓台灣走出去的形式,而不應該只是自己將自己鎖在家裡面。

但是,就在今晚我忽然發現一個說服不了自己的假想。

倘若與他國簽訂貿易協定,對方圖得是他從我這獲得更多的經濟利益,了不起在雙方貿易上我只是可能有較多的經濟利損,不過是損失點銀兩罷了。

但...慢著!.....如果對方要得不只是經濟上的利益,他還圖得更多...而且總是覺得他老子要修理我小子是天公地道的事情,那看起來事情好像就沒我想的那麼單純了...

試想,如果有一天兩個人真的打了起來、或者他就擺明了要欺負我。我的網路資訊交換、隧道橋樑管理這一類的交通、通訊事業都握在他手上,他斷橋、斷訊,讓我的指通系統無法發揮功能,我還跟他打甚麼(雖然本來就撐不了多久),更何況我家裡的食、衣、住、行、醫療...好多生活所需都還靠他提供服務(還不講可能也是派人來臥底經營的),那就真變成了引狼入室、木馬屠城。到時候,恐怕不是我自己拿出家裡的甚麼行政命令之類的家法出來,就可以限制得了他的(更何況他拳頭那麼大,哪管我呀)。

更何況他手上還經營了許多我家的資料庫業務。從阿里巴巴淘寶網購物經驗就能知道,他大海撈針(Big Data)的應用能力可強得很,恐怕到時候連我家裏有多少人、每個人在哪裡工作、上學、平常生活習慣、在哪裡出沒...老早就調查收集得清清楚楚。

這麼一想,我忽然覺得背脊發涼、冷汗直流...事情好像不是我原本想得那麼美好,整套協定內容好像根本是作戰計畫的首部曲,更何況執行得夠好的話,還真是印驗孫子兵法中的名言「不戰而屈人之兵,善之善者也」,這豈不是高招?

看到這,或許很多人早就看不下去了,有耐性看完的也可能覺得我想像力太豐富、想得太多、機會趨近於零、陰謀論...

但我忽然覺得自己害怕的事情是...我會不會因為今日的肚皮,斷送了明日的性命?

也許有人也會講,不簽...你就今天餓死吧!!!

不過...慢著...我沒其他人可以簽約嗎?不也是還有不少人想要跟我簽約?雖然,他們也圖從我身上撈些好處、油水,但至少好像沒有一直放話要我的命呀...

這事情,看來真的要再想一想,要簽?要怎麼簽?那些可以簽?那些不能簽?可能不是那麼直接的經濟利益觀點而已。這事情雖然攸關肚皮,但其實真的更攸關性命!

我,小老百姓一個,沒能力移民不了,也沒綠卡身份,更沒權貴保護,不求大富、大貴、大官位,說穿了,真怕死而已。

ASUS VC60 i3-3110M 安裝 ubuntu 14.04 (beta2)

先至 Ubuntu 官方網站下載 Ubuntu 14.04 (Beta 2) Desktop 64bits ISO
http://releases.ubuntu.com/14.04/ubuntu-14.04-beta2-desktop-amd64.iso

把iso檔案燒錄至USB隨身碟中,Windows 電腦可以使用 Win32 Disk Imager 完成燒錄。

以Ubuntu 14.04 USB隨身碟開機,可試用、可安裝至ASUS VC60 i3-3110M的無作業系統版電腦。

測試結果
Ubuntu 13.04 Desktop 64bits : 不支援VC60的無線網路卡、支援S/PDIF數位音效輸出及類比輸出
Ubuntu 13.10 Desktop 64bits : 無法完成開機(不知道原因為何)
Ubuntu 14.04 (Beta 2) Desktop 64bits : 支援VC60的無線網路卡、支援S/PDIF數位音效輸出及類比輸出

$ uname -a
Linux myhost 3.13.0-20-generic #42-Ubuntu SMP Fri Mar 28 09:56:33 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

好機器,不買嗎?:P

Mac OS X 10.9.1 + Wintec WBT-100 GPS Data Logger

準備工作:完成藍芽配對與應用程式安裝

完成 WBT-100 GPS 與 Mac OS X 藍芽配對

gpsbabel.org 下載 GPSBabel-1.4.4.dmg 並完成安裝


方法一:以GUI方式操作應用程式GPSBabelFE

選取 Device , 範例為 /dev/cu.WBT100-SPPslave

Download Format 為 Wintec WBT-100/200 GPS Download

設定Output Format為GPX XML, 範例 File Name 為 mytrack


按下Apply執行後,經過一小段時間,即可將GPS Data log 自WBT-100下載完成囉

以 Google Earth 開啟 mytrack


方法二:開終端機直接下指令

/Applications/GPSBabelFE.app/Contents/MacOS/gpsbabel -i wbt -f/dev/cu.WBT100-SPPslave -o gpx -F ~/Desktop/mytrack.gpx

使用R繪製台灣地圖 (3)

繪製台灣地圖及縣市界線

library(ggmap)
library(ggplot2)
library(sp)

# 下載台灣地理空間資料
con <- url("http://www.gadm.org/data/rda/TWN_adm2.RData")
print(load(con))
close(con)
data <- fortify(gadm)

# qmap繪製台灣地圖及geom_polygon繪製縣市區域
# geom_polygon:紅色邊線、黑色填滿(透明度alpha=.3)
qmap('nantou',zoom=7)+geom_polygon(aes(x=long, y=lat ,group=group), data=data,colour='red',fill='black',alpha=.3,size=.2)

繪製結果

# qmap繪製台灣地圖及geom_path繪製縣市界線
# geom_path:黃色邊線(透明度alpha=.4、線寬=2)
qmap('taipei',zoom=10)+geom_path(aes(x=long, y=lat ,group=group), data=data,colour='yellow',alpha=.4,size=2)

繪製結果

使用R繪製台灣地圖 (2)

安裝Packages: ggmap/ggplot2

install.packages("ggmap")
install.packages("ggplot2")

取得座標資料 

geocode('taichung city hall')

Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=taichung+city+hall&> sensor=false
Google Maps API Terms of Service : http://developers.google.com/maps/terms
lon lat
1 120.6867 24.14769

產生10筆隨機座標繪製在地圖上

library(ggmap);
library(ggplot2);

set.seed(500);
df <- round(data.frame(x = jitter(rep(120.68, 10), amount = .2),y = jitter(rep( 24.14, 10), amount = .2) ), digits = 2);
map <- get_googlemap('taichung city hall', markers = df, path = df, scale = 2);
ggmap(map, extent = 'normal');

繪製結果

使用R繪製台灣地圖

R 安裝 Packages

install.packages("sp")
install.packages("RColorBrewer")

使用gadm.org的台灣地理空間資料

http://www.gadm.org/taiwan 下載台灣地區地理空間資料,目前資料有Level 0、Level 1及Level 2三種。

繪製台灣地圖

library(sp)
library(RColorBrewer)

# get spatial data for Taiwan on county level
con <- url("http://www.gadm.org/data/rda/TWN_adm2.RData")
print(load(con))
close(con)

# plot Taiwan with random colors, length of the vector taiwan is 21
taiwan <- c("高雄市","台北市","彰化縣","嘉義縣","新竹縣","花蓮縣","宜蘭縣","高雄縣","基隆市","苗栗縣","南投縣","澎湖縣","屏東縣","台中縣","台中市","台南縣","台南市","新北市","台東縣","桃園縣","雲林縣")
gadm$NAME_2 <- as.factor(taiwan)
col = rainbow(length(levels(gadm$NAME_2)))
spplot(gadm, "NAME_2", col.regions=col, main="Taiwan Regions", colorkey = FALSE, lwd=.4, col=grey(.9))

繪製結果

Apple TV 3 Remote (IR codes) 遙控器紅外線訊號編碼

Apple TV 3 Remote (IR codes) 遙控器紅外線訊號編碼

  • UP 0x77E1D05F
  • LEFT 0x77E1105F
  • DOWN 0x77E1B05F
  • MENU 0x77E1405F
  • ENTER 0x77E1BA5F
  • RIGHT 0x77E1E05F
  • PLAY 0x77E17A5F

有了上述的紅外線訊號編碼,就可以利用Arduino接上紅外線發射LED模擬原廠紅外線遙控器,來遙控 Apple TV 3 囉~


同場加映 SONY TV Remote (IR codes) 遙控器紅外線訊號編碼



資料下載連結 : https://goo.gl/dP0Gwy

安裝 eZ430-Chronos Windows PC-Software for Windows 8 (64bits)


eZ430-Chronos是德州儀器(TI)針對運動手錶提供的客製化開發環境,摘要官網說明主要功能特色如下:

  • 外形輕巧,可方便地進行遠端開發
  • BlueRobin™ RF 協定,讓開發人員無需具備RF 專業知識,即可方便地直接建立無線連結
  • 提供 3 種 RF 頻率波段:915、868 以及 433 MHz(台灣地區),可在全球所有範圍內使用
  • 3 軸加速器可提供動態感測控制;另有感測器可測量高度、溫度及電池電壓等
  • 內建 CC430 記憶體可支援資料儲存,如心跳資料可保存長達 11 個小時;
  • eZ430 模擬器提供基礎軟體框架及 RF 功能,可簡化編程與除錯
  • 提供與PC通訊同步、動態滑鼠控制、下載感測器資料日誌、鍵盤示範控制及時間日曆同步等
  • CC430 可直接驅動大型 96 段 LCD 螢幕

Windows 停用驅動程式強制簽章設定

如果沒有先設定停用驅動程式強制簽章的話,安裝USB驅動程式會失敗。
請先參考相關設定Winodws Community問答停用Windows 8驅動程式強制簽章。

設定完成後,必須重新開機。

下載 eZ430-Chronos Windows PC-Softwar 軟體

參考 eZ430-Chronos™ Development Tool User's Guide 內容,下載 eZ430-Chronos Windows PC-Softwar (SLAC341)。

下載完成解開壓縮檔後,執行 Chronos-Setup.exe,依照畫面指示步驟應可正常完成安裝。
當看到下面USB驅動程式正常安裝的畫面時,表示eZ430-Chronos的CC1101 USB RF access point驅動程式已安裝完成。

接下來就可以嘗試eZ430-Chronos手錶與PC進行連線囉~

Arduino 以搖桿控制伺服器馬達

材料

  • Arduino UNO Rev3 x 1
  • MG90S 伺服器馬達 x 2


接線: 橙(DATA)、紅(5V)、棕(GND)

  • 雙軸按鍵搖桿 x 1 (只用到X, Y輸出)


接線: VCC(接Arduino 5V)、GND(接Arduino GND)

  • 連接線 x 數條

電路圖

Arduino 程式碼

#include <Servo.h> 
#include <Serial.h>
 
Servo servoX, servoY; 

const byte pinX = A0;
const byte pinY = A1;

int valX, posX;
int valY, posY;
 
void setup() 
{ 
  Serial.begin(9600);
  servoX.attach(8);
  servoY.attach(9);
} 
 
void loop() 
{ 
  valX = analogRead(pinX);
  valY = analogRead(pinY);
  
  posX = map(valX, 0, 1023, 0, 179);
  posY = map(valY, 0, 1023, 0, 179);

  /*  
  for (int xx = 0; xx < 180; xx++) {
    servoX.write(xx);
    delay(15);
  }
  */
  servoX.write(posX);
  servoY.write(posY);
  Serial.print(valX);
  Serial.print(", ");
  Serial.println(valY);
  Serial.println("");
  
  delay(15);                           // waits for the servo to get there 
} 

注意事項

  posX = map(valX, 0, 1023, 0, 179);
  posY = map(valY, 0, 1023, 0, 179);
  • 程式碼 map 函數內 1023 數值可依照實際搖桿輸出之類比最大 valX、valY 值替代。
  • 實作時發現其中有一顆伺服器馬達會發生顫抖現象。推敲原因是當搖桿歸回原點時,實際類比輸入值有飄移現象,導致進行輸入值0~1023對應轉化為0~179時,可能數值在servoX.write(89~91)之間飄移,致使伺服器馬達不斷動作而發生顫抖現象,可能要修改程式碼因應。