Wednesday, February 25, 2009

noknok.in.th API #05 Direct Message

มาต่อกันด้วยการส่งตรง Message ถึงเพื่อนที่เราต้องการ
URL: http://api.noknok.sanook.com/rest/direct_message_new
Format: xml
Method(s): POST
Parameters:
* authToken (required:GET)
* message (required:POST)
* message_to (required:POST)
Return:
* Sending status (true or false)

ก็เอา code เดิมมาแก้ไข form นิดหน่อย

$base = 'http://api.noknok.sanook.com/rest/auth';
$query_string = 'username=komkid&password=******';

$url = "$base?$query_string";

$xml = file_get_contents($url);
$dom = new DOMDocument('1.0', 'UTF-8');
if ($dom->loadXML($xml) === false) {
die('Parsing failed');
}

$res = xml_to_result($dom);
if($res["stat"] == "ok"){
$query_string = 'authToken='.$res["authToken"];
$str= " Send Direct Message
";
$str.= "
";
$str.= "message :
";
$str.= "send to :
";
$str.= "";
$str.= "
";
echo $str;
}


ได้ form ดังรูป
noknok_api_direct_message_form

แล้วก็ได้ผลดังนี้

noknok_api_direct_message_ok

Tuesday, February 24, 2009

noknok.in.th API #04 Update Status

มาต่อกันด้วย การ Update Status ของเราด้วย


new
URL: http://api.noknok.sanook.com/rest/message_new
Format: XML
Method(s): GET, POST
Parameters:
* authToken (required:GET)
* message (required:POST)
Return
* Sending message data

