\

Facebook


วันพุธที่ 30 เมษายน พ.ศ. 2557

XAMPP Start Apache ไม่ได้เพราะ PID 4 ไม่ว่าง แก้ยังไงมาดู


ปัญหาเยอะจริงเวลาลงโปรแกรมใหม่ๆเข้ามา XAMPP เป็นอันต้อง port 80 ไม่ว่างบ้างกับสไกด์นี้แหละตัวดีเลย หรือ PID ถูกใช้งานไปแล้วบ้าง ทำให้ start apache ไม่ได้ วันนี้มีวิธีแก้กรณีโดนจอง พีไอดี ไปก่อน มีดังนี้ครับ


เริ่มเลย ต้องหาตัวดีก่อนที่ จองตัดหน้าเรา ซึ่งไปได้เป็นใครที่ไหนไกล มันชื่อ World Wide Web Publishing Service ปล. เกิดปัญหาหลังจากลง vs2008 แสดงว่า น่าจะตัวนี้แหละที่เข้าไปใช้ PID ที่ว่า ไปที่ Service โดยคลิก start > search > administrator tools 

แล้วหาตัวที่ชื่อว่า Service จากนั้นคลิกขวา run as administrator สำหรับเครื่องที่ไม่ได้สิทธิแอดมิน เพราะเราต้องเข้าไป stop service ตัวเนี้ย ต้องมี permission ระดับ admin กันหน่อย


ตามล่าหาเซอร์วิสชื่อ World Wide Web Publishing Service คลิกขวา stop เพื่อหยุดการทำงาน แล้วคลิกขวาเลือก properties ช่องที่เขียนว่า Startup type เลือกเป็น Manual จากเดิมที่ตั้งไว้ว่า Automatic เพราะเราจะไม่ให้มันทำงานทุกครั้งที่เปิดเครื่อง เสร็จแล้วเซฟ แล้วทดลอง start apache ใหม่อีกครั้ง




สังเกตุ status ที่ PID = 4 ว่างแล้ว และสามารถรันอพาเช่ได้อย่างไม่มีปัญหา สามารถดู stat ได้ที่หน้า controller ของ XAMPP ได้เลย หาปุ่ม NetStat  เท่านี้แหละจบ ทำงานต่อละ

ที่มา referrence

วันพฤหัสบดีที่ 17 เมษายน พ.ศ. 2557

[Skype] Emoticon ใหม่จากหนังเรื่อง Captain America: the winter soldier ลองกันละยัง


Emoticon ที่ซ่อนอยู่ของ Skype


Skype จะมีอิโมติคอนที่ซ่อนอยู่ซึ่งจะไม่แสดงตรงหน้ากรอก message เวลาคุยกันกับเพื่อนซึ่งเราต้องรู้โค๊ด emo ตัวนั้นก่อน แล้วพิมพ์ครอบด้วยวงเล็บถึงจะแสดงอิโมตัวที่ซ่อนอยู่ได้ ซึ่งปี 2014 เป็นปีเปิดตัวหนังภาคต่อของ กัปตัน อเมริกา ภาควินเทอร์โซลเยอร์ ซึ่ง Skype ก็ไม่พลาดเอาตัวละครมาประกอบเป็นอิโมให้เราได้เล่นกัน

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




เริ่มจากกัปตัน ตัวละครหลักของเรื่องมีสองเว่อร์ชั่น แบบถือโล่ และเเบบทำความเคารพ

(shielddeflect)

(captain)

นางเอกของเรื่อง Black Widow พริ้วไหว
(blackwidow)


ฝ่ายดีอีกตัวนึง Nick Fury
(nickfury)


ตัวร้ายแบบสุดๆ Bucky
(bucky)


ลองเล่นกันดูละกัน มันก็เป็สีสันอย่างหนึ่งของ Skype Emoticon ซึ่งมีตัวใหม่ๆออกมาทุกปีให้เราได้เล่นกัน นอกจากนี้ยังมี hidden emoticon ตัวอื่นๆอีกมากมาย เอาไว้บทความหน้าจะสรุปเอาไว้ แน่นอนครับ

