Posts

Showing posts from August, 2012

จัดการกับโฆษณา popup ของเว็บครอบ link

Image
หลายคนอาจเคยได้เล่นเว็บบอร์ดต่างๆ ที่อาจมี link ไปยังเว็บภายนอก ซึ่งในบางครั้ง คนที่เขาเอามาวางให้เราคลิ๊ก อาจมีการครอบลิงค์ไว้เพื่อเป็นการหารายได้ บางคนก็ใจดีหน่อยคือแยก link เป็น 2 แบบ เช่น เป็นลิงค์ตรงไปยังเว็บนั้นๆ และเป็นลิงค์ครอบ โดยอาจเขียนกำกับเป็นลิงค์สนับสนุน

สำหรับกรณีที่เราคลิ๊ก link ที่เป็นลิงค์ครอบ (อาจเพราะไม่มีทางเลือก หรือต้องการสนับสนุนก็แล้วแต่) พอกดไปก็จะพบกับหน้าตาที่เต็มไปด้วยโฆษณา อาจมีฉากมาบังหน้าเว็บด้านหลังอีกทีอีก


1. วิธีจัดการกับฉาก

วิธีจัดการกับฉากนี้ แนะนำว่า ไม่ต้องกด [x] close หรือปุ่มที่เขาเตรียมไว้ให้เราปิดโฆษณาตัวนี้นะครับ เพราะว่าถ้าเรากด ก็จะมี event ดักอีกทีว่ากดแล้ว ให้เด้ง popup โฆษณามาอีก แล้วค่อยปิด เพราะฉะนั้น ต้องแก้ด้วยการกด F12 ซึ่งเป็นการเปิด Developer Tools ขึ้นมาครับ ใช้ได้ทั้ง IE (ใหม่หน่อย) , Firefox ต้องลง plugins ชื่อ firebug และ Chrome ซึ่งผมให้เป็นตัวอย่าง

หลังจากนั้นเลือก Selector (ใน Chrome เป็นรูปแว่นขยาย ใน IE เป็นรูปลูกศร ใน Firefox จำไม่ได้ครับ) เพื่อไปดู html ในส่วนนั้น โดยการไปชี้ให้มีกรอบขึ้นมา แล้วคลิก 1 ครั้ง แล้วใน Deve…

Hard Code ด้วย String Literal ไม่ปลอดภัยแน่ๆ

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

คราวนี้ผมจะเขียนบล็อกสั้นๆ เป็นการแนะนำการเขียนโปรแกรมให้ดูดี และง่ายต่อการอ่าน/แก้ไขด้วย

"Hard Code" โปรแกรมเมอร์มักจะรู้จักคำนี้เป็นอย่างดี มันคือ อาการที่โปรแกรมเมอร์จะเขียนโปรแกรมให้ทำอะไรสักอย่างแบบตรงไปตรงมาสุดๆ แต่ผมไม่ได้หมายความว่าโปรแกรมเมอร์ต้องทำอะไรแบบอ้อมๆนะครับ Hard Code ที่ผมจะพูดถึงในที่นี้จะเกี่ยวกับเรื่องของ String Literal ที่โปรแกรมเมอร์อาจกำหนดลงไปตรงๆใน code อาจเป็น ที่อยู่ของหน้าเว็บ ค่าที่ตรงกับในฐานข้อมูล หรืออื่นๆ ซึ่งจากเรื่องของ String Literal Pool ที่ผมได้เขียนไว้ใน Java Pass by Reference , Pass by Value และรู้จักกับ Literal Pool ถึงแม้ว่า String ชุดเดียวกัน จะถูกเก็บใน reference เดียวกัน แต่ลองนึกถึงตอนแก้สิครับ เกิดเราต้องทำโปรแกรมใ…

[Java] Java กับ Stack

Image
ใครก็ตามที่ได้เขียน Java คงต้องรู้จักกับ Stack ด้วยนะครับ เพราะว่าเวลาเราเขียนโปรแกรมสักตัวนึก อาจมีหลากหลายคลาส หลากหลายฟังก์ชันการทำงาน ทำให้เมื่อโปรแกรมมีขนาดใหญ่ขึ้น ก็จะทำให้เราสามารถไล่ดู Source Code ได้ยากขึ้น

ภาษา Java เป็นภาษาที่มีลักษณะการแสดง Error Message แบบ StackTrace คือแสดงให้เห็นว่า จุดที่มีสิทธิ์เกิด error ขึ้นมีที่ไหนบ้าง

ตัวผมเอง ซึ่งพื้นฐานการเขียนโปรแกรมเริ่มต้นที่ภาษา C เวลาเขียนโปรแกรมสักตัวนึงแล้วมี error เกิดขึ้น สิ่งที่ compiler จะบอกก็คือ จุดๆเดียว ที่มีความผิดพลาดเกิดขึ้น หากเราเขียนโปรแกรมที่มี error หลายจุด compiler ก็จะบอก error ที่จุดแรกเท่านั้น

สำหรับ Java แล้ว เมื่อเกิด Error ขึ้น การทำงานจะยังไม่สิ้นสุดทันที จะมีกระบวนการย้อนกลับ (Rollback) และ Error Message ที่แสดงออกมาให้ผู้เขียนโปรแกรมเห็น คือ ตัวหนังสือยาวๆ เลอะเทอะไปหมด ซึ่งอาจทำให้นักเขียน Java มือใหม่อาจตกใจได้ว่า "มันอะไรกันเนี่ย!!!"

