雖然知道delegate
但要說使用時機..還真不知什麼時候用
委派有用的時機:
* 當單一方法被呼叫。
* 當一個類別可能想要有該方法規格的多個實作。
* 當想要允許使用靜態方法來實作規格。
* 當想要事件形式的設計模式 (如需詳細資訊,請參閱事件教學課程)。
* 當呼叫者不需要知道或取得定義方法所在的物件。
* 當實作的提供者只想要將規格的實作「提供」給少數選取的元件。
* 當想要易於撰寫。
介面有用的時機:
* 當規格定義了一組會被呼叫的相關方法。
* 當類別通常只實作規格一次。
* 當介面的呼叫者想要轉換成或從介面型別上取得其他介面或類別。
Reference
委派教學課程
星期四, 2月 25, 2010
ajax跨Domain安全性問題
利用jQuery做ajax時
發現跨Domain時 會出現ajax error
查了一下才發現原來跨domain會有安全性的問題
AJAX的限制
References
1.AJAX的安全性問題[筆記]
2.jQuery.ajax() 的 callback
3.Remote JSON - JSONP
發現跨Domain時 會出現ajax error
查了一下才發現原來跨domain會有安全性的問題
AJAX的限制
- 不能存取用戶端的任何檔案。
ajax.open('GET', 'file://c:\\\\hello.html', ture); //錯誤 - 不能存取不同來源位置的檔案 也就是網域(Domain)要相同
更多解釋
- .client.html設定
$.ajax({ url: 'http://192.168.1.228/~kevyu/Testing/test.php', dataType: 'jsonp', //1.將dataType定為jsonp jsonp: 'getAjaxData', data: { callback: 'getAjaxData'}, //2.定義callback function error: function(xhr) { alert('Ajax request 發生錯誤'); } }); //3.這裡就是callback function getAjaxData(data){ //alert(data); //alert(data.name); }
新做法
簡單多了,連callback function都不用設定
最後加上callback=?,就這麼簡單,連jsonp都不用設
$.ajax('returnJSON.php?callback=?', function(json) { //... });
- server.php設定
還需server端配合,呼叫callback的function及回傳的parameter
- 回字串
<?php echo $_GET['callback']."('kevyu');"; //依callback的function名回傳kevyu字串 ?>
- 回json
<?php $data = array("name"=>"kevyu", "gender"=>"male" ); $json=json_encode($data ); //編成json格式 echo $_GET['callback']."({$json});"; //因為是json,所以要加"{ }" ?>
- 回字串
References
1.AJAX的安全性問題[筆記]
2.jQuery.ajax() 的 callback
3.Remote JSON - JSONP
星期一, 2月 22, 2010
檢查網路連線
You can check for a network connection in .NET 2.0 using GetIsNetworkAvailable():
To monitor changes in IP address or changes in network availability use the events from the NetworkChange class:
Reference
How do I check for a network connection
System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()
To monitor changes in IP address or changes in network availability use the events from the NetworkChange class:
System.Net.NetworkInformation.NetworkChange.NetworkAvailabilityChanged
System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged
Reference
How do I check for a network connection
星期四, 2月 11, 2010
第一隻ROR
星期三, 2月 10, 2010
利用scaffold做資料庫應用
天啊.遇到太多問題了
因為rails升到2.0有些語法不一樣
看書寫不出來,上網查才知道語法有不同了
而rails db:migrate又需與database溝通
所以事前也得先設定好...
練習第一個saffold做資料庫 還沒感受到 就先覺得好辛苦
不寫下來將來換個環境一定又忘了...
不過設定完... 還真的挺開心的 沒寫到任何sql所有欄位的新增、修改都做好了...
人說「頭過身就過」 希望接下來的路順一點...
建立專案
1.設定資料庫
問題:解決rails的sqlite3.dll錯誤
沒有sqlite的dll是做呼叫sqlite的function...
問題:缺mysql
看範示的console畫面還想說~
哇~~跟mysql都整合在一起來
原來還是得自己先建立mysql環境
下載安裝mysql吧
2.scaffold
設定好資料庫就是來用scaffold
因為升級到rails 2的關係 所以下的參數會不一樣
Rails 2.0 scaffolding step by step.
3.rake db:migrate
這一步會遇到以下的問題
問題:syntax error on line xxx
一般來說是database.yml的設定出錯
冒號後面一定要有一個空白,否則會出錯!!
adapter: mysql
...
username:root <= 冒號後要空隔,不然會說argument錯誤
MySql問題
1.權限問題
解法:當然就要開放權限啦,另外注意不能用root
2.Commands out of sync; you can't run this command now: SHOW TABLES
-Mysql::Error: Commands out of sync; you can't run this command now: SHOW TABLES解决方案
-Rails2.1.0出现的问题undefined method `each' for
解法:從mysql/bin/目錄下找出libmySQL.dll,再copy到ruby/bin
*有時一樣會失敗,請注意抓的libmySQL.dll是跟MySQL server版本相同
我就抓了5.1.43的dll,連5.0.45... 問題一樣...硬是從5.0.45找出dll才pass
其他參考
第一個資料庫應用(with scaffold)--Ruby on Rails 完全新手手冊
因為rails升到2.0有些語法不一樣
看書寫不出來,上網查才知道語法有不同了
而rails db:migrate又需與database溝通
所以事前也得先設定好...
練習第一個saffold做資料庫 還沒感受到 就先覺得好辛苦
不寫下來將來換個環境一定又忘了...
不過設定完... 還真的挺開心的 沒寫到任何sql所有欄位的新增、修改都做好了...
人說「頭過身就過」 希望接下來的路順一點...
建立專案
rails demo -d mysql //指定db可順便改好database.yml
1.設定資料庫
問題:解決rails的sqlite3.dll錯誤
沒有sqlite的dll是做呼叫sqlite的function...
問題:缺mysql
看範示的console畫面還想說~
哇~~跟mysql都整合在一起來
原來還是得自己先建立mysql環境
下載安裝mysql吧
2.scaffold
設定好資料庫就是來用scaffold
因為升級到rails 2的關係 所以下的參數會不一樣
1.0:ruby script/generate scaffold Movie Admin //直接指向Admin
2.0:ruby script/generate scaffold Movie title:string description:text one_sheet_url:string
Rails 2.0 scaffolding step by step.
3.rake db:migrate
這一步會遇到以下的問題
問題:syntax error on line xxx
一般來說是database.yml的設定出錯
冒號後面一定要有一個空白,否則會出錯!!
adapter: mysql
...
username:root <= 冒號後要空隔,不然會說argument錯誤
MySql問題
1.權限問題
解法:當然就要開放權限啦,另外注意不能用root
2.Commands out of sync; you can't run this command now: SHOW TABLES
-Mysql::Error: Commands out of sync; you can't run this command now: SHOW TABLES解决方案
-Rails2.1.0出现的问题undefined method `each' for
解法:從mysql/bin/目錄下找出libmySQL.dll,再copy到ruby/bin
*有時一樣會失敗,請注意抓的libmySQL.dll是跟MySQL server版本相同
我就抓了5.1.43的dll,連5.0.45... 問題一樣...硬是從5.0.45找出dll才pass
其他參考
第一個資料庫應用(with scaffold)--Ruby on Rails 完全新手手冊
星期日, 2月 07, 2010
來吧... Ruby
躲不掉的...
快讀吧...
先來名詞解釋
不多說
直接看別人教學
實際做一次就會了
1.Ruby on Rails(Windows),從安裝到 Helloworld 2009/02 update
先簡單的做出Helooworld,不過重點在下一篇的scaffold
2.第一個資料庫應用(with scaffold)--Ruby on Rails 完全新手手冊
用scaffold才會感覺到ROR的方便,直接看Agile Web Development with Rails做範例感受更深,不過版本要看對...不然開發會很想打人
實際開發
遇到太多問題了...
自己也寫了一篇 第一隻ROR
討論
從 Django 看 Ruby on Rails 成功的原因
--------------------------------------
Reference
教學資源
安裝、應用
1.Ruby on Rails (ROR)入門第一站,InstantRails安裝圖文教學
2.在 Ubuntu 下部屬 RoR 環境
教學
1.ROR 的新手建議書單 from xdite
2.Ruby & Rails on Rails 進階書單
3.幾本不錯的Ruby和Ruby On Rails電子書下載
4.Top 13 Ruby on Rails Presentations
有書.... 就有電子書....
有電子書就...不用花錢買了... XD ...
Aptana IDE
官網:radrails
1.Get Rolling with Ruby on Rails in RadRails //標題還挺有趣的
2.5分鐘RadRails錄影教學
社群討論區,Blog
Ruby Taiwan 台灣的 Ruby 社群。
RailsFun!! Rails 討論區
Blog
Lighty RoR 介紹 Ruby,Ruby on Rails,JRuby
xdite
快讀吧...
先來名詞解釋
- Ruby
- 一種程式語言,如同C,Java
- 所以不是只能寫網頁
- 物件導向,類似Perl, Smalltalk, Python, Lisp
- Rails-Web application framework
- 用Ruby寫的
- MVC架構
- 利用convention替代掉大部份的設定
- Active Record
- Rails的ORM名稱
- 與一般ORM不同的是Active Record利用convention替代掉大部份的設定
- Grady's Ruby教學 拆成好幾篇,筆記做的不錯
- Ruby 程式語言和 Rails 簡介 //投影片 前面介紹Ruby,後面介紹Rails
- 15 分鐘內寫出一個部落格網站 先看官網demo... 增強學習的興趣
- Rails Tutorial Part 1
- Rails Tutorial Part 2
不多說
直接看別人教學
實際做一次就會了
1.Ruby on Rails(Windows),從安裝到 Helloworld 2009/02 update
先簡單的做出Helooworld,不過重點在下一篇的scaffold
2.第一個資料庫應用(with scaffold)--Ruby on Rails 完全新手手冊
用scaffold才會感覺到ROR的方便,直接看Agile Web Development with Rails做範例感受更深,不過版本要看對...不然開發會很想打人
實際開發
遇到太多問題了...
自己也寫了一篇 第一隻ROR
討論
從 Django 看 Ruby on Rails 成功的原因
--------------------------------------
Reference
教學資源
安裝、應用
1.Ruby on Rails (ROR)入門第一站,InstantRails安裝圖文教學
2.在 Ubuntu 下部屬 RoR 環境
教學
1.ROR 的新手建議書單 from xdite
2.Ruby & Rails on Rails 進階書單
3.幾本不錯的Ruby和Ruby On Rails電子書下載
4.Top 13 Ruby on Rails Presentations
有書.... 就有電子書....
有電子書就...不用花錢買了... XD ...
Aptana IDE
官網:radrails
1.Get Rolling with Ruby on Rails in RadRails //標題還挺有趣的
2.5分鐘RadRails錄影教學
社群討論區,Blog
Ruby Taiwan 台灣的 Ruby 社群。
RailsFun!! Rails 討論區
Blog
Lighty RoR 介紹 Ruby,Ruby on Rails,JRuby
xdite
星期六, 2月 06, 2010
編輯Windows右鍵選單
常要開「裝置管理員」看USB有沒有連結
用regedit在「我的電腦」右鍵選單增加「裝置管理員」
出現「MMC無法開啟」...
"銀"了很久 一直沒處理
今天總算狠下心google找到解決方法了
@="裝置管理員"
Reference:
用Reg在「我的電腦」右鍵增加「裝置管理員」、「服務」會出現MMC無法開啟的看這裡
用regedit在「我的電腦」右鍵選單增加「裝置管理員」
出現「MMC無法開啟」...
"銀"了很久 一直沒處理
今天總算狠下心google找到解決方法了
@="裝置管理員"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\DevMgr\command]
"mmc.exe %%systemroot%%\\SYSTEM32\\devmgmt.msc"
改成"mmc.exe devmgmt.msc"
Reference:
用Reg在「我的電腦」右鍵增加「裝置管理員」、「服務」會出現MMC無法開啟的看這裡
星期五, 2月 05, 2010
InstallShield中 變更資料夾路徑的方法
OS:XP
InstallShield版本:2010
建立專案時
在Installation Design/Application Data/Files And Folders
將要封裝的Source資料夾"拉進"Destination資料夾
=>Sourece的路徑為D:\test (將test資料夾全部安裝到使用者的電腦)
後來想移動test資料夾至D:\Project\test,
因此Soure的路徑就需要更動,但找不到任何設定可以更動
惟一想到的方法就是刪掉舊的資料夾 再重新拉進
只是在Installation Design/Organization/Components 裡
已經為每個不同的資料夾取命了...
如此一來便得再重新命名...
後來跟原廠詢問
原來所有的變數路徑都儲放在Media / Path 下
也就是說在這裡就可以設定路徑了...
InstallShield版本:2010
建立專案時
在Installation Design/Application Data/Files And Folders
將要封裝的Source資料夾"拉進"Destination資料夾
=>Sourece的路徑為D:\test (將test資料夾全部安裝到使用者的電腦)
後來想移動test資料夾至D:\Project\test,
因此Soure的路徑就需要更動,但找不到任何設定可以更動
惟一想到的方法就是刪掉舊的資料夾 再重新拉進
只是在Installation Design/Organization/Components 裡
已經為每個不同的資料夾取命了...
如此一來便得再重新命名...
後來跟原廠詢問
原來所有的變數路徑都儲放在Media / Path 下
也就是說在這裡就可以設定路徑了...
Sql字串有特殊符號
當字串裡有單引號如"It's good",或其他特殊符號時
Sql命令都會掛掉...
解決方法
1.在特殊符號前加入 \
"It's good"=>"It\'s good"
*透過mysqlconnector會發生錯誤...改用法2就沒問題了
2.遇單引號可再一個單引號
"It's good"=>"It''s good"
php可用直接呼叫
1.mysql_escape_string
2.mysql_real_escape_string
3.addslashes
至於差別...有看沒有懂...
Sql命令都會掛掉...
解決方法
1.在特殊符號前加入 \
"It's good"=>"It\'s good"
*透過mysqlconnector會發生錯誤...改用法2就沒問題了
2.遇單引號可再一個單引號
"It's good"=>"It''s good"
php可用直接呼叫
1.mysql_escape_string
2.mysql_real_escape_string
3.addslashes
至於差別...有看沒有懂...
訂閱:
文章 (Atom)