(ผ่านไปไม่กี่วัน URL เปลี่ยนซะแล้ว จาก http://api.noknok.in.th/rest/ เป็น http://api.noknok.sanook.com/rest)

ซึ่งคราวนี้จะต้องส่งแบบ POST เพราะฉะันั้นก็ต้องสร้าง FORM ไว้ส่ง
ก็เอาแบบง่าย ๆ นะครับ
$base = 'http://api.noknok.sanook.com/rest/auth';
$query_string = 'username=komkid&password=******';

$url = $base.'?'.$query_string;

$xml = file_get_contents($url);
$dom = new DOMDocument('1.0', 'UTF-8');
if ($dom->loadXML($xml) === false) {
die('Parsing failed');
}

$res = xml_to_result($dom);
if($res[stat] == 'ok'){
$query_string = 'authToken='.$res[authToken];
$str=<< Update Status

message :



FORM;
echo $str;
}


noknok_update_status
ได้ผลดังรูป
noknok_update_status_ok

อ้อ อย่าลืมตั้งค่า Encoding เป็น UTF8 ด้วยนะครับ
Introduction
API Protocol
* Representational_State_Transfer(REST)
* HTTP Requests: Post and GET
Data Format
* XML, *Json, *RSS,*ATOM
Encoding
* UTF8

Thursday, February 19, 2009

noknok.in.th API #03 Profile

มาต่อกันด้วย Profile ครับท่าน
URL: http://api.noknok.in.th/rest/profile
Format: xml
Method(s): GET
Parameters:
* authToken (required)
Return:
* User's profile data

เริ่มด้วยการลองคลิกเข้าไปแบบตอนที่ Authen แต่คราวนี้กลับได้ผลดังรูป
noknok_api_profile_fail

แสดงว่าต้องเริ่มสื่อสารกันเป็นจริงเป็นจังแล้วล่ะ
ตามคู่มือที่เค้าบอกก็คือ format ของการสื่อสารกัน ก็คือ xml
ดังนั้นก็เลยต้องเลือกวิธีที่จะใช้ ซึ่งผมเลือกใช้ DOM ก็จัดการหา function มาใช้งานสำหรับดึงค่าจาก xml มาใช้


function xml_to_result($dom) {
$root = $dom->firstChild;
foreach($root->attributes as $attr) $res[$attr->name] = $attr->value;
$node = $root->firstChild;
$i = 0;
while($node) {
switch($node->nodeName) {
case 'Result':
$subnode = $node->firstChild;
while($subnode) {
$subnodes = $subnode->childNodes;
foreach($subnodes as $n) {
if($n->hasChildNodes()) {
foreach($n->childNodes as $cn) $res[$i][$subnode->nodeName][$n->nodeName]=trim($cn->nodeValue);
} else $res[$i][$subnode->nodeName]=trim($n->nodeValue);
}
$subnode = $subnode->nextSibling;
}
break;
default:
$res[$node->nodeName] = trim($node->nodeValue);
$i--;
break;
}
$i++;
$node = $node->nextSibling;
}
return $res;
}



จากนั้นก็ทำการ authen ก่อน เพราะเจ้า profile นี่มันต้องการ authToken ซึ่งจะได้มาจากเจ้า auth อีกที ดังนี้

$base = 'http://api.noknok.in.th/rest/auth';
$query_string = 'username=komkid&password=******';

$url = "$base?$query_string";

$xml = file_get_contents($url);
echo $xml;


ซึ่งก็ได้ผลดังนี้
noknok_api_profile_ok

แล้วก็ตามด้วยการขอดู profile ด้วย code

$base = 'http://api.noknok.in.th/rest/auth';
$query_string = 'username=komkid&password=******';

$url = "$base?$query_string";

$xml = file_get_contents($url);
$dom = new DOMDocument('1.0', 'UTF-8');
if ($dom->loadXML($xml) === false) {
die('Parsing failed');
}

$res = xml_to_result($dom);
if($res["stat"] == "ok"){
$base = 'http://api.noknok.in.th/rest/profile';
$query_string = 'authToken='.$res["authToken"];

$url = "$base?$query_string";
$xml = file_get_contents($url);
echo $xml;
}


ซึ่งก็ได้ผลดังรูปครับ
noknok_api_profile_result

หรือจะจัดรูปแบบในการแสดงผลซะหน่อยด้วย code


$base = 'http://api.noknok.in.th/rest/auth';
$query_string = 'username=komkid&password=******';

$url = "$base?$query_string";

$xml = file_get_contents($url);
$dom = new DOMDocument('1.0', 'UTF-8');
if ($dom->loadXML($xml) === false) {
die('Parsing failed');
}

$res = xml_to_result($dom);
if($res["stat"] == "ok"){
$base = 'http://api.noknok.in.th/rest/profile';
$query_string = 'authToken='.$res["authToken"];

$url = "$base?$query_string";
$xml = file_get_contents($url);

$dom = new DOMDocument('1.0', 'UTF-8');
if ($dom->loadXML($xml) === false) {
die('Parsing failed');
}

$res = xml_to_result($dom);
echo "name : ".$res["name"]."
";
echo "story: ".$res["story"]."
";
echo "homepage : ".$res["homepage"]."
";
echo "image : ";
}


ก็ได้ผลดังรูป
noknok_api_profile_show

noknok.in.th API #02 Authen

คราวนี้มาลองใช้งาน API ของ noknok.in.th กันบ้าง
เริ่มด้วยสิ่งที่จำเป็นต้องใช้ในครั้งนี้ (เฉพาะวิธีของผม) ก็คือ
1.Account ของ noknok.in.th
2.Server ที่ใช้งาน PHP และ DOM ได้ (ความจริงไม่ต้อง DOM ก็ได้ครับ แต่บังเอิญผมเริ่มด้วยเจ้านี่ ก็ขอแสดงด้วยเจ้า DOM นี่แหล่ะครับ)

เริ่มกันเลยนะครับ ตามที่ noknok.in.th เข้ามีคำแนะนำให้ที่ http://en.wikipedia.org/wiki/User:Noknokdev (API ของเค้าให้ใช้ผ่าน REST protocol ซึ่งมี link ให้ไปศึกษากันเองอยู่แล้ว)

อันดับแรกก็ลองงานกลุ่มของ Account Methods เริ่มด้วย
Authen
URL: http://api.noknok.in.th/rest/auth
Format: xml
Method(s): GET, POST
Parameters:
* username (required)
* password (required)
Return:
* authToken


ลองคลิกเข้าไปดูก็จะได้ popup สำหรับ login
noknok_api_auth1

และถ้าป้อน username และ password ถูกต้องก็จะได้ผล ดังรูป
noknok_api_auth_ok

noknok.in.th API #01 Start

micro blogging ที่ดังที่สุดตอนนี้ก็คงเป็น twitter แต่ในไทยเองก็มี noknok ที่หลายคนบอกว่าเป็น twitter clone
ประโยชน์หรือไอเดียในการใช้งาน ก็
1.Follow กันเองกับแฟน ใช้ส่ง sms หากันฟรี
2.ทำในลักษณะ groupmail สมัครแล้วก็แจก password กัน แล้วก็ update ข่าวสารกันทั้งก๊วน
3.โปรโมทเว็บ update web ทีก็ส่งข่าวสารให้พวกสาวกได้รับรู้
4.ฯลฯ ใครมีไอเดียในการใช้งานอื่น ๆ ก็บอกกันบ้างเด้อ

วิธีสมัครก็ง่ายแสนง่าย ตั้ง username > เลือกรหัสผ่าน > ใส่ email
จากนั้นก็เลือกผู้ที่เราจะติดตามข่าวสาร เลือกเอาว่าจะรับข้อความทางโทรศัพท์มั้ย
ขั้นตอนก็ง่าย ๆ คงไม่ต้องอธิบาย (เด็ก ๆ ก็ทำเป็น)

เอาไว้มาดูกันที่ตอนต่อไปเรื่องการใช้งาน API ดีกว่า

Tuesday, February 17, 2009

ใต้ร่มกาสาวพัตร

สุดสัปดาห์ที่ผ่านมามีโอกาสได้ไปร่วมงานบวชของเพื่อนรุ่นน้องที่ทำงานที่จังหวัดมุกดาหาร
แล้วก็ได้สะุดุดใจกับคำที่หลายคนมักจะใช้กัน
ใต้ร่มกาสาวพัตร


ก็เลยถือเป็นโอกาสหาความรู้ซะเลย ได้ความตามนี้ครับ
กาสาวพัตร คือผ้าที่ย้อมด้วยรสฝาดอันเกิดแต่ต้นไม้สีเหลืองหม่นเป็นผ้าสําหรับนักบวชใช้
เดิมทีมีเพียง ๒ ผืน คือ อุตตราสงค์ (ผ้าห่ม) และอันตรวาสก (ผ้านุ่ง) เท่านั้น
ต่อมาทรงอนุญาตให้ใช้ผ้าทาบซึ่งเรียกว่า สังฆาฏิ อีกผืนหนึ่งรวมเป็น ๓ ผืน เรียกว่า ไตรจีวร
คราวเสด็จออกผนวชนั้น ฆฏิการพรหมเป็นผู้นํามาถวายพร้อมกับบาตร


จาก keyword ฆฏิการพรหม ก็ได้ความต่อไป ดังนี้
ทรงตัดพระโมฬีถือเพศบรรชิตที่ริมฝั่งแม่น้ำอโนมานที
พอจวนเวลาใกล้รุ่งปัจจุสมัย ก็บรรลุถึงฝั่งแม่น้ำอโนมานที ก็ทรงขับม้ากัณฐกะกระโจนข้ามแม่น้ำไปโดยสวัสดี เมื่อทรงทราบว่าพ้นเขตบุรีกบิลพัสดุ์แล้ว ก็เสด็จลงจากหลังอัสวราช ประทับนั่งเหนือหาดทรายอันขาวสะอาด รับสั่งแก่นายฉันนะว่า เราจักบรรพชาถือเพศเป็นบรรพชิตในที่นี้ ท่านจงเอาเครื่องประดับของอาตมากับม้าสินธพกลับพระนครเถิด ครั้นตรัสแล้วก็ทรงเปลื้องเครื่องประดับสำหรับขัตติยราชทั้งหมดมอบให้แก่นาย ฉันนะ ตั้งพระทัยปรารถนาจะทรงบรรพชา จึงทรงดำริว่า เกศาของอาตมานี้ ไม่สมควรแก่สมณเพศ จึงทรงจับพระโมลีด้วยพระหัตถ์ซ้าย พระหัตถ์ขวาทรงพระขรรค์ ตัดพระโมลีให้ขาดออกเรียบร้อยด้วยพระองค์เอง แล้วทรงจับพระโมลีนั้นขว้างขึ้นไปบนอากาศ ทรงอธิษฐานว่า ถ้าอาตมาจะได้ตรัสรู้สัมโพธิญาณโดยแท้แล้ว ขอจุฬาโมลีนี้ จงตั้งอยู่ในอากาศ อย่าได้ตกลงมา ทว่าจะมิได้บรรลุสิ่งซึ่งต้องประสงค์ ก็จงตกลงมายังพื้นพสุธา ในทันใดนั้น จุฬาโมฬีก็มิได้ตกลงมา คงลอยอยู่ในอากาศ จึงสมเด็จพระอัมรินทราธิราชก็เอาผอบแก้วมารองรับไว้ แล้วนำไปบรรจุยังจุฬามณีเจดีย์สถาน ในเทวโลก
ขณะนั้น ฆฏิการพรหม ก็น้อมนำไตรจีวรและบาตร มาจากพรหมโลกเข้าไปถวาย พระสิทธัตถะทรงรับผ้าไตรจีวรกาสาวพัสตร์และบาตรแล้ว ก็ทรงนุ่งห่มผ้ากาสาวพัสตร์ อันเป็นธงชัยของพระอรหันต์ ทรงอธิษฐานเพศเป็นบรรพชิต อุดมเพศ แล้วทรงมอบผ้าทรงเมื่อยังเป็นคฤหัสถ์เพศทั้งคู่ ให้แก่ฆฏิการพรหม ๆ ก็น้อมรับผ้าคู่นั้นไปบรรจุไว้ในทุสสเจดีย์ ในพรหมโลกสถาน.


แล้วก็มีเสียงลือเสียงเล่าอ้างสนับสนุนว่า
ตอนต้นกัป จะมีดอกบัวบังเกิดขึ้น ซึ่งเป็นสัญลักษณ์บอกให้รู้ว่า กัปที่ตั้งใหม่นี้จะมีพระสัมมาสัมพุทธเจ้าบังเกิดขึ้นกี่พระองค์ และภายในดอกบัวแต่ละดอกจะมีอัฐบริขารอยู่ แล้วพรหมจะอัญเชิญเอาอัฐบริขารไปเก็บไว้ที่พรหมโลกก่อน เมื่อพระโพธิสัตว์ออกบวชแล้ว พรหมก็จะลงมาถวายเครื่องอัฐบริขารดังกล่าว ให้พระโพธิสัตว์ถือเพศเป็นบรรพชิต แล้วออกแสวงหาหนทางตรัสรู้


เป็นเหตุให้สงสัยต่อไปอีกว่า กัปป์ (ชั่วกัปป์ชั่วกัลป์) นั้นยาวนานเท่าใด ซึ่งก็ค้นหาแล้วได้ความว่า


1 โยชน์ = 16 กิโลเมตร
400 เส้น = 1 โยชน์
20 วา = 1 เส้น
1 กัป = ตั้งแต่โลกเกิด จนถึงโลกดับ 1 ครั้ง
อสงไขย = 10 ยกกำลัง 140 กัปป์
คำว่า กัปป์ กับ คำว่า กัลป์ เป็นคำที่มีความหมายเดียวกัน คำนึงเป็น บาลี คำนึงเป็น สันสกฤต

สมมุติมีกล่องใบหนึ่ง กว้าง 100 โยชน์ ยาว 100โยชน์ และ สูง 100 โยชน์ ในเวลา 100 ปี ให้เอาเมล็ดผักกาด 1 เมล็ด ใส่ลงไปในกล่องนั้น ทำอย่างนี้จนเมล็ดผักกาดนั้นเต็มเสมอเรียบปากกล่อง นั้นละจึงเท่ากับ 1 กัป

(บางตำรากล่าวว่า กว้าง 1 โยชน์ ยาว 1 โยชน์ สูง 1 โยชน์) วิเคราะห์คำนวณ 1 โยชน์ = 16 กิโลเมตร ดังนั้นกล่องใบนี้มีปริมาตร = 1600X1600X1600 = 4,096,000,000 ลูกบาตกิโลเมตร ประมานว่า เมล็ดผักกาด มีขนาด .5 มิลลิเมตร 1 กิโลเมตรเทียบเป็นมิลลิเมตรได้ดังนี้ 10X100X1000 = 1,000,000 มิลลิเมตรจะได้ 1 กิโลเมตรใช้เมล็ดผักกาดเรียงกัน = (1,000,000)/0.5 = 2,000,000 เมล็ด

ดังนั้น 1600 กิโลเมตรใช้เมล็ดผักกาดเรียงกัน = 1600X2,000,000 = 3,200,000,000 เมล็ด ถ้าเป็นปริมาตร คือ กว้าง x ยาว x สูง
ต้องใช้เมล็ดผักกาดทั้งหมด คือ
3,200,000,000X3,200,000,000X3,200,000,000 = 32,768,000,000,000,000,000,000,000,000 เมล็ด

ใน 100 ปี ใส่เมล็ดผักเพียง 1 เมล็ด ดังนั้นต้องใช้เวลาทั้งหมดคือ
32,768,000,000,000,000,000,000,000,000X100 = 3,276,800,000,000,000,000,000,000,000,000 ปี

จึงได้เวลา 1 กัปป์ ประมาณ สามล้านสองแสนเจ็ดหมื่นหกพันแปดร้อยล้านล้านล้านล้าน ปีประมาณ 3.3 X 10 ยกกำลัง 30 ปี

1 อสงไขยมีกี่กัปนั้นเป็นจำนวนที่แน่นอน คือ 1 ตามด้วยเลข 0 จำนวน 140 ตัว หรือ 1 X 10 ยกกำลัง140 กัปป์

กัปป์ที่เกี่ยวข้องกับพระพุทธศาสนามีอยู่ ๒ ประการ คือ
๑) สุญญกัปป์ หมายถึง กัปป์ที่ไม่มีพระสัมมาสัมพุทธเจ้า พระปัจเจกพุทธเจ้า และพระเจ้าจักรพรรดิ
๒) อสุญญกัปป์ หมายถึง กัปป์ที่มีพระสัมมาสัมพุทธเจ้า พระปัจเจกพุทธเจ้า และพระเจ้าจักรพรรดิ อุบัติขึ้น