วิธีดู Error ของ Java
จากที่ผมได้บอกไปก่อนหน้านี้แล้วว่า Java จะแสดง Error ในลักษณะ StackTrace คือเป็นชั้นของการทำงานลงไปเรื่อยๆ แน่นอนว่าถ้าใช้ librar…

[Java] Singleton Design Pattern

Image
ผมเป็นคนนึงที่รู้สึกตอนเรียนว่า ไอ้ "OOP" หรือไม่ว่าจะเป็น "Design Pattern" อะไรพวกนี้ มันเป็นศัพท์ที่ฟังแล้วให้ความรู้สึกว่ามันยากจัง แต่พอได้ลงมือจริงๆ ได้ทำมันจริงๆ (ไม่ใช่แค่ท่องแต่ทฤษฎี) ก็พอจะรู้ว่ามันก็คือการเขียนโปรแกรมธรรมดาๆ ของเราเนี่ยแหละ แต่มันอาจจะมีชื่อเรียกการเขียนแต่ละแบบเท่านั้นเอง ทำให้บางทีผมก็รู้สึกว่าโปรแกรมที่เราเคยทำมันก็เป็น Design Pattern แบบนึง และบล็อกนี้ก็จะเสนอ "Singleton" ที่เป็น Design Pattern แบบง่ายๆ แบบหนึ่งไว้ให้อ่านกันเล่นๆนะครับ

Singleton เป็นการสร้างคลาสที่มีคุณสมบัติคือ มี Object ได้เพียงตัวเดียวเท่านั้น ที่ต้องทำแบบนี้ก็เพื่อประหยัด memory ครับ ไหนๆ ก็สร้าง Object มาตัวนึงแล้ว ก็ใช้มันซะให้คุ้ม ดีกว่าไปสร้างใหม่แน่ๆครับ ถ้าถามว่ามีผลเยอะไหม ต้องลองศึกษาเกี่ยวกับ Garbage Collection ดูครับ

การประกาศ Object ของ Java ต้อง new Constructor ของคลาสขึ้นมา ถ้าคลาสที่เราสร้างใหม่ที่เราไม่ได้เขียน Contructor ไว้ จะมี Default Contructor เป็น

public Singleton(){}
เพราะฉะนั้น เราต้องจัดการกับ Contructor ก่อน โดย

private Singleton…

วิธีใช้ GitHub กับ Eclipse ฉบับอ่านง่ายๆ

Image
วิธีที่ผมจะแนะนำนี้ อาจดูมือใหม่ไปหน่อย แต่ทำให้เราใช้งาน Git ได้ครับ

ก่อนอื่นต้องมาดูกันก่อนว่า Git เนี่ย มันคืออะไร??  คำตอบคือมันเป็น Version Control แบบหนึ่งครับ Version Control ก็คือ การควบคุมโปรแกรมของเราครับ เพื่อป้องกันการสูญหาย แก้ไปแล้วลืมว่าลบอะไรทิ้งไป แก้ผิดแล้วโค้ดพังหมด หรือเหตุสุดวิสัยอย่างอื่น ที่ส่งผลต่อโปรแกรมที่เรากำลังพัฒนา ทำให้เราสามารถย้อนกลับไปดู version ก่อนหน้านี้ได้ว่าใครทำอะไรไปตอนไหน อะไรประมาณนั้นครับ แต่จริงๆ แล้ว Version Control มันก็มีหลายตัวอยู่นะครับ แต่ที่ผมเคยใช้ก็มีแต่ Subversion (SVN) และ Git เนี่ยแหละ


มาเริ่มกันสำหรับการใช้ Git ใน Eclipse นะครับ

ก่อนอื่นต้องลง Plugin สำหรับ Git ก่อน นามว่า "EGit"
เลือก Windows -> Install new software ใส่ URL ในลงในช่อง http://download.eclipse.org/egit/updates

เลือกแค่ Eclipse EGit ก็เพียงพอแล้ว แล้วก็รอจนมันลงเสร็จ

ในส่วนของการใช้ ผมขอแบ่งกรณีเป็น 2 อย่างนะครับ ใครที่ต้องการแบบไหนไปที่หัวข้อนั้นได้เลย


กรณีแรก อยากมี repository เป็นของตัวเอง (อยากเป็นผู้ริเริ่ม)

1. ไปสร้าง repository ใน GitHub ซะก่อน…

Facebook Comment

Recent Posts

Popular

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ

[Android] เปิดเครื่องไม่ได้ โลโก้ค้าง (Boot Loop)

Push Notification คืออะไร มีวิธีทำอย่างไร (No Code)

Portal คืออะไรกันนะ???

[Java] รู้จัก Maven ให้มากขึ้น เพื่อก้าวสู่ java professional

พิมพ์ซองจากรายชื่อ excel ด้วยวิธี Mail Merge

[Java] รู้จัก Spring Boot ฉบับมือใหม่

[Java] Java Servlet คืออะไร?

ความเร็วเน็ตที่แท้จริง Mbps MBps ???