2011年3月26日 星期六

Pixel Bender 簡介

Pixel Bender簡介
Pixel Bender核心語言是一種C語言的延伸,使用於圖像處理。他是基於GLSL,而GLSL又是基於C語言的,任何C語言的程式員因該會很熟悉。如果你有OpenGL/GLSL的背景你會發現一個Pixel Bender的程式,他類似一個fragment shader(片段著色器)。

  • Pixel Bender一定要有一個evaluatePixel() function,運行是由此開始的。
Piexl Bender 執行時期引擎是集成客戶端的應用,能將Piexl Bender引入Photoshop 、After Effects、Flash Player。
  • Piexl Bender編寫好程序後可以存成PBK檔,這個PBK檔可以用於Photoshop、After Effects。
  • PBK編譯後成為PBJ能用於Flash Playerm。

2011年3月23日 星期三

關於字串處理

有一段URLhttp://www.blogger.com/index.htm

l請取出index.html這段字串。

做了一些測驗,測驗的程式碼如下:

2011年3月14日 星期一

JAVA開發中常見名詞

JAVA開發中常見名詞

在學習JAVA知識領域中,遇到了許多名詞,常常讓自己搞不懂,其實時如果直接看到程式碼時就會,啊~原來是這個喔!但由於在閱讀其他Java FrameWork常常讓人搞不懂這個名詞到底再說什麼東西,因此將這些名詞其紀錄下來。


JavaBeans
  • JavaBeans只是一個形容詞,指的就是符合Java開發規範的Class。
  • 在JavaSE中符合JavaSE的規範就是JavaSE的JavaBeans,在JSP有JSP裡的JavaBeans,EJB有EJB的JavaBeans。
  • 簡單說就是照Java規定寫出來的Class就稱做JavaBeans。
參考資料
 維基百科
 蔡煥麟先生的網站

POJO (Plain Ordinary Java Object ,簡單平常的JAVA物件)
  • POJO普通的Java類別,其實他就是JavaBean。
參考資料
 維基百科


CGI(Common Gateway Interface) 公共閘道介面
  • 簡單說是一個介面,提供Server的服務給其他應用程式操作,一般常指伺服器提供給瀏覽器操作的介面程式。

Java Servlet,(改良的CGI)
  • 因傳統CGI效能不彰,因此JAVA設計Servlet用來替代傳統CGI的後端服務。
參考資料
維基百科Servlet


JSP (Java Server Pages),Servlet的模板
  • 因Servlet處理HTML頁面標籤上不理想,因此出現了JSP。
  • 其實JSP也是一種Servlet。

Servlet、JSP運行容器
  • Java Servlet、JSP運行需要容器,這個容器有如JBoss、Tomcat、EJB。

JDBC (Java Database Connectivity),資料庫基礎連接
  • JDBC是Java規定的存取資料庫API。
  • 目前大部分主流資料庫都有資源JDBC,如MySQL。
  • 使用JDBC存取MySQL需要MySQL的驅動,可以從MySQL官網取得,這個驅動是一個.jar檔。
DBCP (Database Connection Pool),連接池
  • 一種資料庫效能的處理方式。

DDL (Data Definition Language),資料庫定義語言
  • 涉及資料庫結構、表結構的SQL敘述。
  • 如 CREATE DATABSE、CREATE TABLE、DROP DATABASE、DROP TABLE。
DML (Data Manufacture Language)資料庫操作語言
  • 涉及資料操作的SQL敘述。
  • 如 INSERT、DELETE、UPDATE、SELECT。

DAO (DataBase Access Object),資料庫操作物件
  • 一個Class,內容只負責資料庫操作。
DAO層
  • 泛指資料庫物件操作的層次。


B/S模式 (Browser/Server Model)
  • 指的是不需要在用戶端安裝單機程式,操作都是透由瀏覽器執行的應用程式。

C/S模式(Clinet/Server Model)
  • 須在用戶端安裝RCP程式,透由該PCP程式與遠端Server交換資料,如QQ、MSN。
RCP (Rich Client Program)
  • 豐富用戶端程式,又稱桌面程式(Desk Program)。
I18N (Internationalization) 資源國際化
  • 因字首字母為I,開頭I與結尾N之間共18字母,因此又稱I18N。
L10N (Localization)資源在地化
  • 字首L與結尾N之間共10字母,因此稱l10N。

PureMVC文件閱讀整理

PureMVC閱讀整理一


PureMVC結構
  • PureMVC的目標是幫助你將應用程式分成三層架構,即Model、View、Control。 
  • Model、View、Control為獨體類,由這三者構成核心層。 
  • Facade為獨體類,負責實體化Model、View、Cntrol,且是核心層溝通的接口,簡單的說Facade負責注入相依性,在Facade注入相依有助於核心層彼此間鬆綁。

2011年3月11日 星期五

SQL閱讀整理五

ALTER 改寫歷史
想對資料表修正,而又不想刪除資料 !
  • 使用ALTER TABLE
ALTER 相關使用項目
  • CHANGE:修改現存資料欄的名稱型別
  • MODIFY修改現存資料欄的型別位置
  • ADD:新增一各欄位。
  • DROP:移除某欄。
  • RENAME TO:改變表名稱。
ALTER 與 關鍵字 FIRST、LAST、AFTER、BEFORE、SECOND、THIRD...

原始表結構
contacts_info
nameagebirthdaygendercity

使用FIRST
ALTER TABLE contacts_info
ADD COLUMN address VARCHAR(50) FIRST;

contacts_info
addressnameagebirthdaygendercity

