網頁

2013年2月24日

AWS EC2

AWS 是 Amazon Web Services 的縮寫,在這個由 Amazon 建構的平台中,提供了許多雲端的 Service,像是我現在用的 EC2 就是其中之一。

Amozon EC2 的全名是 Amazon Elastic Compute Cloud。是一個讓使用者可以租用雲端電腦執行所需應用的系統。EC2藉由提供Web服務的方式讓使用者可以彈性地執行自己的Amazon機器映像檔,使用者將可以在這個虛擬機器上執行任何自己想要的軟體或應用程式。

使用者可以隨時創建、執行、終止自己的虛擬伺服器,使用多少時間算多少錢,也因此這個系統是「彈性」使用的。EC2讓使用者可以控制執行虛擬伺服器的主機地理位置,這可以改善讓延遲還有備援性例如,為了讓系統維護時間最短,用戶可以在每個時區都執行自己的虛擬伺服器。

Adding Progressive Enhancements with jQuery

Progressive enhancement is a term originally coined by Steven Champeon1 in 2003 to describe a webdevelopment technique in which applications are designed to be accessible to any Internet connection and browser using semantic HTML and other technologies that are applied in layers (such as CSS files and JavaScript markup).

For an application to follow the principles of progressive enhancement, it must adhere to the following guidelines:

  • Basic content is accessible to all browsers using the simplest, most semantic HTML markup possible.
  • All of the basic functionality of the app works in all browsers
  • The user’s preferences are respected; this means that the web app doesn’t override browser settings (such as window size).
  • Externally linked CSS handles the styling and presentation of the document
  • Externally linked JavaScript enhances the user experience, but it remains
    unobtrusive, or non-essential to the application’s operation.

Your application already meets the first four guidelines (it’s not pretty, but the application will work with styles disabled).

So as long as your JavaScript doesn’t create any new functionality that can’t be accessed with JavaScript disabled, you will have successfully created a progressively enhanced web
application.

Origin

  • Pro PHP And jQuery. Chapter 7. Page 235.

2013年2月18日

Linux 命令行 Find 小技巧


命令行一直是Linux用戶用來解決問題的首要選擇,當需要做某件事時,你只要想好如何去做,從那時起你就知道該如何做了

不過很少有人花些時間系統地瞭解處理工具在處理過程中的輸入和輸出。因此對於最基本實用工具的功能可能並不是很瞭解。在本文中,我們將討論所有shell工具箱中都有的一個重要工具:find實用工具。

正如它的名字所表示的,find是在磁碟中查找滿足給定標準的文件和目錄的應用程序。默認情況下,它從當前目錄開始,向下掃瞄所有子目錄。Find基於各種不同的文件屬性來進行查詢,而且可以對查詢結果執行某種操作,通常是對每個查詢結果運行一些程序。

讓我們來看一些例子:首先,為了在當前目錄或子目錄中查找所有html文件,我們可以使用:

find -name “*.html” -type f

2013年2月5日

tar 指令的常用語法

在Linux上,為了便於檔案以及目錄的交流、儲存以及傳輸,我們通常把一大堆檔案以及目錄「打包」為一個單一檔案。這個打包工具就是tar,而打包好的檔案就稱為tar ball (xxx.tar)。

順帶一提的是,tar本身並沒有壓縮檔案,而我們經常看到的 xxx.tar.gz (.tgz) 是 tar ball 再經 gzip 壓縮,而 xxx.tar.Z 則是 tar ball 再經 compress 壓縮,而 xxx.tar.bz2 則是 tar ball 再經 bzip2 壓縮。

常用參數

  • -c 打包一個 tar 檔案
  • -x 解開一個 tar 檔案
  • -t 檢視 tar 檔案的內容
  • -z 使用 gzip 壓縮
  • -j 使用 bzip2 壓縮
  • -v 顯示建立 tar 檔案的過程
  • -f 指定 tar 檔案的檔案名稱 (此參數的後面必須接目標檔名)
  • -C 解壓縮的時候,可以解壓縮到指定的路徑下

xargs 將上一個程式輸出當成下一個程式的參數輸入

Origin: xargs 應用介紹

今天介紹的指令是 xargs,這個指令並不常見,卻很實用
它的工作是將上一個程式輸出的結果轉成下一個程式的參數輸入

範例:
假設有一個目錄如下 (這個樹狀目錄架構是使用 tree 指令所產生的)

.
|-- Makefile
|-- VERSION
|-- VERSION.bak
|-- inc
|   |-- fork.h
|   |-- main.h
|   `-- main.h.bak
`-- src
    |-- common_lib
    |   |-- dl_math.c
    |   |-- dl_math.c.bak
    |   |-- dl_string.c
    |   `-- dl_string.c.bak
    |-- fork.c
    |-- fork.c.bak
    `-- main.c

這是一個程式開發的專案目錄,如果我想要將所有的*.bak 一次清除,那麼該怎麼做呢? 首先我得先找出所有的 *.bak,可以使用 find 指令

find . -iname "*.bak"

可以得到以下的結果
./VERSION.bak
./inc/main.h.bak
./src/fork.c.bak
./src/common_lib/dl_string.c.bak
./src/common_lib/dl_math.c.bak

接下來就是關鍵了
你會怎麼做呢?
1) 把結果使用">" 導向檔案,全部加入 rm (linux 的刪檔指令)嗎?
2) 還是把這些輸出內容變成 rm 的輸入呢?
第一種方式是愚公移山…如果有幾千個檔案…可能會很辛苦~
第二種方式就是使用xargs 來實現我們的理想

find . -iname "*.bak" | xargs rm