"Hello World" - Mad Programmer Diary

Year In Review! – 2014 ก็ผ่านไป 2015 ก็เข้ามา

Posted by arnondora on December 31st, 2014

ก่อนอื่นก็ต้องสวัสดีปีใหม่กันก่อนเลยนะครับ เย้ๆๆ 2015 แล้วเลขดูดี หาร 5 ลงตัว ปีนี้ก็เป็นปีนึงที่ ผมรู้สึกว่า เป็นปีที่ค่อนข้างจะมีอะไรเยอะอยู่พอสมควร จึงอยากมาบอกเล่าเรื่องดีๆของปีที่ผ่านมาบ้าง ไม่เรียงล่ะกันเยอะ ยังไงความสุขมันก็คือความสุข MathEngine Project ครบรอบ 5  ปีแล้ว!! มันเป็นอะไรที่ ตกใจมาก!! ตอนอยู่ ม.2 เริ่มเขียนโปรแกรมคำนวณทางคณิตศาสตร์โง่ๆ เพราะตัวผมเองเกลียดคณิตศาสตร์เข้าไส้ แล้วก็พัฒนามาเรื่อยๆ ไม่คิดว่ามันจะเป็นโปรเจ็คที่จะอยู่ได้นานขนาดนี้ MathEngine มี Developer ในสมาชิก 1000 คนแล้ว!!! ก็เรื่องเดิมเลย MathEngine อีกแล้ว เมื่อเกือบๆสิ้นปีก็พึ่งจะฉลอง 1000 Developer ไป ซึ่งดีใจมาก!! เปลี่ยนจากเด็กมัธยมสู่เด็กมหาลัย – ก็ปีนี้ก็เป็นปีแรกที่เติบโตก้าวสู่รั้วมหาลัย จากลูกแม่ศรีสู่ลูกพระบิดา ก็เป็นอีกอารมณ์ที่ทำให้ชีวิตเราสนุกดีเหมือนกัน เริ่มฝึก Skill ถ่ายรูปจริงจัง – ปีนี้ก็ซื้อโทรศัพท์ใหม่ (Xperia Z1) ก็เนอะกล้องมันก็โอกว่าเครื่องเก่าเลยฝึกถ่ายรูปจริงจัง ก็โอเคนะ โอกว่าเดิมเยอะเลยล่ะ สนุกดี พบอีกงานอดิเรกใหม่และ เปลี่ยนงานอดิเรกใหม่ – ก็ผมโดยส่วนตัวเป็นคนที่ค่อนข้างเบื่อง่าย […]

Java 101 – File I/O (EP.10) (The End)

Posted by arnondora on December 29th, 2014

เรื่องสุดท้ายแล้วนะครับ วันนี้กับเรื่องของ File I/O เป็นเรื่องของการ เขียน อ่านไฟล์ นั่นเอง เรื่องนี้ไม่ยาก แล้วก็สนุกด้วย มาดูกันเลย File Class คืออะไร? File Class มันเป็น Class หนึ่งที่อยู่ใน Package Java.io (เพราะฉะนั้นการอ่านเขียนทุกครั้งต้อง Import มันเข้ามาด้วย อย่าลืมล่ะ!!) ในคลาสมันจะประกอบไปด้วย Method ที่จะช่วยให้เราทำงานกับไฟล์ได้ วิธีใช้คือ File filename = new File(Path); ซึ่งอย่างทื่บอกว่ามันจะมี Method อยู่ มันจะมี Method บางตัวที่เราควรจะรู้ canRead() – ไว้เช็คว่าไฟล์นี้อ่านได้มั้ย canWrite() – เหมือน canRead แต่ตรงข้ามกัน อันนี้เช็คเขียน exist()  – อันนี้ไว้เช็คว่าไฟล์ที่เราอ้างถึงมันมีอยู่จริงมั้ย getName() – ไว้เวลาที่เราต้องการชื่อไฟล์ […]