วันพุธที่ 16 เมษายน พ.ศ. 2557

Unix Timestamp เวลามาตราฐานที่ใช้ในการเปรียบเทียบทั่วโลก


Unix Timestamp คืออะไร?

Unix Time คือเวลาที่บวก 1 เพิ่มทุกๆวินาที โดยเป็นตัวเลขที่เริ่มนับตั้งแต่วินาทีที่ 00:00:00 ของวันพฤหัสบดี วันที่ 1 มกราคม ค.ศ.1970 เป็นตันมาตามเวลาสากล UTC แล้วยูทีซีคืออะไร มันก็คือเวลาสากลซึ่งเป็นที่ยอมรับกันทั่วโลก มาจากอักษรเต็มๆในภาษาอังกฤษคือ Coordinated Universal Time หรือถ้าแปลเป็นไทยให้ฟังยากๆก็คือ เวลาสากลเชิงพิกัด ในแต่ละประเทศก็ใช้เวลาของตัวเองบวกเพิ่มเข้าไปเช่นประเทศอังกฤษคือ UTC+0 ที่นี้คือกรีนิช, ประเทศไทยคือ UTC+7, รัฐอะแลสกา ประเทศสหรัฐอเมริกา คือ UTC-9 เป็นต้น

ตัวเลขที่เพิ่มขึ้นเรื่อยๆตามระบบ Unix Time นี้ ได้ครบ 1,000 million แล้วเมื่อ 2001-09-09T01:46:40Z ซึ่งมีการฉลองกันด้วยที่เมือง Copenhagen ประเทศ Denmark ปาร์ตีจัดโดย DKUUG (เค้าให้ความสำคัญกับเวลามากจริงๆ) ซึ่งถ้าทดลองแปลงเวลาในขณะนี้ที่ผมกำลังเขียนบทความนี้ [17 เมษายน 2557 08:51] ก็จะได้ค่าเท่ากับ 1397699468 ซึ่งวินาทีถัดไปก็จะเป็น 1397699469 ไปเรื่อยๆ แล้วถามว่าตัวเลขนี้มีจุดสิ้นสุดไหมเหมือนกับเหตุการณ์ปี 2000 (Y2K) ถ้าใครยังจำได้ตอนนั้น เวลาในคอมพิวเตอร์ทั่วโลกจะถูก reset เป็นศูนย์ใหม่แต่สุดท้ายก็แก้ปัญหาได้ ไม่พบปัญหาอะไร

ตัวเลข Unix Timestamp มีจุดจบครับ เพราะอ้างอิงตามประเภทค่าตัวแปรตัวเลข 32 bit ถ้าไม่คุ้นหูลองนึกถึงเหตุการณ์ที่วินโดว์ 32 bit มอง ram ได้แค่ 2Gb ถ้าอยากใช้เต็ม 4Gb ก็ต้องลง 64 bit (คุ้นๆกันไหม) ซึ่งระบบเวลาสากลก็เช่นเดียวกันมันมีค่า max ที่ 2 ยกลำลัง 32 ที่เลขฐานเป็นสองก็เพราะว่าคอมพิวเตอร์ใช้แค่ศูนย์กับหนึ่ง สามสิบสองแทนเลขบิตหรือจำนวนหลักนั้นแหละ ซึ่งจะจบในวันที่ January 19, 2038 ยังไงก็ติดตามตอนต่อไปด้วยครับว่าจะเกิดอะไรขึ้นในวันนั้น ความโกลาหลทั่วโลกจะเกิดหรือไม่หรือแค่ผ่านวันนั้นไปธรรมดา


ข้อมูลโดย Wikipedia : http://en.wikipedia.org/wiki/Unix_time

วันพฤหัสบดีที่ 10 เมษายน พ.ศ. 2557

[แนะนำ] ใช้ Medoo Database Framework สร้างเว็บไซด์ ให้ดาต้าเบสเป็นเรื่องกล้วยๆ


