หาว่า Code PHP ส่วนไหนทำงานช้าด้วย Xdebug PHP Extension by heha
Oct0
เคยเจอปัญหา Code PHP ทำงานช้าโดนไม่ทราบสาเหตุไหม? แถมเราไม่รู้อีกตะหากว่าไฟล์ไหน บรรทัดที่เท่าไหร่ทำงานช้า จะให้ไปไล่ Code ด้วยมือก็ Code มีเป็นหมื่นเป็นแสนบรรทัด ไม่รู้จะเริ่มยังไงกว่าจะหาเจอ แถมดันช้าเฉพาะบน Server Production อีกตะหาก แต่ชีวิต PHP Developer ก็ไม่ได้ยากขนาดนั้นหากเรารู้จัก Tools ตัวนี้ มันชื่อว่า Xdebug ครับ เป็น PHP Extension นั่นเอง วิธีลงก็แสนง่ายดาย
sudo apt-get install php-xdebug
แค่นี้จบ (Debian/Ubuntu นะ) แต่ถ้าคุณใช้ Linux OS เก่าๆ หน่อย สั่งแล้วหา package ไม่เจอ ก็อาจจะต้อง Download มา compile ด้วย phpize เองดังนี้
- Download version ล่าสุดที่เว็บ Xdebug (เขียนว่า source)
- tar -xvzf xdebug-x.x.x.tgz (เปลี่ยนชื่อไฟล์ตามเวอร์ชั่นที่โหลดมา)
- cd เข้า dir ที่แกะ zip ออกมาตะกี้
- phpize
- ./configure
- make
- cp modules/xdebug.so
หลังจากลงเรียบร้อย (ไม่ว่าจะวิธีใดก็ตาม) แก้ไข php.ini โดยเพิ่มคำสั่งตามด้านล่าง (ถ้าลงผ่าน apt-get install อาจจะมีไฟล์ 20-xdebug.ini อยู่แล้ว ให้แก้ไขที่ไฟล์นั้นแทน php.ini)
zend_extension=xdebug.so // อันนี้สั่ง enable extension
xdebug.profiler_output_dir=<save_path> // อันนี้แก้ <save_path> เป็น path ที่เราจะเก็บไฟล์ profiler เอาไว้ write permission ต้อง write โดย user ที่รัน Process php ได้ ส่วนใหญ่จะเป็น www-data ถ้าขี้เกียจคิดมากก็ chmod 0777 <save_path> ไปเลย
xdebug.profiler_enable=0 // สั่ง enable ให้เซพไฟล์ profiler ตรงนี้ถ้ายังไม่ใช้ให้ใส่เป็น 0 ไปก่อน จะใช้เมื่อไหร่ค่อยปรับเป็น 1
** xdebug.profiler_enable นี้สำคัญมาก ไม่ควรใส่ 1 ตลอดเวลา ไม่อย่างนั้นพื้นที่ Harddisk คุณจะเต็มเร็วมาก!!
ก่อนจะใช้งานกับ Production Server ตัวจริงแนะนำให้ทดลองกับ Development Server ที่มีคนเข้าแค่คนภายในก่อน แล้วแก้ php.ini บรรทัด xdebug.profiler_enable=1 ครับ พร้อมเมื่อไหร่ก็สั่ง restart apache หรือ php-fpm (แล้วแต่ว่า server ใช้ตัวไหนอยู่) เพื่อให้ Xdebug เริ่มทำงาน แล้วให้ลองเข้าหน้าเว็บผ่าน browser สักหน้าหนึ่ง แล้วแวะไปดูที่ <save_path> ที่กำหนดเอาไว้แต่แรก หากทุกอย่างถูกต้องจะมีไฟล์ cachegrind.out.xxxx ปรากฏออกมาหลายๆ ไฟล์ ก็ให้ Download file พวกนี้แหละลงมาที่เครื่องเราให้หมด (แนะนำให้สั่ง tar -zcvf <save_zip_file_name> <save_dir> ก่อน)
ขั้นตอนสุดท้าย Download โปรแกรมดูผล Profiler ครับ มีสองตัว ใครใช้ Windows โหลด WinCacheGrind ใครใช้ Linux โหลด KCacheGrind โหลดเสร็จก็เปิดมาสั่ง File -> Open cachegrind.out.xxxx ที่พึ่ง Download มาตะกี้ก็จะดูได้แล้วดังรูปครับ
ดูที่ช่อง Self กับ Cum. ก็จะรู้เวลาที่ใช้เรียบร้อย โดย Self ตัวเฉพาะ function นี้ที่ตัวมันเองเรียกเนี่ยใช้เวลาเท่าไหร่ และ Cum. คือรวมเวลา function ลูกที่ function นี้ไป call ต่ออีกทีทั้งหมดใช้เวลาเท่าไหร่ (- แสดงว่าน้อยมากจนแทบไม่มีผล) และจะบอกว่าไฟล์ไหน บรรทัดอะไรให้เสร็จสรรพ ดับเบิ้ลคลิกเข้าไปทีละชั้นๆ ได้เลย
ก็เท่านี้แหละครับสำหรับวิธีใช้งาน หากต้องการใช้บน Production Server หลังจากแก้ไข xdebug.profiler_enable=1 แล้ว restart php-fpm หรือ apache แล้วถ้าคนเล่น active เยอะหน่อยก็ไม่ต้องเปิดนานครับ สัก 5-10 วิพอ แล้วแก้ xdebug.profiler_enable=0 กลับ แล้วรีบ restart php-fpm หรือ apache ทันที มิฉะนั้นมันจะกินที่ไปมหาศาลครับ Download ลงเครื่องเราก็เสียเวลาเยอะอีก
ขอให้โชคดีครับ
การ select และ deselect ใน ส่วนของ pen tool ใน SAI by Lynne
Oct0
ในส่วนของ Linework ใน SAI จะมีข้อลำบากในการเลือกชิ้นส่วนของ path ที่เราสร้างขึ้น และแตกต่างจากใน ai
เมื่อเราสร้าง path ขึ้นมา แล้วต้องการเลือก จะต้องทำการเลือกทีละจุด ทีละเส้น
ปัญหาเกิดเพราะบางที จุดนั้นเลือกยากมากๆ จิ้มก็ไม่โดน การจะเลือกวัตถุทั้งหมดสามารถทำได้โดยการจิ้มทีละชิ้นจนหมด
และถ้าต้องการยกเลิกการเลือก ก็ต้องจิ้่มทีละชิ้นเล่นกัน ไม่มีการคลิ๊กเม้าส์ที่อื่นแล้วยกเลิกการเลือกเหมือนใน ai
วิธีเลือกชิ้นงานทังหมดโดยไม่ต้องจิ้มทีละชิ้น (ส่วนที่โดนเลือกจะเป็นสีแดง)
สามรถทำได้โดย
การลากเม้าส์ครอบทั้งภาพ อย่างนี้
เลือกตรงนี้ตามภาพ
วิธียกเลิกการเลือกนั้น
ง่ายจนน่าตกใจ
เพราะเพียงแค่ คลิ๊กเม้าส์ขวาก็ทำการยกเลิกทั้งหมดทันที
โดยไม่ต้อง แก้ จิ้มทีละจุด (ส่วนที่ยกเลิก จะเป็นสีฟ้า)
ใครใช้ linework ตัดเส้น ลองกดดู จะสะดวกขึ้นอีกอักโข จริงๆ
เราต้องบอกเพราะตอนเราไม่รู้ นั้น มันแสนจะลำบาก อยากยกเลิกต้องจิ่้มทีละชิ้น แถมจิ้มไม่ค่อยโดนอีกต่างหาก วุ้ย—
วิธีการแก้ไขปัญหา Unity ไม่รวม AndroidManifest บางตัวให้ by Ziah
Oct0
ในขั้นแรกขออธิบายวิธีการเช็ค AndroidManifest ตัวที่ใช้จริงกันก่อน เนื่องจากในโฟลเดอร์ Plugin > Android ของเราจะมีไฟล์ AndroidManifest.xml อยู่มากมาย ซึ่งตามปกติแล้ว Unity จะทำการรวมไฟล์พวกนี้ให้เป็นไฟล์เดียวไว้ใช้งานจริงบน Run time ซึ่งวิธีการเช็คก็คือ
- ที่ File > Build Settings… ติ้กเลือก Google Android Project แล้วเลือกโฟลเดอร์
- โฟลเดอร์ที่ได้ออกมาจะมี AndroidManifest.xml ตัวที่ใช้งานจริง ให้เปิดเช็คดูว่ามี Tag ครบตามที่มีทั้งหมดหรือไม่ หรือถ้ารันแล้วตัวไหนพังก็มาเช็คดูว่าขาดตัวไหนไปหรือเปล่า
ซึ่งหลังจากที่เราใช้ POKKT Unity SDK 4.1.1 เราก็ได้พบปัญหาดังกล่าวว่า AndroidManifest.xml ที่สร้างขึ้นมาไม่ยอมรวมเป็น AndroidManifest.xml ตัวหลัก ซึ่งวิธีแก้ไขก็ง่ายๆ Copy Tag ที่จำเป็นต้องใช้ แล้วนำไปฝากกับ AndroidManifest.xml ของ Plugin ตัวอื่นๆ ซึ่งจากที่เราทำเราได้เอา Tag ไปฝากไว้กับ Chartboost ซึ่งออกมาก็ได้ผลทีถูกต้อง
วิธีสร้าง key สำหรับใช้งาน Google api บน php by joeskb
Oct0
- เริ่มต้นด้วยการล๊อคอินไปที่ หน้า console ของ Google api
- ไปที่หัวข้อทางซ้ายมือ ข้อมูลรับรอง หรือ Credentials
- กด สร้างข้อมูลรับรอง สร้าง API Key ข้อมูล ระบบจะโชว์รหัสขึ้นมา ให้ทำการบันทึกเอาไว้
- ที่หน้าจอคำยินยอม OAuth หรือ OAuth consent screen กรอกข้อมูล สำหรับแอพลงไป
- ไปที่ library เลือก API ที่ต้องการจะใช้งาน แล้วกดเปิดใช้งาน หรือ Enable
- รอสักพักจะมีให้กดปุ่ม ไปที่ข้อมูลรับรอง
- เลือกประเภทการใช้งาน ตัวอย่างนี้ใช้เป็นเป็น แบบอื่นๆ ที่ไม่มี UI
- เลือกการเข้าถึงข้อมูลแอปฯ และไม่ได้ใช้ Google app engine
- กดปุ่ม ฉันต้องใช้คำรับรองใด
- กรอกชื่อบริการ และบทบาท ถ้าอ่านอย่างเดียวก็ โครงการ แล้วผู้ดู
- ประเภท key เป็น json แล้วกดต่อไป ระบบจะส่งไฟล์มาให้ เปลี่ยนชื่อเป็น client_secret.json
- นำไปไว้ใน server จุดที่สามารถเข้าถึงได้
- ที่ตัวอย่างหน้านี้ทำในข้อ 2,3 ต่อ
- สั่งรันตามข้อที่ 4 อาจจะมีถามหา google account ให้ copy url ไปที่ browser เพื่อล๊อคอิน
- copy รหัสที่ได้ใส่ลงไปใน command-line แล้ว enter
สร้างฟองอากาศด้วย PhotoShop by Tae Romphopark
Oct0
1.สร้างพื้นที่ทำงานขึ้นมา ตั้งขนาดไว้ 300×300 pixels
2.จากนั้นNew Layer(ctrl+j) และเทสีเทาลงไป
3.จากนั้นไปที่แถบเมนูด้านบนเลือก Filter > Render > Lens Flare และปรับค่าตามรูป
4.ไปที่แถบเมนูด้านบนอีกครั้งเลือก Filter > Distort > Polar Coordinates เลือก Polar to Rectangular จะได้รูปนี้
5. ไปที่แถบเมนูด้านบนเลือก Edit > Transform > Flip Virtical จะได้รูปนี้
6.ไปที่แถบเมนูด้านบนอีกครั้งเลือก Filter > Distort > Polar Coordinates เลือก Rectangular to Polar จะได้รูปนี้
7.ต่อไปไปที่แถบด้านข้างเลือก Elliptical Marquee Too(M) จากนั้นไปที่รูปและกด Shift ค้างลากเม้าส์เพื่อสร้าง Selection วงกลม
8. สุดท้ายกด Ctrl + Shift + i เพื่อกลับด้าน Selection และกด Delete เพื่อลบพื้นที่นอกออกเป็นอันเสร็จ