อสุญญกัปป์มี ๕ อย่างคือ
๑) สารกัปป์ ได้แก่ มหากัปป์(= ๔ อสงไขยกัปป์)ที่มีพระพุทธเจ้าอุบัติขึ้น ๑ พระองค์
๒) มัณฑกัปป์ ได้แก่ มหากัปป์(= ๔ อสงไขยกัปป์)ที่มีพระพุทธเจ้าอุบัติขึ้น ๒ พระองค์
๓) วรกัปป์ ได้แก่ มหากัปป์(= ๔ อสงไขยกัปป์)ที่มีพระพุทธเจ้าอุบัติขึ้น ๓ พระองค์
๔) สารมัณฑกัปป์ ได้แก่ มหากัปป์(= ๔ อสงไขยกัปป์)ที่มีพระพุทธเจ้าอุบัติขึ้น ๔ พระองค์
๕) ภัททกัปป์ ได้แก่ มหากัปป์(= ๔ อสงไขยกัปป์)ที่มีพระพุทธเจ้าอุบัติขึ้น ๕ พระองค์

ภัทรกัปป์ ( คือกัปป์ปัจจุบัน )
มีพระพุทธเจ้ามาตรัสรู้แล้ว ๔ พระองค์คือ
- พระพุทธกกุสนธะ
- พระพุทธโกนาคมน์
- พระพุทธกัสสปะ
- พระพุทธโคดม ( สมเด็จพระศาสดาองค์ปัจจุบัน )
- และจะมี พระพุทธเมตไตรย มาตรัสรู้ในอนาคต
เมื่อสิ้นมหากัปป์นี้แล้ว คัมภีร์อนาคตวงศ์กล่าวไว้ว่าอสุญญกัปป์ต่อไปจะเป็น มัณฑกัปป์ มีพระพุทธเจ้า ๒ พระองค์คือ
พระรามโพธิสัตว์ และพระเจ้าปเสนทิโกศล(พระธรรมราช)