ใครที่เริ่มบรรทัดการติดต่อดาต้าเบสด้วยภาษา php ด้วยคำสั่ง mysqli_connect(xx,xx) อยู่บ้างยกมือขึ้นครับ ไม่ได้ว่าผิดนะครับ เพราะผมก็เริ่มแบบนี้เหมือนกัน ชอบเขียนด้วยตัวเองตั้งแต่บรรทัดแรกยันสุดท้าย แต่เว็บไซด์ยุคนี้ต้องเน้นสร้างไวและเสียเวลากับเรื่องไม่จำเป็นให้น้อยที่สุด สมองจะได้ปลอดโปร่ง มีเวลาไปพักผ่อนสะสมแรงใหม่อีกครั้ง

ถ้า Develop เว็บไซด์ด้วย PHP ก็มีหลายหลายเฟรมเวิร์คเลยครับ ที่ทำให้การเขียนโค๊ดประหยัดแรงมากขึ้น เช่น Wordpress, Drupal, Yii, Codeigniter etc. มีเวลาไล่เรียงทั้งวันก็ไม่ครบ แต่ละตัวก็มีคุณสมบัติที่แตกต่างกัน  ถึงขนาดมีคนเอา performance มาเปรียบเทียบกันให้รู้กันไปข้างนึงว่าใครดีกว่าใคร ผมอ่านแล้วปวดหัวตามครับ เลยท่องเว็บออกตามหา Database Framework แบบเบาๆ ไม่กินแรมเครื่องมหาศาล แต่ผลลัพธ์ที่ได้น่าพอใจ สุดท้ายมาจบที่ Medoo ตามเว็บไซด์นี้เลยครับ http://medoo.in

วิธีการใช้งานก็กล้วยแสนกล้วย แค่เข้าเว็บไซด์ของเค้า แล้วไปดาว์นโหลดคลาส Medoo.php เว่อร์ชั่นล่าสุดมาใช้งาน เวลาจะใช้กับไฟล์ไหน ก็เพียงแค่ require_once(‘Medoo.inc.php’); เข้ามาด้วย แล้วทั้งคลาสก็พร้อมให้ท่านเรียกใช้ได้เลยครับ ตามรูปด้สนล่าง
 ที่เหลือก็เพียงแค่ new object มันขึ้นมาใหม่ ด้วยโค๊ดบรรทัดนี้

$database = new medoo('my_database');

ตัวอย่าง การ select  ข้อมูลจาก table ชื่อว่า Account แล้วรับ array ที่รีเทิร์นกลับมา $datas อธิบายคร่าวๆตามภาพคือเลือกมา 2 fields คือ user_name และ email โดยมีเงื่อนไขเพิ่มเข้าไปคือ user_id มากกว่าหรือเท่ากับ 100

1.  $datas = $database->select("account", [
2.    "user_name",
3.    "email"
4.  ], [
5.    "user_id[>]" => 100
6.  ]);


ตัวอย่างการ Insert ข้อมูลหลาย  record โดยใช้ JSON  โดยเพิ่มลงในตาราง account และเซ็ตฟิลล์ user_name, email, age,city,lang


