不專業 ASUS UX305FA 開箱

幫老弟買筆電,又是開始上網尋找合適筆電的動作,主要考量是 3 萬以下、不要太重 (2 KG 以下)、記憶體 4G (含)以上、螢幕大小儘量為 13吋、SSD 為主,如果是硬碟最好是 7200 RPM。

其他像獨顯、數字鍵之類的就沒有在考慮範圍內,因為,已經有 PC,如果要打遊戲,用 PC 打還比較爽。

ASUS UX305FA購入時間:2015/03/28,購入地點:台北光華商場,購入金額:2X,000

繼續閱讀 “不專業 ASUS UX305FA 開箱”

不專業 ASUS UX305FA 開箱

Ruby 存取控制

圖片作者 Jozef Krajčovič  來源 http://jozefkrajcovic.sk/
圖片作者 Jozef Krajčovič
來源 http://jozefkrajcovic.sk/

Ruby 是一個完全物件導向程式語言,不管是字串、整數等,都是類別的物件。

在物件導向內,類別 (class)主要有方法 (method) 等組成,藉由呼叫方法來改變物件的狀態,Ruby 對方法的存取控制分為三個不同的層級,名稱與其他物件導向程式語言一樣,有 publicprotectedprivate

Public、Protected、Private 存取控制

在 Ruby 這三個存取控制層級與其他語言有不同之處,從其他語言跳到 Ruby 可能會忽略掉。

  • public 可以被任何人直接存取,例如:類別的物件可以呼叫 public 方法,預設所有的方法為 public,除了 #initialize 方法為 private
  • protected 層級比 public 小,只有相同類別或子類別內,才能存取 protected 方法
  • private 不能有明確的 receiver 呼叫 private 方法,表示 private 方法只能在物件內被呼叫

還是以下藉由程式來說明會更清楚!

繼續閱讀 “Ruby 存取控制”

Ruby 存取控制

第一次用 PHPUnit 寫測試就上手

一、什麼是測試?測試的重要性?

開發者在撰寫程式的時候,程式不大可能會沒有問題,所以通常就需要驗證程式的執行是不是符合預期。測試程式能用來驗證程式程式的運作是不是正常的,並發現程式中的錯誤,以增加軟體品質。

下面是一個活動報名的系統:

測試活動報名系統

這一個活動報名系統主要提供使用者報名活動,在報名活動內還有一些子功能,像是「限制活動報名人數」,如果是這一個子功能,該如何測試呢?

直覺想到可能就需要有 20 個以上的使用者,然後讓這個些使用者分別來報名活動,如果沒超過限制的人數,使用者就能繼續報名,反之,超過了限制人數的話,使用者就無法繼續報名了。說到這裡,會覺得這是什麼測試!

先分析一下,照上面的方法進行測試會有什麼問題:

  1. 測試案例一多,會花太多時間
    • 這時候,如果再增加報名截止日期的測試,這樣又需要再對報名功能測試一次
  2. 改了程式碼之後,需要再做一次測試
    • 日後維護時,會需要再次修改程式碼,但是,改了程式碼之後,該如何驗證修改後的程式運作上是沒問題的?所以,可能又要再次從頭做一次測試
  3. 與其他程式混在一起測試
    • 要執行報名功能的程式碼,要透過 view 的程式去呼叫。但是,這樣做測試的時候,如果測試失敗,就必須花時間去找出是報名的程式出問題,還是 view 程式

    那該如何解決這些問題呢?針對開發者來說,需要一個可以自動化、重複的、獨立的測試。

繼續閱讀 “第一次用 PHPUnit 寫測試就上手”

第一次用 PHPUnit 寫測試就上手

Docker 實作入門

目的

主要介紹 Docker 的實作,會提到以下幾個部分:

  1. 快速的建立 Docker container
  2. 管理 Docker 上的 container
  3. 下載 image 、commit 建立新的 image
  4. 經由撰寫 Dockerfile 來自動建立新的 image

在進入實作前,會簡單介紹 Docker 與虛擬化的差異、Docker 上的重要元件,接下來準備的部分會需要安裝 Docker 及先登入 Docker Hub。

 

簡介 Docker

Docker 是一個開源專案,支援多平台,從筆電到公、私有雲上能進行快速部署輕量、獨立的作業環境。Docker 使用 Linux 核心中的功能,Namespace 及 Control Groups (cgroups) 等,來達到建置獨立的環境及控制 CPU 、Memory 、網路等資源。

Docker logo

專案網址: http://www.docker.com/

繼續閱讀 “Docker 實作入門”

Docker 實作入門

用OpenShift 開發網站

openshift
圖片轉自OpenShift

從大學畢業後,要免費用伺服器還蠻麻煩的一件事情,查了許多VPS ,開發環境都不是非常好,像有些主機還是使用PHP 5.3 以下,MySQL 也不支援InnoDB Engine,服務也不沒很穩定,免費的主機也不能苛求太多,OpenShift 是由Red Hat 建置,跑在Amazon EC2上,穩定度看來是不錯的。

1. 介紹OpenShift

OpenShift 是RedHat 建立的雲端服務,屬於平臺即服務 (PaaS),可以讓開發者或一般人方便的使用架設好的開發環境,不用花費太多時間在管理系統上面。官方也蠻不錯的,提供一個免費方案,另一個基本上算免費,先看一下比較。

Free Bronze
Small Gears(1~3) *1 免費 免費
Small Gears(4個以上) X 須付費
Gear 閒置 *2 2天 X
基本儲存空間/1個Gear 1G 1G
額外儲存空間 X 須付費
rhcloud.com 上的次級網域
自訂網域
分享SSL/TLS 憑證
自訂SSL/TLS 憑證 X
付款資訊 *3 X