ทั้งนี้ทั้งนั้น ก็อย่าลืมที่ พระพุทธองค์ทรงสอนไว้ว่า
อย่าเชื่อผู้อื่น อย่าเชื่อตัวเอง อย่าเชื่อเพราะเป็นพ่อแม่ เป็นครูอาจารย์ แต่ให้เชื่อในสิ่งที่ไตร่ตรองพิจารณาหาเหตุผลอย่างรอบคอบแล้ว

Tuesday, February 03, 2009

Google Gears

เพิ่งจะลอง load Google Gears มาลงเพื่อใช้งานในเมนู Turbo ของ Wordpress 2.7 มาเมื่อไม่นานมานี้ ซึ่งก็ประทับใจในความรวดเร็วเป็นอย่างมาก
ล่าสุดก็ได้เพิ่งรับข่าว (ซึ่งตอนแรกคิดว่า ข่าวลือ) ว่า Gmail จะเปิดให้ใช้บริการแบบ Offline อีก โอ้ว แม่เจ้า ต้องลองซะแล้ว

และแล้วใน Labs ของ Account ผมก็มีให้เปิดใช้แล้ว (ไชโย)
offline-gmail

ยังไงก็ขอลองก่อนล่ะ แต่ inbox ขนาด 5GB ของผมนี่เวลาใช้ Offline จะเกิดผลยังไงน้อ