// Multi-insertion (since Medoo 0.9)
1.  $last_user_id = $database->insert("account", [
2.  [
3.    "user_name" => "foo",
4.    "email" => "foo@bar.com",
5.    "age" => 25,
6.    "city" => "New York",
7.    "lang" => ["en", "fr", "jp", "cn"]
8.  ],
9.  [
10.   "user_name" => "bar",
11.   "email" => "bar@foo.com",
12.   "age" => 14,
13.   "city" => "Hong Kong",
14.   "lang" => ["en", "jp", "cn"]
15. ]);

นอกจากนี้ยังมีคำสั่งพื้นฐานที่สำคัญอยู่ครบถ้วน insert ,update, delete, select ด้วยเงื่อนไข AND OR,  สำหรับใครที่สนใจศึกษาเพิ่มเติมที่ documentation ของ official Medoo ตามลิ้งด้านล่างนี้นะครับ http://medoo.in/doc  ถือว่าครบถ้วนระดับนึง ตอนนี้ผมก็เริ่มทดลองเอาไปสร้างเว็บไซด์ดูเล่นๆก่อน ถ้ามีจุดไหนบกพร่อง ผมจะมาอัพเดตข้อเสียเพิ่มเติมให้ก็แล้วกัน

สรุป เบามาก ไม่กินสเปกเครื่อง ติดต่อดาต้าเบสไว(ผมลองที่ localhost อยู่ และไม่ได้จับเวลาเปรียบเทียบกับแบบไม่ได้ใช้) แต่ถ้าเปรียบกันตามที่คนเปิดเว็บขึ้นใช้งาน ถือว่าอยู่ในเกณฑ์ดีนะครับ แถมยังใช้ JSON ซึ่งเข้าใจง่าย รู้แบบ Syntax ก็เป็นมิตร น่าใช้งานครับ [2WeekTrain]

วันศุกร์ที่ 4 เมษายน พ.ศ. 2557

Notebook for Programmer โน๊ตบุ๊คสำหรับเขียนโปรแกรม


ถ้าให้ผมแนะนำการเลือกซื้อโน๊ตบุ๊คสักเครื่องเพื่อมาเขียนโปรแกรมละก่อ ผมจะแนะนำตามประสบการณ์การใช้งานจริงซึ่งที่สังเกตเห็นตลอดอายุการใช้งาน Notebook มา ซึ่งเคยคลุกคลีมา 3-4 ยี่ห้อละกันแบบทำจนจบโปรเจกค์ ขอแชร์สเปกการเลือกซื้อดังนี้ [2weektrain]

***Update 2017-05-31 ตอนนี้ผมใช้ DELL Inspiron สำหรับเขียนโปรแกรม .Net C# ล่าสุดคอมก็เพิ่งมีปัญหาไป ผมรีวิว Dell On-site Support เอาไว้ ตามลิ้งนี้ 

เริ่มจากแป้นพิมพ์ (Keyboard) สิ่งแรกเลยที่ผมคิดว่าสำคัญที่สุด เพราะเมื่อเริ่มเขียนโค๊ดจนเป็นอาชีพจะสัมผัสได้ถึงประสิทธิภาพการละเลงโค๊ดที่ว่องไวมากขึ้น เมื่อแป้นพิมพ์เป็นใจ ซึ่งหลายยี้ห้อทำพลาดในจุดนี้ เพราะยิ่งเครื่องเล็กเท่าไหร่ แป้นก็จะตัดส่วนที่ไม่จำเป็นทิ้ง เช่น ลดขนาดปุ่ม backspace ลงหรือลดขนาดปุ่มลูกศร(HP, Samsung) ซึ่งไม่เป็นมิตรต่อโปรแกรมเมอร์เลยเพราะปุ่มเหล่านี้ใช้งานบ่อยมากถ้าลดขนาดลงพิมพ์ยากขึ้นแน่นอน ปุ่ม fn ของบางยี้ห่อเช่น Lenovo จะอยู่สลับกับปุ่ม left-ctrl ถ้าใครไม่ชินก็ต้องทำใจ(แต่รุ่นใหม่ๆย้ายกลับเหมือนเดิมแล้ว)

note: เลือกที่ปุ่มกดง่าย ทดลองพิมพ์ก่อนจะดีมาก ปุ่มbackspaceห้ามโดนตัด ปุ่มลูกศรขึ้นลงห้ามโดนตัด ปุ่มอื่นๆอยู่ในตำแหน่งที่คุ้นชิน ขนาดนิ้วมือถูกออกแบบมาให้กดปุ่มที่ขนาดพอดีนิ้ว
CPU หัวใจของเครื่อง ทำได้ควรเลือกที่เป็น core2duo, corei5, corei7 ต่ำกว่านี้ยังได้ถ้าใจเย็น ส่วนผมใจร้อนครับ เวลา compile code เกิน 10 วินาทีก็เซ็งแล้ว สังเกตความเร็วสัญญาณนาฬิกาด้วย ผมแนะนำที่ 2.4GHz+ แล้วตอนคอมไพล์จะไม่จึ่งแน่นิ่ง ส่วน AMD ไม่แนะนำ เขียนว่า 2.3GHz แต่เอาจริงๆยังกะ 1.5GHz เปิดโปรแกรมยังแทบค้างเลย และไม่แนะนำ Netbooks (เน็ตบุ้ค) เพราะสเปกระยะยาวใช้ไม่ทนมือทนเท้าเราแน่ๆ

Ram และ Hard Disk เลือกแรมที่ 4Gb เป็นขั้นต่ำเพราะการทำงานจริงๆนั้นเราต้องเปิดหลายโปรแกรมครับ เช่นเป็น Windows Developer ต้องเป็นสิ่งเหล่านี้แน่นอน Visual Studio, SQL server (กินแรมเพิ่มอีก ตอน query), Skype เอาไว้ติดต่องานกับคนอื่น , Microsoft Word + Excel เอาไว้ดู design document , เท่านี้แรม 2Gb ก็ร้องแล้ว เคยได้คอม 2Gb มาใช้ปวดหัวเลยไม่กลับไปใช้แน่นอน ส่วน hard disk ควรเลือกที่ 500Gb 5400rpm ก็เพียงพอ แต่แบ่งไดว์ C: ไว้ที่ 100Gb+ เชื่อผมว่าโปรแกรมมันเยอะกว่าที่คุณคิด

ช่องเสียบแผ่น CD ไม่ต้องเอาก็ได้ ยุคนี้มัน USB 3.0 ละ ตัวเดียวจบ install windows ผ่านยูเอศบีก็ง่ายมากๆ ไม่รู้จะซื้อช่องเสียบซีดีมาให้พังทำไม

ดีไซด์(Design) ก็สำคัญผมเคยจับ Asus แบบมันวาวมา ใช้ยากมากครับ ออกแบบมาสวยแต่เพราะความมันวาวนี้แหละ ทำให้แป้นเลื่อนเมาส์ต้องวาวไปด้วยซึ่งควบคุมได้แย่มากๆ วันไหนลืมเม้าส์นี้แทบไม่อยากจับเลย เอาแบบเป็นหยักแบบ Lenovo ก็ดี เจ้านี้แป้นเมาส์กดสนุกมาก แต่ส่วนใหญ่ใช้เมาส์มือหมดละ

สุดท้ายเรื่องการระบายความร้อน อันนี้ต้องอ่านรีวิวครับ ว่าแต่ละเจ้าทำกันยังไง ระบบพัดลมเนี้ยไม่ต้องทำให้มันฉลาดมากหรอก เอาไปพัฒนาพัดลมเก็บเสียงดีกว่า เคยจับ Toshiba มาตัวนึง เวลาเกิดความร้อนเกินใน mainboard ซึ่งพัดลมจะทำงานเป็นระยะ น่ารำคาญมากๆ พ่นเบาๆผ่อนหนักจะไม่ว่า อันนี้เบาหนักสลับถี่มากกลายเป็นคนข้างๆทักขึ้นมาเลยว่าพัดลมทำงานแรงเน้อ ภาพลักษณ์เสียหายหมด แถมเครื่องร้อนไวมากทะลุมาถึงแป้นเลย ถ้าถึงจุดนั้นรู้ไว้เลยว่าเตรียมค้าง เพราะเครื่องจะเริ่มไม่ตอบสนอง ขึ้นขนาดพักกลางวันผมต้อง shutdown เลยไม่งั้นตอนบ่ายไม่รอด เคยไปส่องโตชิบาอยู่เครื่องใหม่ๆเค้าลง Ubuntu มาให้กิน resource น้อยเลยไม่ร้อน สงสัย windows8 ใช่แล้วร้อนเร็วละมั้ง

สรุปรวมราคาคร่าวๆ จาก spec ที่กล่าวมา ราคาน่าจะอยู่ที่ประมาณ 22,000 บาทขึ้นไป เช่น PH, Acer, Lenovo งบถึง ไป MacBook Pro เลย บางรุ่นอาจต่ำกว่านี้ แล้วแต่ว่ายี่ห้อไหน ถ้าเป็น  Lenovo ที่ 18,000 บาทก็อาจจะได้ spec ประมาณนี้แล้ว หรือ Samsung ก็พอไหวแต่ต้องดู CPU ดีๆละเอียดๆ เคยใช้samsung [ corei5] spec 2013 สู้กับ Lenovo [core2duo] spec 2010 คอมไพล์เกมส์ตัวเดียวกัน samesung รอ 20 วินาที ส่วน Lenovo 5 วิ มีเพื่อนเคยใช้ Acer แบตพังเครื่องร้อน ไม่รู้รุ่นใหม่ๆเค้าพัฒนาจุดนี้ละยัง Dell,Sony  ไม่เคยลอง,  Fujitsu น่าจะแพงไปถ้าเทียบสเปกแล้วไม่คุ้ม

ปล. ไม่เกี่ยวกันแต่ๆบริษัทดังๆอย่าง Google ผมสังเกตตามคลิปสัมนาใหญ่ๆ โน็ตบุ้คที่Developer ใช้ถ้าไม่ใช่ MAC ก็ LENOVO

วันพฤหัสบดีที่ 3 เมษายน พ.ศ. 2557

[Xdebug] PHP Debug on Eclipse เซ็ตตัวดีบักเกอร์


พูดถึงวิธีดีบักไฟล์ PHP ถ้าเป็นครั้งแรกที่เริ่มจับใหม่ๆมั่นใจเลยว่าหลายๆคนต้องเคย echo ค่าออกมาทีละบบรทัด อัพเกรดขึ้นมาหน่อยก็ส่อง array ด้วย var_dump() หรือ print_r() แล้วครอบด้วย <pre> ซะ จริงๆแล้วก็แก้ปัญหาได้ดีทีเดียวแต่เมื่อระบบใหญ่ขึ้นเรื่อย อะไรที่ทำงานเร็วกว่าก็ตอบโจทย์ตรงกว่า
บทความนี้รวบรวมเพียง 4 ขั้นตอน กับการเริ่มต้นเป็น PHP developer กับ ide ฟรีๆอย่าง Eclipse ให้สั้นกระชับที่สุด



1. เริ่มต้นจากการ download package ที่เกี่ยวข้องทั้งหมด ได้แก่ Eclipse for PHP (ผมจะโหลดตัวนี้เลย แต่ถ้าใครถนัดแบบติดตั้ง pdt เองก็โดยเฉพาะ extension มาติดตั้งกับอิคริบส์เอง)


2. ตั้งค่า php.ini โดยเอา comment ที่บรรทัด zend_extension = "C:\xampp\php\ext\php_xdebug.dll" , xdebug.remote_enable = 1 และ xdebug.remote_handler = "dbgp" ออกและเซ็ตค่าเป็น 1


3. เปิด Eclipse ขึ้นมาแล้วไปที่เมนู Window > Preference  หา tab Debug จะมีตัวเลือก Debugger : ให้เลือก ใส่ค่าเป็น Xdebug กด apply แล้ว OK



4. ทดสอบสร้างโปรเจกค์ขึ้นมาหนึ่งชิ้น หลังจากนั้น ใช้ php default server เป็นตัวรัน debug mode โดยการกดที่ปุ่มเข้าสู่โหมด debug ที่มุมขวาบนของโปรแกรม แล้วดับเบิลคลิกที่หน้าบรรทัดที่ต้องการหยุด(breakpoint) ในโค๊ด


เมื่อต้องการดีบัก ก็เพียงกดรูปแมลงตัวเขียว โปรแกรมก็จะทำงานจนกระทั่งพบปุ่ม breakpoint จึงจะหยุดที่บรรทัดนั้น ในโหมดนี้เราสามารถดูค่าตัวแปรได้(Watch) ดูลำดับการทำงานได้ ดูเพิ่มเติมที่การดีบักphpขณะรันโปรแกรม แล้วพบกันใหม่ [2weektrain]

May be like this posts