เท่าที่ดูเห็นมีเว็บที่ให้บริการดาวน์โหลดวีดีโอจาก youtube มีกันเยอะแล้วก็เลยอยากลองเขียนตัวดาวน์โหลดวีดีโอที่เป็นของไทยๆเราบ้าง จากที่ดูเห็นเจ้าที่ดังๆก็จะมี Mthai Clipmass ก็เลยจัดการเขียนซะ ผลที่ได้ก็จะเป็นดังนี้
download video จาก Mthai Clipmass Youtube 27 December 2008 at 1:33 am by tumaji
+ วิธีการดูแบงค์ปลอม By tumaji 24 December 2008 at 12:14 am and have 1 Comment
+ Computer BenQ รุ่นใหม่ By tumaji 17 December 2008 at 1:33 pm and have 1 Comment
วันนี้ผมไปเจอ Computer BenQ รุ่นใหม่ที่ไม่เคยเห็นมาก่อนรู้สึกว่าจะเป็น Limited Edition เพราะทำออกมาตัวเดียว
สำหรับใครที่สนใจเอาไปทำบ้าง ทางรู้จัดทำไม่สงวนลิขสิทธิ์
+ พุ่งล้มแบบเทพ By tumaji 09 December 2008 at 2:22 pm and have No Comments
พอดีไปเจอคลิปตัวนี้มาเห็นแล้วขำดีเลยเอามาฝากเหล่าบรรดาสาวกขี้พุ่ง เพราะว่านี้คือการ พุ่งล้มแบบเทพ
+ พระจันทร์ยังยิ้มได้ By tumaji 01 December 2008 at 10:08 pm and have No Comments
������� วันนี้วันที่ 1 ธันวาคม 2551�มีสิ่งที่ไม่ปกติเกิดขึ้น นั้นก็คือพระจันทร์ยิ้ม เป็นเรื่องที่ผมพึ่งจะเคยเจอจึงคิดว่ามันแปลก ถ้าเจอแบบนี้ทุกวันคงไม่แปลกจริงเปล่า ที่ว่าพระจันทร์ยิ้มก็เพราะว่ามีดาวสองดวงอยู่บนพระจันทร์จึงทำให้ภาพที่เห็นเป็นหน้าคนยิ้ม บังเอิญว่ากล้องมือถือของผม (Nokia 6120 ไม่ได้โฆษณาน่ะเห่อๆ)มันถ่ายภาพตอนกลางคืนไม่ค่อยดีประกอบกับมือไม่นิ่งภาพที่ออกมาเลยไม่สวยเท่าไหร่ แต่อย่างน้อยก็เก็บเป็น video ได้ด้วยเพราะภาพมันดูดีกว่า (ภาพทั้งหมดถ่ายหน้า Big C มหาสารคาม)
�
�
�
จริงๆแล้วมันมีเหตุทำเกิดแบบนี้เพราะแสงอาทิตย์ที่ส่องมายังโลก สะท้อนไปยังดวงจันทร์ทำให้ดวงจันทร์ขึ้น 3 ค่ำที่ต้องเห็นเป็นเสี้ยว� กับเห็น เป็นเต็มดวงสามารถถ่ายภาพได้ด้วยกล้องถ่ายภาพทุกชนิด�โดยปรากฏการณ์ที่ว่านี้ เรียกว่า�”เอิร์ธ ชายน์”�เอิร์ธ ชายน์�สามารถมองได้ด้วยตาเปล่า� ตั้งแต่เวลา 17.40 น. ที่ดวงอาทิตย์เริ่มตกดินจนถึงเวลา 20.30 น.� โดยจะเห็นดาวพฤหัสบดี� และดาวศุกร์ ซึ่งเป็นดาวเคราะห์ที่สว่างสุกใสนานๆครั้งที่ดาวทั้งสองจะมาอยู่ ใกล้กัน และมีดวงจันทร์มาอยู่ใกล้เคียงด้วย ทำให้น่าติดตามชมเป็นอย่างยิ่งซึ่ง ในคืนวันที่ 1 ธ.ค. นี้ จะมีปรากฏการณ์ ที่สวยงามบนท้องฟ้าทางทิศตะวันตกค่อนไปทางใต้ช่วงหัวค่ำเห็นได้ด้วยตาเปล่า� หลังดวงอาทิตย์ลับขอบฟ้าไปแล้วคือ� �เห็นดาวศุกร์อยู่เคียงกับดาวพฤหัสบดี มองใกล้กันเพียง 2 องศาในระยะบนท้องฟ้า� และจะมีดวงจันทร์ขึ้น 3ค่ำ อยู่ ข้างล่างดาวทั้ง สองดวง ห่างดาว เพียง 2 องศา.ในระยะท้องฟ้าเช่นกัน� โดยดวงจันทร์เสี้ยวขึ้น 3 ค่ำ จะปรากฏการณ์เอิร์ธ ชายน์ (Earth shine) ให้เห็นด้วย โดยเมื่อมองขึ้นไปแล้วปรากฏการณ์นี้ มองภาพของดาวคู่และดวงจันทร์บนท้องฟ้าจะดูเหมือนหน้าคนกำลังยิ้ม
+ สงครามคูเสด สงครามแห่งศรัทธาและความเชื่อ By tumaji 28 November 2008 at 11:46 pm and have No Comments
เท่าที่ดูสถานการณ์ของบ้านเราในตอนนี้ทำให้นึกถึงหนังเรื่อง Kingdom Of Heaven โดยเนื้อหาของหนังแสดงถึงการต่อสู้ของศาสนาคริส และอิสลามหรือที่รู้จักกันชื่อ สงครามคูเสด
สงครามคูเสด (The Crusades) [1] หรือสงครามไม้กางเขนมีระยะถึง 195 ปี ตั้งแต่ปี 1096-1291ในช่วงยุคกลางโดยชาวคริสเตียนตะวันตก ได้ยกทัพเพื่อเข้ายึดครองกรุงเยรูซาเล็ม (บัยตุ้ลมักดิส) ถึง 8 ครั้งด้วยกันสงครามครูเสดรวมเวลาจริง แลัวยืดยาวกว่า 300ปี เริ่มต้นจากคริสต์ศตวรรษที่ 11-14 ตั้งแต่ครั้งราชวงศ์อับบาซียะห์ช่วงปลาย ซึ่งโลกอิสลามแบ่งเป็นรัฐเล็กรัฐน้อย เป็นต้นว่า ซัลจูกเติร์กในเอเชียน้อย ฟาติมียะห์ในอียิปต์ และแค้วนชามดำเนินเรื่อยมาจนถึงสมัยพระราชวงศ์อุษมานียะห์แห่งตุรกี คร่าชีวิตผู้คนไปเป็นจำนวนเรือนล้าน ตลอดจนช่วงระยะเวลาอันยาวนานของสงครามครูเสด ได้เกิดวีรบุรุษคนสำคัญของโลกอิสลามหลายต่อหลายคนเป็นต้นว่า นูรุดดีน, ซังกีย์,ซอลาฮุดดีน อัลอัยยูบีย์ ที่โลกตะวันตกรู้จักในนาม สลาดิน,อัลมาลิก อัซซอฮิรฺ บัยบรัสที่1ในฝ่ายของคริสเตียน ผู้รุกรานมีกษัตริย์สำคัญหลายพระองค์เป็นผู้นำทัพ อทิเช่น หลุยส์ที่7 กษัตริย์แห่งฝรั่งเศส, เฟอร์เดอริก บาบาโรสซ่า แห่งเยอรมัน,ริชาร์ด ใจสิงห์ แห่งอังกฤษ, และหรุยส์ที่9 แห่งฝรั่งเศส
สถานการณ์ของบ้านเราตอนนี้ก็ไม่ต่างไปจากสงครามคูเสดเพราะมันเป็นความขัดแย้งทางความคิด ความเชื่อ และความศรัทธาเหตุเพราะเราไม่รู้ว่าอะไรจริงและอะไรไม่จริงจึงทำให้เราต้องอยู่ในสถานการณ์แบบนี้ และในความคิดของผมเชื่อว่าต่อให้คนที่เค้าสนับสนุนทำผิดเค้าก็ยังจะเชื่อและศรัทธาในตัวของผู้นำของเค้าต่อไป และคงจะไปว่าเค้าไม่ได้เพราะมันเป็นความรู้สึกของเค้าและเราก็ไม่สามารถที่จะบังคับและความคุมความคิดของเค้าได้ คงได้แต่หวังว่าเราจะจบลงด้วยดีโดยไม่ต้องสูญเสียมากมายเหมือนอย่างสงครามคูเสด
ที่มา ข้อมูลสงครามคูเสด
[1] http://learners.in.th/blog/musliam/142316
[2] http://qwer.dek-d.com/board/view.php?id=869840
+ แก้ปัญหาการย้ายสิ่งของ ด้วย PHP By tumaji 23 November 2008 at 2:35 am and have No Comments
พอดีว่าผมไปเจอโจทย์ในการแก้ปัญหาด้วย PHP & MySQL โดยโจทย์มีดังนี้
เกี่ยวกับเรื่อง ฐานข้อมูล กับ ตาราง
ตอนนี้มีตารางข้อมูล ที่ได้มาโดยการ select
itemlist_id item name quantity capacity user_id slot use
5 ข้าวโพด 2 15 1 1
32 ขี้ไก่ 9 50 1 1
76 ปลากระโทงแทง 6 5 1 2
79 ปลาฉลาม 2 1 1 2
168 เกลือ 1 50 1 1
*quantity คือ จำนวนของฐานของมูลขอลแต่ละ item name ได้มาจากการ count
capacity คือ จำนวนความจุ ที่ตั้งใจจะนำไปแบ่งแต่ละcell
slot use = ceil(capacity/quantity)
โดยจะนำข้อมูลทั้งหมดไปใส่ในตารางที่ผ่านการ loop
สิ่งที่ตั้งใจทำก็คือ จะแบ่งช่องของสิ่งของเหล่านี้ โดยให้ค่า quantity ไม่เกิน capacity ในแต่ละช่อง
ถ้าสำเร็จผลที่ได้รับคือ
ข้าวโพด2 ขี้ไก่9 ปลาฯ5 ปลาฯ1 ปลาฉลาม1 ปลาฉลาม1 เกลือ1
พอดีว่าผมขี้เกียจสร้าง database เพื่อแก้ปัญหาเลยขอประยุกต์ด้วย Array สำหรับใครที่ต้องการจะเอาไปใช้กับ database อื่นๆก็ดัดแปลงดูแล้วกันครับ
< ?
$data[0] = array('itemlist_id'=>5,'item_name'=>'ข้าวโพด','quantity'=>2,'capacity'=>15,'user_id'=>1,'slot_use'=>1) ;
$data[1] = array('itemlist_id'=>32,'item_name'=>'ขี้ไก่','quantity'=>9,'capacity'=>50,'user_id'=>1,'slot_use'=>1) ;
$data[2] = array('itemlist_id'=>76,'item_name'=>'ปลากระโทงแทง','quantity'=>6,'capacity'=>5,'user_id'=>1,'slot_use'=>2) ;
$data[3] = array('itemlist_id'=>79,'item_name'=>'ปลาฉลาม','quantity'=>2,'capacity'=>1,'user_id'=>1,'slot_use'=>2) ;
$data[4] = array('itemlist_id'=>168,'item_name'=>'เกลือ','quantity'=>1,'capacity'=>50,'user_id'=>1,'slot_use'=>1) ;
if(is_array($data))
{
// read from data I
foreach($data as $row)
{
while($row['quantity'] > 0)
{
$quantity = ($row['quantity'] > $row['capacity'] ? $row['capacity'] : $row['quantity'] ) ;
$row['quantity'] -= $quantity ;
// insert to data II
$data2[] = array('itemlist_id'=>$row['itemlist_id'],'item_name'=>$row['item_name'],'quantity'=>$quantity,'capacity'=>$row['capacity'],'user_id'=>$row['user_id'],'slot_use'=>1) ;
echo 'itemlist_id=>',$row['itemlist_id'],', item_name=>',$row['item_name'],', quantity=>',$quantity,', capacity=>',$row['capacity'],', user_id=>',$row['user_id'],', slot_use=>',1 , "";
}
}
}
?>
+ ต่างเส้นทางปลายทางเดียวกัน By tumaji 10 November 2008 at 12:11 am and have No Comments
ขึ้นชื่อเรื่องยังกับละครหลังข่าวอ่านจะทำให้หลายคนเข้าใจไปว่าเข้าเว็บผิด ช้าก่อนยังไม่ผิดที่ตังชื่อแบบนี้เพราะมันมีที่มาและก็เกี่ยวกับ PHP ด้วย
จากเมื่อวันที่ 29-31 ต.ค. 2551 ผมได้ไปเป็นวิทยากรอบรม Basic PHP ให้กับหน่วยงานแห่งหนึ่งและในวันแรกของการอบรมได้ตังโจทย์ให้ผู้อบรมได้ลองเขียนโปรแกรมง่ายๆโดยมีคำสั่งดังนี้
1. ให้สร้าง Array เก็บชื่อเดือน แล้วทำการแสดงผลด้วย Loop for โดยกำหนดเงื่อนไขให้ เดือนที่ 7 แสดงอักษรสีน้ำเงิน
2. ให้สร้าง Array เก็บชื่อวัน แล้วทำการแสดงผลด้วย Loop foreach โดยกำหนดเงื่อนให้แสดงสีตัวอักษรตามวัน เช่น วันจันทร์แสดงตัวอักษรสีเหลือง
ซึ่งจริงๆแล้วมันก็ไม่น่าจะมีปัญหาอะไรข้อแรกก็จะเขียนออกมาได้ประมาณนี้
< ?
$month =array('มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม') ;
for($i=0,$max=count($month);$i<$max ;$i++)
{
if($i == 6)
{
echo '<font color=blue>',$month[$i] , '<br />' ;
}
else
{
echo $month[$i] , "<br>" ;
}
}
?>
และข้อ 2 ก็จะได้แบบนี้
< ?
$day = array('วันอาทิตย์','วันจันทร์','วันอังคาร','วันพุธ','วันพฤหัสบดี','วันศุกร์','วันเสาร์') ;
foreach($day as $index => $value)
{
switch($index)
{
case 0 :
$color = 'red' ;
break ;
case 1 :
$color = 'yellow' ;
break ;
case 2 :
$color = '#FFCCFF' ;
break ;
case 3 :
$color = '#7FFF7F' ;
break ;
case 4 :
$color = '#FF9900' ;
break ;
case 5 :
$color = '#3333FF' ;
break ;
default :
$color = '#993399' ;
break ;
}
echo '<font color=',$color,'>',$value,'</font><br>' ;
}
แต่ปัญหามันเกิดเพราะผมดันลืมสอนเรื่อง if และ switch เอาหล่ะสิแบบนี้จะทำยังไงถ้าเราไม่มี if กับ switch ใช้
แนวทางการแก้ปัญหาในข้อแรกง่ายๆก็ใส่สีใน Array เลยก็สิ้นเรื่อง แบบนี้ง่ายและทำงานได้เร็วกว่าเพราะไม่ต้องมาเช็คเงื่อนไข โดยจะสามารถเขียน code ได้แบบนี้
< ?
$month =array('มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน','<font color=blue>กรกฎาคม</font>','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม') ;
for($i=0,$max=count($month);$i< $max ;$i++)
{
echo $month[$i] ;
}
?>
เป็นไงหล่ะทำงานได้เหมือนกันตรงตามคำสั่งด้วย แล้วถ้าเป็นข้อ 2 หล่ะจะทำเหมือนกันมั้ย! ไม่แน่นอนเพราะมันจะดูขี้เหล่ไปผมใช้วิธีสร้าง Array อีกตัวในการเก็บสีของวันและจัดให้มันมี Index ตรงกับ Index ของวันเท่านี้เราก็สามารถแสดงสีตามวันได้โดยไม่ต้องใช้ switch และสิ่งที่ตามมาโปรแกรมจะทำงานได้เร็วกว่าการใช้ switch อีกด้วยและยังเขียนสั้นกว่าเยอะ
< ?
$day = array('วันอาทิตย์','วันจันทร์','วันอังคาร','วันพุธ','วันพฤหัสบดี','วันศุกร์','วันเสาร์') ;
$daycolor = array('red','yellow','#FFCCFF','#7FFF7F','#FF9900','#3333FF','#993399') ;
foreach($day as $index => $value)
{
echo '<font color=',$daycolor[$index],'>',$value,'</font><br>' ;
}
?>
สิ่งที่จะสื่อให้เห็นในบทความนี้คือ ในการเขียนโปรแกรมเราสามารถเขียนได้หลายวิธีเพื่อให้ได้สิ่งที่ต้องการทำงาน และก็จะขึ้นอยู่กับพื้นฐานของแต่ละคนว่าจะเลือกวิธีการไหน ถ้าคนที่มีประสบการณ์และมีพื้นฐานที่ดีจะเลือกเขียนแบบกระชับดูง่ายและที่สำคัญทำงานได้เร็วแล้วกินทรัพยากรน้อยโดยเฉพาะการเขียน Web Application ดังนั้นไม่ต้องแปลกใจเลยว่าทำไมสมัยเรียนเวลาส่งงานอาจารย์ถึงโดนจับได้ว่า copy code มาส่ง
+ ตัวแปรแบบ dynamic (Dynamic Variables) By tumaji 17 October 2008 at 2:13 am and have No Comments
����������� เนื่องจากผมได้เจอคำถามจากเพื่อนสมาชิกใน board thaiseoboard.com ตั้งคำถามว่า
// read POST variables if present
foreach ($_POST as $name => $value) {�
������ $$name = $value;
}
Script บรรทัดนี้หมายความว่ายังไง ก็เลยเป็นเหตุได้เขียนบทความนี้
������������ ที่เป็นคำถามเพราะว่าเจอตัวแปรที่มี $$ นำหน้า ซึ่งปกติทั่วไปจะเป็น $ อันเดียว ลักษณะที่เป็น $$ �เป็นการสร้างตัวแปรแบบ dynamic �เช่น
$name = 'test' ;
$$name จะหมายถึง $test
การรับค่า $$name = 1 ;
ก็แสดงว่า $test มีค่าเท่ากับ 1
อันนี้น่าจะพอเข้าใจกันแล้ว ทีนี้มาดูจุดมุ่งหมายของ Script นี้
// read POST variables if present
foreach ($_POST as $name => $value) {� // name เป็น index ของ array
������ $$name = $value; // ส่งค่าให้กับตัวแปร
}
�
จาก script เป็นการแก้ปัญหาการ config register_globals = Off ใน php.ini �ซึ่งค่าจาก form จะอยู่ในรูป $_POST['test'] ,$_GET['test'] ไม่สามารถ เอา $test มาใช้ได้เลยทันที แต่ถ้า register_globals = On จะสามารถใช้ $test ได้เลย
ด้วยเหตุนี้ถ้าไม่สามารถแก้ php.ini ได้(กรณีเช่าโฮสอยู่) ก็มาแก้ที่โปรแกรมโดยการวนลูป� $_POST ซึ่งเป็น array แล้วส่งค่าให้กับตัวแปรตามค่า index ของมันซึ่งค่า index ของมันก็คือชื่อตัวแปรนั้นเอง
ตัวอย่างเช่นใน form มีการส่งค่า username=var1 และ password=var2 มา� ในการรับค่าจาก form จะได้เป็น $_POST[username'] และ $_POST[password'] �โดยในรูปแบบ array จะเป็น (username’=>var1 ,’password’=>var2)
ปล. register_globals = Off� แนะนำให้ใช้เพราะเหตุผลทางด้าน security ครับ อีกตัว magic_quotes_gpc = On ป้องกัน Sql injection ครับ
+ PHP 5 กับปัญหาการแสดงเวลา By tumaji 26 September 2008 at 12:46 am and have No Comments
����������� ผมเขียน PHP มาหลายปีพึ่งมามีปัญหากับ function date ที่แสดงเวลาไม่ตรงเพราะพึ่งจะหันมาเขียนบน PHP5 (ลง Appserv ตัวใหม่ ) หลังจากที่กำลังเขียนโปรแกรมเกี่ยวกับเวลาสังเกตว่าเวลามันเร็วไป 1 ชม.
����������� เอาหล่ะสิเขียน PHP มาตั้งนานพึ่งจะเจอปัญหาก็เพราะว่าใน PHP 5 มีการ config เกี่ยวกับ timezone เอาไว้ ลองดูที่ php.ini จะพบ
�
[Date]; Defines the default timezone used by the date functions
;date.timezone =
�ตามตัวอย่างถ้าไม่ได้แก้อะไรเวลาจะบวกไปอีก 1 ชม. แล้วถ้าต้องการแก้ให้ถูกต้องหล่ะไม่ยากครับ
[Date]; Defines the default timezone used by the date functions
date.timezone = "Asia/Bangkok"
�แก้ตามนี้แล้ว restart webserver ใหม่ก็ใช้งานได้แล้ว ทดสอบตาม code นี้
< ?
echo date('l jS \of F Y h:i:s A');
?>
�ผลที่ได้ประมาณนี้
Friday 26th of September 2008 12:32:25 AM
�ส่วนสำหรับใครที่ไม่สามารถแก้ php.ini โดยเฉพาะที่เช่า host เค้าอยู่ก็ลองใช้�
< ?
//�set�the�default�timezone�to�use.�Available�since�PHP�5.1
date_default_timezone_set('Asia/Bangkok');
echo date('l jS \of F Y h:i:s A');
?>
เท่านี้ก็จะสามารถใช้ Function ที่เกี่ยวกับเวลาได้อย่างไม่มีปัญหาแล้วครับ
ปล. date_default_timezone_set มีใน PHP 5.1 [1] ขึ้นไปครับ
�อ้างอิง
[1] http://th2.php.net/manual/en/function.date-default-timezone-set.php
ข้อมูลเพิ่มเติม