Thai Language in Google Translate

และแล้วก็มาถึงกับ ภาษาไทย ใน Google Translate
google-translate-thai-01

google-translate-thai-02

คงจะเป็น beta test เพราะเปิดที่ทำงานใช้ได้ (net ของ TOT) แต่พอมาใช้ที่บ้านกลับไม่มีแฮะ (net ของ TRUE)

เล่นกับ phpbb3 #02 LDAP Authentication

หลังจากติดตั้งเสร็จแล้ว เพื่อความสะดวกในการจัดการกับ User ก็จัดการให้ใช้ LDAP ในการติดต่อไป Authenticate กับ Active Directory ซึ่งเป็น Windows 2003 โดยเข้าไปในส่วนของ Administration Control Panel ในส่วนของ Authentication แล้วก็ตั้งค่า ดังรูป
phpbb3_ldap_authen

* Select an authentication method: เลือก LDAP
* LDAP server name: ระบุ LDAP Server เช่น server ชื่อ ldap โดเมนชื่อ sci.com ก็ระบุเป็น ldap.sci.com
* LDAP server port: ค่า defalut คือ 389 ซึ่ง Active Directory ก็ใช้ port นี้อยู่แล้ว
* LDAP base dn: ถ้า โดเมนชื่อ sci.com ก็ใส่เป็น DC=SCI,DC=COM
* LDAP uid:สำหรับ Active Directory ใส่เป็น sAMAccountName
* LDAP user dn:ป้อน User สำหรับให้ phpbb ใช้ในการ login เพื่อตรวจสอบการ login ของ User อื่น ๆ ในรูปแบบของ ldap เช่น จะใช้ User ชื่อ Admin ก็ระบุเป็น CN=Admin,CN=Users,DC=SCI,DC=COM