備註:

  1. Gear 是一個被限制的資源(如:記憶體、儲存空間等),簡單來說像是一個電腦一樣,Small Gear 的資源就是512M 的記憶體、100M swap 空間、1G 儲存空間(可付費擴增)
  2. Gear 閒置指,如果在某段時間內(免費方案是2天)沒有接收到HTTP 要求的話,會進入idle 狀態,如果有HTTP Request 進來,就會進入Started了(自己測試idle 切換到started 要等10幾秒左右)
  3. 付款資訊在Bronze 方案,是要填入信用卡資訊的,所以小心Small Gear 用超過1G的儲存空間就會開始計費…

比較起來,OpenShift 還不錯,可以自訂網域,記憶體跑小demo 、做Lab或者是小流量的網站 也不錯。官方說明中,以Drupal 來估計,Small Gear 可以Free 方案大約可以每秒15 個頁面、數百篇文章、每個月5萬個訪客,詳細得比較可以去看https://www.openshift.com/products/pricing

支援的程式語言包括,Java、PHP、Python、Ruby、Node.js、Perl等,本篇文章以PHP 為開發環境,資料庫則有MySQL、MangoDB、PostgreSQL等,如果要知道支援的版本,可以至https://www.openshift.com/developers/technologies

繼續閱讀 “用OpenShift 開發網站”

用OpenShift 開發網站

更新ADT 後src 及 layout 不會自動建立

adt

把ADT (Android Developement Tools) 更新到22.6 (2014年4月),發現到如果新增一個project 時,原本會自動建立src 內的package 及Activity class,還有在res/layout 內的Activity layout 的XML 檔,但是都沒出現,去找了Android 的issue tracker(#66647),問題是因為ADT  內的SDK tools 根本沒被更新到22.6,但是在SDK Manager 顯示出來卻是有。

 

package_explorer_list
新建專案src 及res/layout 是空的

繼續閱讀 “更新ADT 後src 及 layout 不會自動建立”

更新ADT 後src 及 layout 不會自動建立

ASUS 路由器的洞

asus

在網路上看到國外有人發現到ASUS 家用路由器的洞,剛好我也是用ASUS,檢查一下發現真的有這個洞…,詳細可以參考此網站

主要有兩個洞,分別是XSS 跟 Authentication bypass,都是發生在error_page.htm 這個網頁,瀏覽此頁面是不經過身分驗證

  1. XSS 的是透過error_page.htm?%27%2balert(%27QQ%27)%2b%27
  2. Authentication bypass 在檢視error_page.htm 的原始碼會發現有一行的程式如下:

回報的人說明影響到的機型有

  1. ASUS RT-N10U
  2. ASUS RT-N56U
  3. ASUS DSL-N55U
  4. ASUS RT-AC66U
  5. ASUS RT-N15U
  6. ASUS RT-N53

另外,N55U與 AC66U 沒有Authentication bypass 的洞。

不過,現在使用是RT-N12D1 在官網上的Firmware 更新中也有,所以,快去檢查路由器的firmware 是否有釋出更新

 

資料來源:https://sintonen.fi/advisories/asus-router-auth-bypass.txt

ASUS 路由器的洞

SSH 安全設定的大小事

OpenSSH_logo
圖片取自Wikipedia

 

前幾天幫朋友弄主機,看到 /etc/hosts 被加入許多筆127.0.0.1 對應到不同的domain name,接著看登入紀錄發現,只留下當天下午之後的紀錄,其他的都不見了‵,個人的主機通常不會把log 丟到syslog server 上,系統上的帳號也被新增一個帳號,UID 還是0…,看來是被黑了…,最後發現,他沒把root 帳號SSH 連線的設定關掉,密碼也太過簡單。

繼續閱讀 “SSH 安全設定的大小事”

SSH 安全設定的大小事

寫了一個App – 臺灣燈會在南投

臺灣燈會在南投

今年臺灣燈會辦在南投,原本去年底就想開始寫,那時候還不知道有什麼功能可以做,直到看了南投縣政府的官網出來後才花了一些時間寫(官網用CodeIgniter 做的樣子),最後利用Google Map API 做出了燈會地圖,希望不要有太多bug 就FC 啊…有的話請麻煩回報一下,有建議可以告訴我,在文章、Goolge Play 評論留言或者mail 給我 ym.huang0808 [at] gmail.com,測試的環境就有我的手機Nexus 5…,沒有平板能做測試(差點衝去買一個Nexus 7…)。

繼續閱讀 “寫了一個App – 臺灣燈會在南投”

寫了一個App – 臺灣燈會在南投

AWK 處理檔案

在處理「10,000 Top Passwords」的檔案時,想轉成array 資料型態存起來,檔案是:

password, 32027
123456, 25969
12345678, 8667
1234, 5786
qwerty, 5455
12345, 4523
dragon, 4321
pussy, 3945
baseball, 3739
football, 3682

第一欄是要儲存成array 的資料,就想到利用AWK 來處理,之前有用過了,不過現在有點生疏,來筆記一下,加深印象。

AWK 結構及選項

AWK 是讀取檔案或利用pipeline 的方式讀取接收到的結果,以每行為一個記錄(record)進行處理,在行中會在被區分成欄位(field),預設區隔欄位的則是空白

  • -F :可以自訂區隔欄位的字元是哪一個
  • -v:則是可以設定變數
  • pattern:當讀取每行時,可以利用pattern 判斷是否符合,如果沒pattern 需要判斷可以省略
  • action statements:要進行的動作,要將執行的動作寫在{ } 大括號內

繼續閱讀 “AWK 處理檔案”

AWK 處理檔案