2007年3月12日 星期一

有名 花名錄

這裡是私人招待所,怎麼可以沒有美媚呢…

特別從有名大站請來熱門相簿中的美媚來助興…

啊不是啦,是助陣啦…

點選



的相片後就可以,以大圖來顯示喔…




再點一下圖片就可以看到其它的美媚囉…

2007年3月9日 星期五

PHP食譜-Yahoo 字典 Plugin

[菜 名]

Yahoo 字典 Plugin


[材 料]
PHP 4.2+ , 5+
jQuery 1.1.2
PHPRPC 3.0 beta
Yahoo 字典

[做法]

抓取Yahoo 字典的資料再以PHP這把菜刀加以料理,料理過程如下…

function yahoo_dict($search){
$web=file_get_contents('http://tw.dictionary.yahoo.com/search?ei=UTF-8&p='.$search);//從這網址去抓取網頁
preg_match('/
(.*)
/s',$web,$match);//取出要的部份
if($match[0]!=''){
$str=strip_tags($match[0]);//去掉html tag
$str=str_replace("\n\n\n",'',$str);//將多餘的換行取代為空白
return nl2br(preg_replace('/您是不是還想知道....*/s', '', $str));//再將您是不是還想知道....去掉,最後將\n換為

}
return '';//如果找不到資料就傳回空字串
}

將不要的骨頭拿掉後,加上PHPRPC後,就是一道美味的Server端的菜了。

2.再來要擺上些裝飾的東西,佈局如下:

<input id="q" name="q" type="text"><input id="search" name="submit" value="查尋" type="button"><img id="waiting" src="http://www.morgan724.com/drupal/indicator.gif" style="display: none;" />
<p id="dict_p"></p>
<input id="clear_rs" name="clear_rs" value="清除" style="display: none;" align="right" type="button">

控制火侯:

$(document).ready(function(){
$('#search').click(
function(){
$('#waiting').show();
$('#clear_rs').trigger("click");
yahoo_dict();
}
);
$('#clear_rs').click(
function(){
$(this).hide('slow');
$('#dict_p').hide('slow');
}
);
}
)
var rpc = new PHPRPC_Client();
rpc.useService('http://www.morgan724.com/drupal/yahoo_dict.php');
function yahoo_dict(){
if (rpc.ready) {
rpc.yahoo_dict($('#q').val(),function(result){
$('#dict_p,#clear_rs').show('slow');
$('#waiting').hide();
$('#dict_p').html(result);
})
}else {
alert('rpc not ready!');
}
}

效果如BawBaw私人招待所左側的Yahoo 天氣,請大家試試看吧。

[貼 心 叮 嚀]
加上快取機制會更美味喔,才不會讓客人等太久。

完整範例:
yahoo_dict.zip

PHP食譜-Yahoo 天氣 Plugin

[菜 名]

Yahoo 天氣 Plugin



[材 料]

PHP 4.2+ , 5+
jQuery 1.1.2
PHPRPC 3.0 beta
Yahoo 天氣

[做 法]

1.抓取Yahoo 天氣的資料再以PHP這把菜刀加以料理,料理過程如下…

function yahoo_weather($location){
$web=file_get_contents('http://tw.weather.yahoo.com/today.html');//今日天氣的網址
preg_match_all('/(.*?)<\/td>.*?(.*?).*?(.*?)<\/td>.*?(.*?)<\/span><\/td>.*?(.*?)<\/span><\/td>/s',$web,$match);//取出要的資料

$array=array();
foreach($match[1] as $key=>$va){
$array[$va]['pic']=$match[2][$key];
$array[$va]['weather']=$match[3][$key];
$array[$va]['heat']=$match[4][$key];
$array[$va]['rain']=$match[5][$key];
$array[$va]['location']=$va;
}
return $array[$location];//傳回所要查詢的陣列
}

將不要的魚刺拿掉後,淋上PHPRPC美乃滋後,就是一道美味的Server端的菜了。


2.再來要擺上些裝飾的東西,佈局如下:


<select id="location" name="location"><option value="">請選擇要查詢的地區</option><option value="台北市">台北市</option><option value="基隆北海岸">基隆北海岸</option><option value="台北地區">台北地區</option><option value="桃園地區">桃園地區</option><option value="新竹地區">新竹地區</option><option value="苗栗地區">苗栗地區</option><option value="台中地區">台中地區</option><option value="彰化地區">彰化地區</option><option value="南投地區">南投地區</option><option value="雲林地區">雲林地區</option><option value="嘉義地區">嘉義地區</option><option value="台南地區">台南地區</option><option value="高雄市">高雄市</option><option value="高雄地區">高雄地區</option><option value="屏東地區">屏東地區</option><option value="恆春半島">恆春半島</option><option value="宜蘭地區">宜蘭地區</option><option value="花蓮地區">花蓮地區</option><option value="台東地區">台東地區</option><option value="澎湖地區">澎湖地區</option><option value="金門地區">金門地區</option><option value="馬祖地區">馬祖地區</option></select><img id="lo_waiting" style="display: none;" src="http://www.morgan724.com/drupal/indicator.gif" />
<img id="lo_waiting" style="display: none;" src="http://www.morgan724.com/drupal/indicator.gif" />
<div id="weather_p">
<span id="lo_location"></span><span id="lo_pic"></span>

天氣預測:<span id="lo_weather"></span>

氣溫:<span id="lo_heat"></span>

降雨機率:<span id="lo_rain"></span>
</div>

控制火侯:

$(document).ready(function(){
chang_location=$('#location').val();
if(chang_location!=''){
yahoo_weather(chang_location);
}else{
$('#weather_p').hide();
}
$('#location').change(
function(){
$('#lo_waiting').show();
yahoo_weather($(this).val());
}
);

}
)
var rpc = new PHPRPC_Client();
rpc.useService('http://www.morgan724.com/drupal/yahoo_dict.php');
function yahoo_weather(chang_location){
$('#weather_p').hide('slow');
if(chang_location==''){
$('#weather_p,#lo_waiting').hide();
return;
}
if (rpc.ready) {
rpc.yahoo_weather($('#location').val(),function(result){
for(var key in result){
$('#lo_'+key).html(result[key]);
$('#weather_p').show();
$('#lo_waiting').hide();
}
})
}else {
window.setTimeout('yahoo_weather("'+chang_location+'");', 200);
}
}

效果如BawBaw私人招待所左側的Yahoo 天氣,請大家試試看吧。

[貼 心 叮 嚀]
加上快取機制會更美味喔,才不會讓客人等太久。

完整範例:
yahoo_weather.zip

2007年3月7日 星期三

TR-069開發成熟度

參加了兩次插拔大會(第三屆TR-069 Plugfest在美國,第一屆亞州TR-069 Plugfest在台灣)

PD-128的測試項目為說明,各家廠商的實作狀況大致完成了基本的TR-069RPC測試。

PD-128完成度:

大都還停留在測試基本的TR-069RPC測試 (Test5-Test16)

Real World 測試: All (17-27).一般都來不及做測試。

Test1~Test4中目前只有Test1測試完畢。

Test2中的Certificate Client Authentication很少廠商有做測試且通過。

Test3、Test4尚未有人測試。

發現很多廠商在PD-128的測試環境可以完全相容,但是一測試到真實環境時候就不能正常運作。

不要以為測過了PD-128就沒問題了,還是須要一個一個參數去做試驗。就會發現一些莫明奇妙的問題發生。

其中世界上四大晶片商以Broadcom的成熟度為高。
國內的晶片廠商也很掙氣(只有測試過PD-128所定義的流程,尚未測試真實環境的測試)
以PD-128上的測試來說皆以完成100%測試。

PD-128開宗明義

PD-128定義:
PD-128為 DSL Forum所定義的做為TR-069插拔大會互通測試的文件。定義27項CPE和ACS的測試流程。

建議的測試流程如下:

  1. 基本的協定測試: Subset (1).

  2. TR-069 協定測試: All (5-16).

  3. 基本的協定測試: Subset (2-4).

  4. Real World 測試: All (17-27).

測試的標準如下:
TR-069
TR-104(VoIP)
TR-111
WT-135(STB)

測試項目:

Underlying Protocol Tests

Test 1 HTTP Session Initiation
CPE-initiated - Basic Client Authentication
CPE-initiated - Digest Client Authentication
CPE-initiated - Session Cookie Validation
ACS-initiated
Test 2 SLL Encryption Test
Basic Client Authentication
Digest Client Authentication
Certificate Client Authentication
Test 3 DHCP Vendor Option Test
DHCP Vendor Option Test
Test 4 STUN NAT Traversal Test
STUN NAT Traversal Test

TR-069 Protocol Tests

Test 5 CWMP Session Initation
CWMP Session Initation
Test 6 Connection Request
TCP Connection Request
UDP Connection Request
Test 7 Get RPC Methods
ACS to CPE
CPE to ACS
Test 8 Firmware Download
No ACS Specified Delay
ACS Specified Delay
No ACS Specified Delay - SSL encrypted
ACS Specified Delay - SSL encrypted
Test 9 Get Parameter Names
Complete Path
Partial Path - Next Level True
Partial Path - Next Level False
Invalid Path
Entire Object Model
Test 10 Get Parameter Values
Simple Complete Path
Multiple Complete Paths
Partial Path
Complete and Partial Paths
Entire Object Model
Test 11 Set Parameter Values
Simple
Complex
Invalid
Test 12 Add Object
Add Object
Test 13 Delete Object
Delete Object
Test 14 Reboot
Reboot
Test 15 Get Attribute Values
Get Attribute Values
Multiple Complete Paths
Partial Path
Complete and Partial Paths
Test 16 Set Attribute Values
Active Notifications
Passive Notifications - Complete Path
Passive Notifications - Partial Path
Passive Notifications - Complete and Partial Path
Disabling Notifications

Real World Tests

Test 17 Modify Port Mapping Table Entry
Modify Port Mapping Table Entry
Test 18 Wireless Configuration
Wireless Configuration
Test 19 WAN Connection Creation
WAN Connection Creation
Test 20 WAN Connection Deletion
WAN Connection Deletion
Test 21 VoIP SIP Endpoint Configuration
VoIP SIP Endpoint Configuration
Test 22 IP Ping Test
IP Ping Test
Test 23 Gateway/Device Association
Gateway/Device Association
Test 24 Multiple Session Test
Multiple Session Test
Test 25 Session Persistance Test
Session Persistance Test
Test 26 Session Retry Tests
HTTP Error
CWMP Fault During Session Initiation
CWMP Fault During Established Session
Event Delivery - Retry
Event Delivery - Retained Across Reboot
Test 27 Device Profile Test
Device Profile Test


好多的測試項目啊…
一個測試流程只有2小時,大部份的廠商都測試不完呀~(不過在好用的測試工具下,還是可以輕鬆的完成)

目前廠商測試還停留在TR-069的範圍,其中尚未看到WT-135的CPE參與測試。

2007年3月6日 星期二

TR-069開宗明義

TR-069定義:
TR-069為 DSL Forum所定義的CPE WAN端的管理協定CPE WAN Management Protocol(CWMP),透過網路遠端管理客戶端設備的協定。
TR-069為Device和Auto Configuration Servers (ACS)之間共同的溝通方式,使用SOAP透過HTTP傳輸,包函了一個安全的自動設定和控制等管理的完整架構。ACS是一種裝置,可以管理終端設備、trouble shoot、設定、昇級等功能。

Protocol stack









TR-069的目的:
服務提供商(
Service Providers)現在可以使用一個共同的管理平台,通過網路使用TR-069的CPE及ACS完成廣大及覆雜的自動設定、管理所有客戶設備(像是modems, routers, gateways, Set-top box, paddles, VoIP-phones等等…)


TR-069 End-to-End Architecture

主要的功能:
自動設定及動態的服務更新。
軟體及韌體的管理。
狀態及效能的監控。
故障診斷。

TR-069相關延伸協定:

TR-098-Internet Gateway Device Data Model for TR-069(之前定義在TR-069的參數,現今全部移至TR-098)
TR-104-Provisioning Parameters for VoIP CPE(VoIP的參數)
TR-106-Data Model Template for TR-069 Enabled Devices
TR-110-Reference Models for VoIP Configurations in the DSL Home
TR-111-Remote. Management of Home Networking Devices
其餘WT階段文件不在此篇提出。