แถมท้ายด้วยโปรแกรมสำหรับใช้ติดต่อกับ Active Directory เพื่อเรียกดูข้อมูลแบบ LDAP ครับ
1.อันแรกก็ LDAP Admin ครับ Open Source
Ldap Admin is free Win32 administration tool for LDAP directory management. This application lets you browse, search, modify, create and delete objects on LDAP server. It also supports more complex operations such as directory copy and move between remote servers and extends the common edit functions to support specific object types (such as groups and accounts).

ldap_admin

2.Softerra LDAP Administrator 2008.1 ตัวนี้ให้ทดลองใช้ 30 วันหรือ run 250 ครั้ง
Softerra LDAP Administrator is a premier Explorer-like LDAP client designed for Windows. If you are a professional software developer or system administrator, Softerra LDAP Administrator will let you view and analyze LDAP directories easily and effectively.

Softerra LDAP Administrator presents a convenient intuitive interface, a unique entry creation wizard, full support of all of the most popular LDAPv3 servers and many other powerful features. In process of Softerra LDAP Administrator development we paid special attention to making sure the application works fast with large amounts of data, which is crucial when trying to come out with a viable e-business solution.

ldap_administrator

3.LDAP Browser ตัวนี้เป็นรุ่นน้องของ LDAP Administrator เจ้าเดียวกันครับ แต่ตัวนี้ให้ใช้ฟรี แน่นอนว่า function การทำงานต้องลดลง แต่ก็เอาน่า ของฟรีนี่นา
ldap_browser