使用LAST
ALTER TABLE contacts_info
ADD COLUMN address VARCHAR(50) LAST;
contacts_info
nameagebirthdaygendercityaddress

使用AFTER
ALTER TABLE contacts_info
ADD COLUMN address VARCHAR(50)
AFTER birthday;
contacts_info
nameagebirthdayaddressgendercity

使用BEFORE
ALTER TABLE contacts_info
ADD COLUMN address VARCHAR(50)
BEFORE brithday;
contacts_info
nameageaddressbirthdaygendercity

使用SECOND
ALTER TABLE contacts_info
ADD COLUMN address VARCHAR(50) SECOND;
contacts_info
nameaddressagebirthdaygendercity


更改資料表名稱
ALTER TABLE contacts_info
RENAME TO contacts_lis;


ALTER與CHANGE
//原始範例表結構
drinks_lis
numbernametypeprice

ALTER TABLE drinks_list
CHANGE COLUMN number drink_id INT NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (drink_id);

drinks_lis
drink_idnametypeprice

  • CHANGE 可以修改資料欄的"名稱"與"型別"。
  • 把資料改成另種型別有可能會遺失資料。
  • 欲改變的資料型別與原始型別不相容,則指令不會執行。


只改型別
drinks_lis
drink_idnametypeprice

ALTER TABLE drinks_list
CHANGE COLUMN type VARCHAR(50);


只改欄位名稱
drinks_lis
drink_idnametypeprice

ALTER TABLE drinks_list
CHANGE COLUMN name drinkName;

drinks_lis
drink_iddrinkNametypeprice


修改兩各欄位
drinks_lis
drink_idnametypeprice

ALTER TABLE drinks_list
CHANGE COLUMN name drinkName VARCHAR(20),
CHANGE COLUMN type drinkType VARCHAR(20);
dirnks_lis
drink_iddrinkNamedrinkTypeprice


DROP COLUMN 刪除欄位
dirnks_lis
drink_iddrinkNamedrinkTypepricecost

ALTER TABLE drinks_lis
DROP COLUMN cost;

dirnks_lis
drink_iddrinkNamedrinkTypeprice


一些便利的字串函式
  • RIGHT(欄位 , 字元數量) FROM tableName;
  • SUBSTRING_INDEX(欄位, ',' , 1) FROM tableName;
example:
SELECT RIGHT(location , 2) FROM my_contacts;
  • RIGHT,表示從右側開始
  • 函數中第一各參數表,目標欄位。
  • 函數中第二各參數表,右側開始選擇的字元數量。
example:
SELECT SUBSTRING_INDEX(location, ',', 1)FROM my_contacts;

這段敘述是說從location欄中,取回第一個豆號前所有的字串。
  • SUBSTRING_INDEX,找尋由第二參數中所給的符號開始,然後取出符號前面的所有東西。
  • 第二各參數,要找尋的符號。
  • 第三各參數,表該欄位中第幾各符號開始。

SQL閱讀整理四

第四章 聰明的資料表
具有唯一性資料的表

//不具唯一性的資料表
employees_info
nameagegendercity
江小魚20台北
林瀨瑤20東京
古小三22台北
古小三22台北
塵在天26高雄
表4-1

  • 表4-1出現同名的古小三,這兩筆資料無法辨識,簡單的說該表沒有唯一性。
  • 修正方式加入一各欄位使其每一筆資料都具有唯一性。
//修正成具有唯一性的資料表
employees_info
employeeIDnameagegendercity
00001江小魚20台北
00002林瀨瑤20東京
00003古小三22台北
00004古小三22台北
00005塵在天26高雄
  • 如此加上employeeID之後我們可以辨識出兩筆古小三是不同筆的資料。
而加入的這一個欄位,就是Primary Key。


Primary Key的規則
  • 主鍵不可為NULL
  • 插入新紀錄時,也必須指定主鍵值
  • 必須簡潔
  • 主鍵值不可修改
什麼是Primary Key? 
  • 資料表中的某各資料欄位,它可以獨一無二分辨每一筆紀錄
第一階正規劃的步驟之一
  • 具有Primary Key的資料表,是資料表第一階正規化的步驟之一。

關於正規劃將於後面章節將會談論


查詢已存在資料表當時建立的SQL敘述碼
  • SHOW CREATE TABLE yourTable;

建立一各不具Primary Key的資料表
CREATE TABLE employees_A
(
  name varchar(20) NOT NULL,
  age INT default NULL,
  gender char(4),
  city varchar(20)
)

建立一各具有Primary Key的資料表
CREATE TABLE employees_B
(
  employeeID INT NOT NULL,
  name varchar(20) NOT NULL,
  age INT default NULL,
  gender char(4),
  city varchar(20),
  PRIMARY KEY (employeeID)
)
  • PRIMARY KEY (columnName),用於指定Primary Key。
建立一各具有具有Primary Key並且會自動增加的資料表
CREATE TABLE employees_C
(
  employeeID INT NOT NULL AUTO_INCREMENT,
  name varchar(20) NOT NULL,
  age INT default NULL,
  gender char(4),
  city varchar(20),
  PRIMARY KEY (employeeID)
)
  • AUTO_INCREMENT,讓employeeIDy自動遞增數值。

其實不用重新建立具有Primary Key的資料表,可以使用ALTER來修正
ALTER TABLE employees_A
ADD COLUMN employeeID INT NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (employeeID );
  • FIRST要求將該欄位安至於最前面。
  • ADD COLUMN,用於加入一各欄位。
  • ADD PRIMARY KEY,設定主鍵。