Java 101 – Exception Handling (EP.9)

Posted by arnondora on December 29th, 2014

2 เรื่องที่ผ่านมา เป็นเรื่องที่ค่อนข้างยากอยู่พอสมควร แต่วันนี้เป็นเรื่องสั้นๆ ง่ายๆ ไม่มึน งง คล้ายจะเป็นลมเหมือน 2 เรื่องที่แล้ว วันนี้เป็นเรื่องของการ จัดการกับ Error ก่อนหน้านั้นเราจะมาเข้าใจกับคำว่า Exception กับ Error กันก่อน มาที่อันแรกก่อน นั่นคือคำว่า Error จริงๆแล้วมันก็คือข้อผิดพลาดนี่แหละ อาจเกิดจาก Syntax Error ซึ่งความผิดที่เกิดจาก Syntax Error พวกเราก็น่าจะเคยเจอกันจนชินซะแล้ว (เหรอ?) ส่วนอีกตัวคือ Logical Error อันนี้แหละครับ ที่ตัว Compiler มันแจ้งเราไม่ได้เพราะมันตรวจได้แค่ว่า โปรแกรมที่เราเขียนนี้ Syntax ถูกรึเปล่า ส่วนคำว่า Exception นั้นจะเกิดได้จากหลายสาเหตุ (ที่ไม่ใช่ Logical Error กับ Syntax Error) เช่นการหารด้วยศูนย์ หรือเปิดไฟล์แล้วหาไฟล์ไม่เจอเป็นต้น (ส่วนอีกเรื่องของ Exception นั่นเข้าไปดูได้ใน Document ของ […]

Java 101 – Abstract & Interface (EP.8)

Posted by arnondora on December 28th, 2014

เมื่อวานเราได้เรียนเรื่องของ สมบัติหนึ่งของ OOP นั่นคือ Inheritance และ Encapsulation ไปแล้ว วันนี้เราจะมาต่อยอดมันนิดหน่อย นั่นคือเรื่องของ Abstract และ Interface เอาทีละเรื่องล่ะกันเนอะ! Abstract เป็นหนึ่งในคุณสมบัติของ OOP ที่ให้เราสร้าง Class ที่มี Attribute,Method ขึ้นมาลอยๆเลย ทำอะไรไม่ได้เลย เรื่องนี้มันจะค่อนข้าง งง เอาเรื่องอยู่เหมือนกัน เอาง่ายๆเลยนะครับ ถ้าเราสร้าง Abstract Class ขึ้นมาแปลว่าเราจะนำ Class นี้มาสร้างเป็น Object ไม่ได้ แต่เราสามารถทำให้มันเป็น Class แม่ได้ (หรือนั่นคือสืบทอดได้นั่นเอง) จบนี่คือ Abstract Class ต่อไปเป็นเรื่องของ Syntax Syntax มันไม่มีอะไรเลย แคเติมคำว่า abstract ไว้หลัง modifier ตอนสร้าง Class เช่น public abstract class Employee { […]

Java 101 – Inheritance & Encapsulation (EP.7)

Posted by arnondora on December 27th, 2014

คำเตือน!! เรื่องที่จะอธิบายในวันนี้นั้นจะใช้ความรู้ของเรื่อง OOP ค่อนข้างเยอะ เพราะฉะนั้นถ้าใครยังมึนงงกับเรื่องนี้อยู่ โปรดกลับไปอ่านเรื่อง OOP101 ก่อนที่จะมาเรียน เรื่องนี้นะครับ ปล. นี่คือเขียนรอบ 2 แล้ว รอบแรก Save ไว้หายหมดเลย TT… อาจจะชุ่ยหน่อยนะครับ ใครที่อ่านมาแล้ว เชิญทางนี้เลย วันนี้เราจะมาพูดถึงสมบัตินึงของ OOP ที่เราเรียกว่า Inheritance และ Encapsulation เอาที่ล่ะอัน Inheritance หรือภาษาไทยเรียกตามตัวเลยว่า การสืบทอด -> มันคือการที่ Class นั้นสืบทอดมาจากอีก Class นึงโดยที่เราจะได้ Class ใหม่ที่มี Attribute และ Method ที่เหมือน Class แม่ทุกประการและเรายังสามารถเพิ่ม Attribute และ Method ได้อีกด้วย ถ้ามองภาพไม่ออกอีกดูนี่ public class animal { String name; public void walk () { System.out.println(“I’m […]

Java 101 – Method & Constructor (EP.6)

Posted by arnondora on December 26th, 2014

เมื่อวานเราได้เรียนเรื่องของ String StringBuffer และ StringBuilder ไปแล้ว วันนี้ขอย้อนกลับไปใน EP.2 หน่อยล่ะกัน เพราะในนั้นไม่ได้เจาะลึกอะไร วันนี้เราจะมาเจาะเรื่องของ Method กัน ต่อจาก EP.2 ที่เราได้รู้ว่า Class จะมี Attribute และ Method จริงๆถามก่อนว่า Method คืออะไร? Method จริงๆแล้วมันก็คือ ชุดคำสั่งที่ถูกสร้างขึ้นมาเพื่อทำอะไรตามที่เราสั่ง อารมณ์เหมือนกับ Function ใน Structured Programming เลย แต่จริงๆแล้ว Mehtod ก็มันก็มีประเภทของมันเหมือนกัน ก่อนอื่น ผมจะสร้าง Class ที่ชื่อว่า Employee แล้วก็สร้าง Attribute ชื่อ นามสกุล เงินเดือน แล้วก็ระยะเวลาที่ทำงานมา ก่อนล่ะกัน public class Employee { String name; String […]

Sniffing Conversation Data From Line It’s true?

Posted by arnondora on December 25th, 2014

หลังจากที่มีข่าวการให้สัมภาษณ์รัฐมนตรีว่าการกระทรวงไอซีที   “นายพรชัย รุจิประภา รัฐมนตรีว่าการกระทรวงไอซีที ออกมาให้สัมภาษณ์ว่ารัฐเตรียมเอาผิดการส่งต่อข้อความประเภทหมิ่นประมาท และหมิ่นสถาบันฯ บนแอพพลิเคชัน LINE โดยรัฐสามารถ “สอดส่อง” การสนทนาทุกข้อความทั้งเกือบ 40 ล้านข้อความต่อวันได้”   ที่มา Blognone   ซึ่งตอนหลังได้ออกมาแก้ข่าว แล้วว่าไม่เป็นความจริง   วันนี้เราจะมาวิเคราห์กันดูครับว่า ถ้าทำ มันจะทำได้จริงรึเปล่า?   เริ่มแรก การรับส่งข้อมูลใน Line นั้น เราจะแบ่งเป็น 2 ประเภทครับ ส่งข้อมูลผ่านเครือข่าย Lan จะใช้ Protocal ที่เรียกว่า HTTPS เมื่อส่งข้อมูลผ่าน Cellular Data (Ex.3G,4G) จะใช้ Protocal ที่เรียกว่า HTTPS เช่นกัน (ใน Version 3.9 ขึ้นไป เก่ากว่านั้นจะไม่มีการเข้ารหัส ในการส่งข้อมูลผ่าน Cellular Data) […]

Java 101 – String & StringBuffer & StringBuilder (EP.5)

Posted by arnondora on December 25th, 2014

เมื่อวานเราได้เรียนเรื่องของอะไรว่ะ ลืม… เดียวนะอ่อ Array กับ ArrayList ไปแล้ว วันนี้มาเปลี่ยนอารมณ์กันบ้าง (ตรงไหนว่ะ!!) วันนี้เราจะมาเรียนรู้ในเรื่องของ String กัน String หรือในภาษาไทยอันสวยเก๊ว่า “สายอัขระ” สวยป่ะล่ะ สรุปสั้นเลยว่า String มันก็คือชุดของตัวอักษรนั้นแหละ แต่มันจะต่างจากภาษา C อยู่ จากในภาษา C String มันคือ Array ของ Char แต่ใน Java เราพัฒนาแล้วจร้า มันถูกบัญญัติลงไปเป็น Datatype แบบนึงเลยล่ะแกร์!! เจ๋งเวอร์!! ถามว่า แล้วเราจะประกาศมันยังไงล่ะ? ไม่ยาก ถ้าเราจำเรื่องของการสร้าง Object ได้ (String 1 อันเราจะมองว่ามันเป็น Object ชิ้นหนึ่งเหมือนกัน) String a = new String(); ก็ได้ หรือ เอาที่ง่ายกว่านั้นคือ […]

Java 101 – Array & ArrayList (EP.4)

Posted by arnondora on December 24th, 2014

เมื่อวานเราได้เรียนรู้เกี่ยวกับการ รับข้อมูล และ การเอาข้อมูลออก วันนี้เราจะมาเรียนรู้เกี่ยวกับการเก็บข้อมูลแบบหนึ่งที่ใครๆน่าจะรู้จัก นั่นคือ Array Array คือ ชุดของตัวแปร ซึ่งตัวแปรที่มาเรียงต่อกันนั้นต้องเป็นข้อมูลชนิดเดียวกัน โดยที่เราสามารถเข้าถึงสามาชิกตัวไหนก็ได้ของ Array การประกาศ Array นั้นไม่ยาก เพียง int a [] = {1,4,3}; ใส่ชนิดของตัวแปรแล้วใส่ ปีกกาเปิดปิด แล้วให้ค่ามันโดยตรง แต่ถ้าเรายังไม่รู้ค่ามัน เราจะ ไม่สามารถ เขียนแบบนี้ได้ int a [2]; จะต้องเขียนเป็น int a = new int [2]; สังเกตโค๊ตด้านบนนี้ เหมือนกับการสร้าง Object เลยใช่มั้ยครับ จริงๆแล้วมันใช่ เพราะเรามองว่าตัวแปรก็คือ ข้อมูลก้อนนึงเหมือนกัน เหมือนกับที่เรามอง Object เป็นข้อมูลก้อนนึง (ถ้าใคร งง ให้ไปอ่าน EP.2 ก่อนนะครับ ในนั้นเขียนไว้ให้หมดแล้ว) […]

App Review – Desk ของเล่นใหม่สำหรับ Bloger

Posted by arnondora on December 23rd, 2014

วันนี้ผมก็เปิดคอมมาเล่นเน็ตเขียน Blog อะไรนิดหน่อย แต่แล้วผมก็ไปเจอกับโปรแกรมตัวนึง เป็นโปรแกรมที่เจ๋งมากครับ มันชื่อ Desk (App ตัวนี้ได้รับรางวัล 2014 Best App ด้วยล่ะ)      Desk เป็น Text Editor ตัวหนึ่งที่ไว้ใช้สำหรับเขียน Blog หรือ Diary แต่ผมไม่ได้ซื้อเพราะมันสำหรับเขียน Blog หรอกครับ แต่เพราะว่ามันสามารถแชร์ขึ้นไปบน WordPress ได้เลย โดยที่เราไม่ต้องไปใช้ Editor ของ WordPress เลย หน้าตาของมันก็ Plain มากเลยครับ ไม่มีอะไรเลย         จากภาพด้านบนครับ ไม่มีอะไรจริงๆ ถ้าสังเกตทางด้านขวาจะมีแถบเครื่องมือ เล็กๆอยู่ ปุ่มบนสุดจะเป็นเหมือน Open Recently เลยมันจะโชว์ไฟล์ที่เราเขียนล่าสุดออกมา   ปุ่มถัดมาจะเป็นปุ่มแชร์ โดยที่มันสุดยอดตรงนี้เลยครับ มันสามารถแชร์ลง WordPress […]

Older Entries