2015年3月26日 星期四

搭配 CyanogenMod 銷售的手機 - OnePlus One


前陣子跟友人閒聊起這個牌子,想說 2013 年買了小米2S送人,今年就換另一品牌吧!

OnePlus One 的特色就是搭配 CyanogenMod (CM) 作為預設的操作環境,若真的要說的話,有點像另類的 Nexus 系列,畢竟 CM 在 Android 刷機門派中早有一席之地,在 2013 年底也開始搭配實體機器來銷售了。

至於好不好用?我也不知道,因為要拿來送人 XD 我單純就 OnePlus 的路線來看,至今的確走得挺精彩的,把持著品牌路線、CP 值,以及手機質感,但不是走機海、海撈使用者和瘋狂搶佔市佔率模式。

這走法讓我對軟體服務業也有了一番省思。

2015年3月24日 星期二

AWS 筆記 - 建立自己的 Virtual Private Cloud (VPC)



原先以為 Amazon EC2 的 default vpc 不能綁定多組 public ip 才自己跳下去建立一個 VPC 把玩(事實證明是自己搞錯了),就順便筆記一下 XDD

首先,我先以 10.10.0.0/16 作為 Personal VPC 的範圍,接著希望在這裡頭的機器一樣可以連外,所以需設定 Internet Gateways 以及 Route tables,如此一來就跟 EC2-VPC 沒什麼兩樣了。









AWS 筆記 - Amazon EC2 一台機器綁定多組 Public IP


我原先以為只要增加實體網卡,接著從 Elastic Public IP 綁定即可,但結果一直不通,搞了一陣子終於搞懂流程了 XD 關鍵的地方在於只能用在一張實體網卡上,透過 Secondary IP addresses 機制,給予多個 public ip,這可能跟 AWS routing 本身設計有關。

總之,紀錄一下成功的步驟:
  1. 開機器過程中,在 Configure Instance Details -> Network interfaces 中,記得要使用 Secondary IP addresses ,如果打算讓一台機器綁定多組 public ip,則可以依據你要增加的 Public IP 數量進行,例如預計這台機器有 3 組 Public IP,那就是需增加兩組 Secondary IP addresses。(如果機器已開啟,則可以透過 Amazon EC2 Web UI -> Instances -> 查看 Description -> 挑選 Network interface -> 點擊 Interface ID -> Actions -> Manage Private IP Addresses -> Assign new IP)
  2. 在 OS 層新增虛擬網卡,我在 Amazon 提供的 Ubuntu 14.04 中,採用 static 的用法。
  3. 接著,在 Amazon EC2 Web UI -> Elastic IP -> Allocate New Address 後,再來接著 Associate Address -> 在挑選要綁定的 Private IP address -> Associate


以上就收工了,大不了第二步需要重開機一下。以下是第二步在 Amazon Ubuntu 14.04 64Bit 操作流程:

$ cat /etc/network/interfaces.d/eth0.cfg
# The primary network interface
auto eth0
iface eth0 inet dhcp

$ ifconfig
eth0    
          inet addr:172.##.##.##  Bcast:172.##.##.255  Mask:255.255.240.0
$ sudo vim /etc/network/interfaces.d/eth0.cfg
auto eth0
iface eth0 inet dhcp

auto eth0:0
iface eth0:0 inet static
address EC2-Private-IP
netmask 255.255.240.0

$ sudo ifup eth0:0
$ ifconfig
eth0    
          inet addr:172.##.##.##  Bcast:172.##.##.255  Mask:255.255.240.0
eth0:0  
          inet addr:172.##.##.##  Bcast:172.##.##.255  Mask:255.255.240.0

2015年3月18日 星期三

[Linux] 透過 sed 將 MySQL Table 資料轉成 csv 格式 @ Ubuntu 14.04

印象中之前找資料時,有發現 MySQL Server 可以輸出 CSV 格式到本地端。但是,對於無法存取到 DB Server 的檔案系統的環境時(AWS RDS),只好手動處理一下 :P

用法:

$ mysql -h rds-server -u root -p -e "SELECT field1, field2 FROM db_name.table_name" | grep "^Keyword" | sed 's/\t/","/g' | sed 's/^/"/g' | sed 's/$/"/g' > db-table-export.csv

其中 grep 那段只是為了mysql 輸出時,略過第一行 XD

[Linux] 透過 dpkg 指令,完整移除軟體 @ Ubuntu 14.04

有時為了製作乾淨的測試環境,多安裝的軟體會透過 apt-get remove package 來移除,並用 apt-get autoremove 清掉相依軟體。例如原本想安裝 php,偷懶用:

$ sudo apt-get install php5

結果系統就幫你裝了一卡車 apache2 相關東西,但你其實是想用 nginx 而已。

這時若只透過 apt-get remove 反安裝 apache2 後,系統還會遺留 /etc/apache2 的設定檔,為了避免後續維護誤導其他人,最佳的方式還是把這些東西都清光,此時就可透過 dpkg -P package 的方式清一清。

$ sudo dpkg -P apache2

如果有一卡車的東西,可以用 dpkg --get-selections 來查詢。連續動作(強烈建議先看過 dpkg --get-selections | grep deinstall 結果再使用):

$ dpkg --get-selections | grep deinstall | xargs sudo dpkg -P