$length = 8;
$chars = array_merge(range(0,9), range('a','z'), range('A','Z'));
shuffle($chars);
$password = implode(array_slice($chars, 0, $length));
วันพฤหัสบดีที่ 8 เมษายน พ.ศ. 2553
Twitter API
ถึงเวลาเปลี่ยนแปลง โลกเปลี่ยน สไตล์การเขียนเว็บก็เปลี่ยน "New trends" Time to change,
When talk about Api, we know easy api like two thing, one is Javascript and another one is Xml.
เหมือนกัน ถ้า พูดถึง Application Programming Interface (API). แล้วละก็เราจะถึง google apis, paypal api etc... ในเมื่อคนทั่วโลกสนใจ twitter เป็นอันดับ 12 เราก็ต้องมาศึกษาเพิ่มถึงการทำงานกับมัน รวมถึงก้าวผ่าน มายัง เว็บ 2.0 อย่างเต็มตัว โดยการ เพิ่ม social network เพิ่มเพิ่มระดับความน่าสนใจของเว็บเรา
ตัวอย่างใช้ api กับเฟรมเวิร์ก Yii
'twitter' => array(
'class' => 'application.extensions.twitter.VGTwitter', // path to the twitter extension
'username' => 'LOGINNAME', // login name, this is not required all the time but most api calls need this set
'apiCallType' => 'statuses/home_timeline', // the api call to perform, the default is set to statuses/user_timeline
'password' => 'PASSWORD', // password for the twitter account
'authenticate' => true, // if the twitter api call needs authentication then this must be set to true since by default it is set to false
'format' => 'rss', // default is xml so we will configure this as rss for this example
'postParams' => array( 'count' => 2 ) // we want only the first two results, meaning tweets
),
การใช้งานแค่
CVarDumper::dump(Yii::app()->twitter->get()->getResponseData(), 10, true);
ได้ค่า xml มาใช้ ฟังก์ชั่นอ่านเพิ่มใช้งานต่อไป
When talk about Api, we know easy api like two thing, one is Javascript and another one is Xml.
เหมือนกัน ถ้า พูดถึง Application Programming Interface (API). แล้วละก็เราจะถึง google apis, paypal api etc... ในเมื่อคนทั่วโลกสนใจ twitter เป็นอันดับ 12 เราก็ต้องมาศึกษาเพิ่มถึงการทำงานกับมัน รวมถึงก้าวผ่าน มายัง เว็บ 2.0 อย่างเต็มตัว โดยการ เพิ่ม social network เพิ่มเพิ่มระดับความน่าสนใจของเว็บเรา
ตัวอย่างใช้ api กับเฟรมเวิร์ก Yii
'twitter' => array(
'class' => 'application.extensions.twitter.VGTwitter', // path to the twitter extension
'username' => 'LOGINNAME', // login name, this is not required all the time but most api calls need this set
'apiCallType' => 'statuses/home_timeline', // the api call to perform, the default is set to statuses/user_timeline
'password' => 'PASSWORD', // password for the twitter account
'authenticate' => true, // if the twitter api call needs authentication then this must be set to true since by default it is set to false
'format' => 'rss', // default is xml so we will configure this as rss for this example
'postParams' => array( 'count' => 2 ) // we want only the first two results, meaning tweets
),
การใช้งานแค่
CVarDumper::dump(Yii::app()->twitter->get()->getResponseData(), 10, true);
ได้ค่า xml มาใช้ ฟังก์ชั่นอ่านเพิ่มใช้งานต่อไป
วันจันทร์ที่ 5 เมษายน พ.ศ. 2553
เพลงดำหัวปีใหม่
ปี๋ใหม่เมืองเฮาก่อมาถึงแล้วน้อ ดำหัวแม่ป้อป้าลุงอุ๊ยเฮาดีกว่า
ประเพณีบ่าเก่าของเฮาสืบมา เข้าวัดเข้าวาตักบาตรทำบุญ
ก๋ำสะหลุงใส่ข้าวตอกดอกไม้ ฮื้อเปิ้นได้จื้นใจ๋ตี้หมู่เฮาฮู้คุณ
เตวะบุตรเตวะดาเปิ้นมาอุดหนุน อันก๋านทำบุญตึงบ่มีวันปุดตืน
เปิ้นปั๋นปอนเอาก่อยกมือไหว้ เย็นอกเย็นใจ๋อายุมั่นขวัญยืน
อยู่ดีกิ๋นดีตึงยามนอนยามตื่น ใจ๋บานใจ๋จื้นปันใหญ่ปันสูง
ปี๋ใหม่เมืองเฮาก่อมาถึงแห๋มแล้ว งามตึงดอกแก้วงามตึงดอกหางนกยูง
ชุดผ้าเมืองเฮาก่อปากั๋นนุ่ง ก๋ำขันสะหลุงน้ำส้มป่อยไปดำหัว
ประเพณีบ่าเก่าของเฮาสืบมา เข้าวัดเข้าวาตักบาตรทำบุญ
ก๋ำสะหลุงใส่ข้าวตอกดอกไม้ ฮื้อเปิ้นได้จื้นใจ๋ตี้หมู่เฮาฮู้คุณ
เตวะบุตรเตวะดาเปิ้นมาอุดหนุน อันก๋านทำบุญตึงบ่มีวันปุดตืน
เปิ้นปั๋นปอนเอาก่อยกมือไหว้ เย็นอกเย็นใจ๋อายุมั่นขวัญยืน
อยู่ดีกิ๋นดีตึงยามนอนยามตื่น ใจ๋บานใจ๋จื้นปันใหญ่ปันสูง
ปี๋ใหม่เมืองเฮาก่อมาถึงแห๋มแล้ว งามตึงดอกแก้วงามตึงดอกหางนกยูง
ชุดผ้าเมืองเฮาก่อปากั๋นนุ่ง ก๋ำขันสะหลุงน้ำส้มป่อยไปดำหัว
วันพุธที่ 31 มีนาคม พ.ศ. 2553
วันแห่งการโกหก
April fool day
เกือบไปแล้ววันนี้ เกือบหลงกล เค้าบอกว่าเลือกครึ่งวัน วันนี้ทุกคนต่างโกหก ทั้งบริษัทเล่นด้วยกันแหม
เกือบไปแล้ววันนี้ เกือบหลงกล เค้าบอกว่าเลือกครึ่งวัน วันนี้ทุกคนต่างโกหก ทั้งบริษัทเล่นด้วยกันแหม
Latin text ตายตอนจบ
วิธีแก้ไขปัญหา ระหว่างฐานข้อมูล เข้าระหัส iso-8859-1
ใช้ฟังก์ชั่น แปลง อักขระ ช่วยไม่ได้ เสือกทำงานบริษัทเดนมาร์ก
$byte_map=array();
init_byte_map();
$ascii_char='[\x00-\x7F]';
$cont_byte='[\x80-\xBF]';
$utf8_2='[\xC0-\xDF]'.$cont_byte;
$utf8_3='[\xE0-\xEF]'.$cont_byte.'{2}';
$utf8_4='[\xF0-\xF7]'.$cont_byte.'{3}';
$utf8_5='[\xF8-\xFB]'.$cont_byte.'{4}';
$nibble_good_chars = "@^($ascii_char+|$utf8_2|$utf8_3|$utf8_4|$utf8_5)(.*)$@s";
function init_byte_map(){
global $byte_map;
for($x=128;$x<256;++$x){
$byte_map[chr($x)]=utf8_encode(chr($x));
}
$cp1252_map=array(
"\x80"=>"\xE2\x82\xAC", // EURO SIGN
"\x82" => "\xE2\x80\x9A", // SINGLE LOW-9 QUOTATION MARK
"\x83" => "\xC6\x92", // LATIN SMALL LETTER F WITH HOOK
"\x84" => "\xE2\x80\x9E", // DOUBLE LOW-9 QUOTATION MARK
"\x85" => "\xE2\x80\xA6", // HORIZONTAL ELLIPSIS
"\x86" => "\xE2\x80\xA0", // DAGGER
"\x87" => "\xE2\x80\xA1", // DOUBLE DAGGER
"\x88" => "\xCB\x86", // MODIFIER LETTER CIRCUMFLEX ACCENT
"\x89" => "\xE2\x80\xB0", // PER MILLE SIGN
"\x8A" => "\xC5\xA0", // LATIN CAPITAL LETTER S WITH CARON
"\x8B" => "\xE2\x80\xB9", // SINGLE LEFT-POINTING ANGLE QUOTATION MARK
"\x8C" => "\xC5\x92", // LATIN CAPITAL LIGATURE OE
"\x8E" => "\xC5\xBD", // LATIN CAPITAL LETTER Z WITH CARON
"\x91" => "\xE2\x80\x98", // LEFT SINGLE QUOTATION MARK
"\x92" => "\xE2\x80\x99", // RIGHT SINGLE QUOTATION MARK
"\x93" => "\xE2\x80\x9C", // LEFT DOUBLE QUOTATION MARK
"\x94" => "\xE2\x80\x9D", // RIGHT DOUBLE QUOTATION MARK
"\x95" => "\xE2\x80\xA2", // BULLET
"\x96" => "\xE2\x80\x93", // EN DASH
"\x97" => "\xE2\x80\x94", // EM DASH
"\x98" => "\xCB\x9C", // SMALL TILDE
"\x99" => "\xE2\x84\xA2", // TRADE MARK SIGN
"\x9A" => "\xC5\xA1", // LATIN SMALL LETTER S WITH CARON
"\x9B" => "\xE2\x80\xBA", // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
"\x9C" => "\xC5\x93", // LATIN SMALL LIGATURE OE
"\x9E" => "\xC5\xBE", // LATIN SMALL LETTER Z WITH CARON
"\x9F" => "\xC5\xB8" // LATIN CAPITAL LETTER Y WITH DIAERESIS
);
foreach($cp1252_map as $k=>$v){
$byte_map[$k]=$v;
}
}
function fix_latin($instr){
if(mb_check_encoding($instr,'UTF-8'))return $instr; // no need for the rest if it's all valid UTF-8 already
global $nibble_good_chars,$byte_map;
$outstr='';
$char='';
$rest='';
while((strlen($instr))>0){
//if(input!='')
if(1==preg_match($nibble_good_chars,$input,$match)){
/*if(1==preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E]
| [\xC2-\xDF][\x80-\xBF]
| \xE0[\xA0-\xBF][\x80-\xBF]
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}
| \xED[\x80-\x9F][\x80-\xBF]
| \xF0[\x90-\xBF][\x80-\xBF]{2}
| [\xF1-\xF3][\x80-\xBF]{3}
| \xF4[\x80-\x8F][\x80-\xBF]{2}
)*$%xs',$input,$match)) { /**/
$char=$match[1];
$rest=$match[2];
$outstr.=$char;
echo "
input: ".$input;
echo "
Char: ".$char;
echo "
Rest: ".$rest;
}else if(1==preg_match('@^(.)(.*)$@s',$input,$match)){
$char=$match[1];
$rest=$match[2];
$outstr.=$byte_map[$char];
}
$instr=$rest;
//$input=$rest;
}
return $outstr;
}
$byte_map=array();
init_byte_map();
$ascii_char='[\x00-\x7F]';
$cont_byte='[\x80-\xBF]';
$utf8_2='[\xC0-\xDF]'.$cont_byte;
$utf8_3='[\xE0-\xEF]'.$cont_byte.'{2}';
$utf8_4='[\xF0-\xF7]'.$cont_byte.'{3}';
$utf8_5='[\xF8-\xFB]'.$cont_byte.'{4}';
$nibble_good_chars = "@^($ascii_char+|$utf8_2|$utf8_3|$utf8_4|$utf8_5)(.*)$@s";
ใช้ฟังก์ชั่น แปลง อักขระ ช่วยไม่ได้ เสือกทำงานบริษัทเดนมาร์ก
$byte_map=array();
init_byte_map();
$ascii_char='[\x00-\x7F]';
$cont_byte='[\x80-\xBF]';
$utf8_2='[\xC0-\xDF]'.$cont_byte;
$utf8_3='[\xE0-\xEF]'.$cont_byte.'{2}';
$utf8_4='[\xF0-\xF7]'.$cont_byte.'{3}';
$utf8_5='[\xF8-\xFB]'.$cont_byte.'{4}';
$nibble_good_chars = "@^($ascii_char+|$utf8_2|$utf8_3|$utf8_4|$utf8_5)(.*)$@s";
function init_byte_map(){
global $byte_map;
for($x=128;$x<256;++$x){
$byte_map[chr($x)]=utf8_encode(chr($x));
}
$cp1252_map=array(
"\x80"=>"\xE2\x82\xAC", // EURO SIGN
"\x82" => "\xE2\x80\x9A", // SINGLE LOW-9 QUOTATION MARK
"\x83" => "\xC6\x92", // LATIN SMALL LETTER F WITH HOOK
"\x84" => "\xE2\x80\x9E", // DOUBLE LOW-9 QUOTATION MARK
"\x85" => "\xE2\x80\xA6", // HORIZONTAL ELLIPSIS
"\x86" => "\xE2\x80\xA0", // DAGGER
"\x87" => "\xE2\x80\xA1", // DOUBLE DAGGER
"\x88" => "\xCB\x86", // MODIFIER LETTER CIRCUMFLEX ACCENT
"\x89" => "\xE2\x80\xB0", // PER MILLE SIGN
"\x8A" => "\xC5\xA0", // LATIN CAPITAL LETTER S WITH CARON
"\x8B" => "\xE2\x80\xB9", // SINGLE LEFT-POINTING ANGLE QUOTATION MARK
"\x8C" => "\xC5\x92", // LATIN CAPITAL LIGATURE OE
"\x8E" => "\xC5\xBD", // LATIN CAPITAL LETTER Z WITH CARON
"\x91" => "\xE2\x80\x98", // LEFT SINGLE QUOTATION MARK
"\x92" => "\xE2\x80\x99", // RIGHT SINGLE QUOTATION MARK
"\x93" => "\xE2\x80\x9C", // LEFT DOUBLE QUOTATION MARK
"\x94" => "\xE2\x80\x9D", // RIGHT DOUBLE QUOTATION MARK
"\x95" => "\xE2\x80\xA2", // BULLET
"\x96" => "\xE2\x80\x93", // EN DASH
"\x97" => "\xE2\x80\x94", // EM DASH
"\x98" => "\xCB\x9C", // SMALL TILDE
"\x99" => "\xE2\x84\xA2", // TRADE MARK SIGN
"\x9A" => "\xC5\xA1", // LATIN SMALL LETTER S WITH CARON
"\x9B" => "\xE2\x80\xBA", // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
"\x9C" => "\xC5\x93", // LATIN SMALL LIGATURE OE
"\x9E" => "\xC5\xBE", // LATIN SMALL LETTER Z WITH CARON
"\x9F" => "\xC5\xB8" // LATIN CAPITAL LETTER Y WITH DIAERESIS
);
foreach($cp1252_map as $k=>$v){
$byte_map[$k]=$v;
}
}
function fix_latin($instr){
if(mb_check_encoding($instr,'UTF-8'))return $instr; // no need for the rest if it's all valid UTF-8 already
global $nibble_good_chars,$byte_map;
$outstr='';
$char='';
$rest='';
while((strlen($instr))>0){
//if(input!='')
if(1==preg_match($nibble_good_chars,$input,$match)){
/*if(1==preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E]
| [\xC2-\xDF][\x80-\xBF]
| \xE0[\xA0-\xBF][\x80-\xBF]
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}
| \xED[\x80-\x9F][\x80-\xBF]
| \xF0[\x90-\xBF][\x80-\xBF]{2}
| [\xF1-\xF3][\x80-\xBF]{3}
| \xF4[\x80-\x8F][\x80-\xBF]{2}
)*$%xs',$input,$match)) { /**/
$char=$match[1];
$rest=$match[2];
$outstr.=$char;
echo "
input: ".$input;
echo "
Char: ".$char;
echo "
Rest: ".$rest;
}else if(1==preg_match('@^(.)(.*)$@s',$input,$match)){
$char=$match[1];
$rest=$match[2];
$outstr.=$byte_map[$char];
}
$instr=$rest;
//$input=$rest;
}
return $outstr;
}
$byte_map=array();
init_byte_map();
$ascii_char='[\x00-\x7F]';
$cont_byte='[\x80-\xBF]';
$utf8_2='[\xC0-\xDF]'.$cont_byte;
$utf8_3='[\xE0-\xEF]'.$cont_byte.'{2}';
$utf8_4='[\xF0-\xF7]'.$cont_byte.'{3}';
$utf8_5='[\xF8-\xFB]'.$cont_byte.'{4}';
$nibble_good_chars = "@^($ascii_char+|$utf8_2|$utf8_3|$utf8_4|$utf8_5)(.*)$@s";
วันอาทิตย์ที่ 21 มีนาคม พ.ศ. 2553
กฏข้อห้ามในการทำ SEO
เทคนิคการทำเว็บให้ติดอันดับ โดยทีมงาน bakuri
1. หลีกเลี่ยงการใช้ Meta Tag Refresh
2. ข้อมูลใน forum หรือ เว็บบอร์ด ไม่ใช่ข้อมูลที่เชื่อถือได้
3. ห้ามใช้ page redirect ต่ำกว่า 30 วิ
4. หลีกเลี่ยงการใช้โปรแกรม เข้าช่วยเหลือในทุกๆขั้นตอนในการทำ SEO เช่น โปรแกรมช่วย Generate หน้าเพจต่างๆ Search Engine
5. การทำ Robots Invite บ่อยครั้งเกินไปหรือ Meta robot visit บ่อย โดยข้อมูลไม่เป็น Dynamic
6. การที่เว็บไซต์ของเราปล่อยให้มีลิงค์เสีย หรือ Broken Link ส่งผลเสียต่อความน่าเชื่อถือมาก
7. อย่าทำ Black hat ทุกประเภท
8. อย่าทำ Duplicate Content
1. หลีกเลี่ยงการใช้ Meta Tag Refresh
2. ข้อมูลใน forum หรือ เว็บบอร์ด ไม่ใช่ข้อมูลที่เชื่อถือได้
3. ห้ามใช้ page redirect ต่ำกว่า 30 วิ
4. หลีกเลี่ยงการใช้โปรแกรม เข้าช่วยเหลือในทุกๆขั้นตอนในการทำ SEO เช่น โปรแกรมช่วย Generate หน้าเพจต่างๆ Search Engine
5. การทำ Robots Invite บ่อยครั้งเกินไปหรือ Meta robot visit บ่อย โดยข้อมูลไม่เป็น Dynamic
6. การที่เว็บไซต์ของเราปล่อยให้มีลิงค์เสีย หรือ Broken Link ส่งผลเสียต่อความน่าเชื่อถือมาก
7. อย่าทำ Black hat ทุกประเภท
8. อย่าทำ Duplicate Content
วันอังคารที่ 9 มีนาคม พ.ศ. 2553
พูดตรงๆ
ฉันนั่งเฝ้ามองเธอกับเขาดูมีความสุข
สายตาที่เขามีให้เธอคือทุกๆอย่าง
แต่สิ่งที่เป็นเรื่องสำคัญ นั้นคือสายตาของเธอ
ที่มองดูเขาด้วยความรักและความชื่นชม
ท่าทีที่สุขสมที่มีเขายืนอยู่ข้างกาย
เป็นอะไรที่เหมาะสมทุกอย่าง
คู่ควรกันในทุกๆด้าน
แต่ทำไมก็ไม่รู้หัวใจ
ยิ่งได้เห็นเธอกับเขาใกล้
น้ำตามนั้นก็ไหลออกมาไม่รู้ตัว
* ไม่รู้ ( เพราะ ) ว่าฉัน ( นั้น ) อิจฉาหรือว่าสุขใจ
น้ำตาที่ไหลนั้นไหลมาจากจุดไหน
เป็นเพราะฉันเสียใจหรือเป็นเพราะฉันชื่นชม
ที่ได้เห็นเธอกับเขา รักกันขนาดนี้
ฉันควรจะยินดีที่เห็นเธอสุขสม
มากกว่าที่จะรู้สึก ...
ไม่อยากให้เป็นเขาเลย พูดตรงๆ
ฝืนที่จะยิ้มและหัวเราะให้มีความสุข
เพราะว่าฉันรู้ว่าเป็นสิ่งเดียวที่จะให้ได้
พยายามจะไม่คิดถึงวัน
ที่ฉันเคยมีเธอข้างกาย
ฉันควรดีใจที่ได้เห็นเธอมีความสุข
ฉันควรจะลุกไปพูดคุยและไปทักทาย
เธอกับเขาเหมาะสมกันทุกอย่าง
คู่ควรกันอย่างมากมาย
แต่ทำไมก็ไม่รู้หัวใจ
ยิ่งได้เห็นเธอกับเขาใกล้
น้ำตานั้นก็ไหลออกมาไม่รู้ตัว
สมัครสมาชิก:
บทความ (Atom)