Posts Tagged ‘Programming’

ความแตกต่างระหว่าง Software, Application, และ Program

Sunday, June 20th, 2010

พอดีวันก่อนมีคนถามว่า Software, Application, และ Program นี่มันแตกต่างกันยังไง

ก่อนจะอธิบายด้วยคำพูด มาดูรูปกันก่อนดีกว่าครับ

จากภาพข้างต้นแสดงให้เห็นว่า ระบบคอมพิวเตอร์ (Computer System) ประกอบไปด้วย

- Hardware หรือ Machine นั่นเอง โดยอาจเป็นเครื่องจริงๆ หรือ Virtual Machine เช่น VMware/VirtureBox/VirtualPC ก็ได้

- Software ที่ทำงานอยู่ใน Hardware ข้างต้น ไม่ว่าจะเป็น OS เช่น Windows/Linux/Mac หรือ Game, Web Browser ก็ล้วนแต่เป็น Software

- Program คือส่วนย่อยของ Software กล่าวคือ Software หนึ่งตัวจะประกอบขึ้นมาจาก Program หลายๆตัวนั่นเอง ถ้าใน Software Project ขนาดใหญ่ เราอาจจะได้ยินการประเมิณว่าใน Software ตัวนี้มี Program ย่อยทั้งหมดเท่าไหร่

โอเค ดูเหมือนเราจะเริ่มเข้าใจว่า Software และ Program คืออะไร แล้ว Application ล่ะ?

ก็ขอยกภาพมาให้ดูก่อนที่จะอธิบายด้วยคำพูดเหมือนเดิม

จากภาพข้างต้นแสดงให้เห็นว่า ประเภทของ Software นั้นมีมากมายหลายแบบ รวมไปถึง Application ก็เป็นหนึ่งในประเภทของ Software

โดย Application นั้นคือ Software ที่ใช้เพื่อช่วยการทำงานของผู้ใช้ (User) ดังนั้น Application จะต้องมีสิ่งที่เรียกว่า ส่วนติดต่อกับผู้ใช้ (User Interface หรือ UI)

นอกจากนี้เรายังสามารถแบ่ง Application ออกเป็นประเภทย่อยๆ ตามสภาพแวดล้อมการทำงาน (Environment หรือ Platform) ของมัน เช่น

- Desktop Application คือ Application ที่ทำงานบนเครื่อง Desktop Computer เช่น PC หรือ Mac เป็นต้น

- Mobile Application คือ Application ที่ทำงานบน Mobile Device เช่น โทรศัพท์มือถือ เป็นต้น

- Web Application คือ Application ที่ทำงานบน Web เช่น Gmail เป็นต้น

โดย Web App อาจแบ่งออกไปอีกเป็น Intranet Application กับ Internet Application โดย Intranet หมายถึงมีการใช้งานแต่ภายในองค์กร ซึ่งตรงข้ามกับ Internet ที่เป็น World Wide Web นั่นเอง

ในยุค Web 2.0 เราอาจได้ยินคำที่พัฒนาต่อมาจาก Internet Application คือ RIA ที่ย่อมาจาก Rich Internet Application โดยหลักการแล้ว RIA คือ Application ที่ยังใช้ Web Technologies แต่มีการพัฒนาให้มี UI ในฝั่ง Client ที่ดีเหมือนๆกับการใช้ Desktop Application เพื่อสร้างประสบการณ์ที่ดีให้กับผู้ใช้ (User Experience หรือ UX) เช่น ไม่มีการ Refresh หน้าจอ มีลูกเล่น Dynamic ในการแสดงผลมากมายกว่า Internet Application แบบเดิมๆ

นอกจากนี้เราอาจเคยได้ยินคำที่เกี่ยวของกับ Application ตามมามากมาย เช่น

- iPhone Application คือ Application ที่ทำงานอยู่บน iPhone OS

- Facebook Application คือ Application ที่ทำงานอยู่บน Facebook Platform

- Google App Engine คือ ระบบ Cloud ของ Google เพื่อรัน Web Application

ทุกอย่างที่คุณควรรู้กับ Java เมื่อกษัตริย์คืนบัลลังก์

Wednesday, June 9th, 2010

ไม่มีอะไรมากครับ ตั้งชื่อล้อหัวข้อข่าวของ mk ณ Blognone เท่านั้นเอง

เรื่องของเรื่องคือ แม้ว่าความนิยมของ Java จะลดลงเรื่อยๆ ถึงขนาดเมื่อเดือนก่อน (May 2010) ก็หล่นจากบัลลังก์มาอยู่อันดับ 2
แต่เดือนนี้แม้ % ความนิยมจะยังลดลงต่อเนื่อง แต่เมื่อเทียบกับคู่แข่งแล้วก็ยังสามารถกลับมาอยู่อันดับ 1 ได้
และคาดว่าคงจะขึ้นๆลงๆแบบนี้อีกหลายรอบซะด้วย

สำหรับคนที่ใช้ Java อยู่ไม่ต้องกังวลนะครับ ว่าภาษาจะล้มหายตายจากไปในเร็ววันนี้
Java ยังคงได้รับความนิยมอยากมากในงาน Enterprise เนื่องจากการพลักดันของยักษ์ใหญ่ในวงการ ไม่ว่าจะเป็น IBM, Oracle, SAP เป็นต้น
หรือวงการ Open source ก็ยังมีการใช้ Java อีกมากเช่น Apache, Eclipse, Spring, หรือแม่กระทั่ง Google
หรือแม้แต่ Mobile App อย่าง Android หรือ Blackberry ก็ยังใช้ Java เป็นหลักในการพัฒนา App

ที่น่าสนใจนอกจาก Java แล้วก็ยังมี Objective-C ที่ขึ้นเอาขึ้นเอาไม่ยอมหยุด
ล่าสุดหลังจากที่ขึ้นมาติด top 10 ได้แล้ว ก็ยังขึ้นต่อจนตอนนี้ อันดับ 9 แล้ว
ต้องดูกันต่อครับว่าจะแรงได้นานแค่ไหน

ดูอันดับที่เหลือทั้งหมดได้ที่นี่ครับ
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

BarCamp Bangkok 3 – My first BarCamp

Monday, May 25th, 2009

25052009180

ทำตามกฏครับ 2nd Rule: You do blog about BarCamp

เนื่องด้วยเพิ่งขายกล้องตัวเก่งของตัวเองไป งานนี้เลยไม่มีรูปมาประกอบเลย มีถ่ายนิดๆหน่อยด้วยมือถือ

ขอแบบคร่าวๆนะครับ เพราะงานรัดตัวจนพุงจะหดหมดแล้ว

- วันแรก ผมเน้น Agile Series อย่างเดียวเลย ประกอบไปด้วย Due Date The Root Of All Evils, The Heart Of Agile, Pair Programming

23052009178

- พักเที่ยง กินข้าวกับ @9aum @FordAntiTrust @sixhead @tvchampion คุยกันหลายเรื่อง ทั้งเรื่องที่เอาไปพูดต่อได้ และไม่ได้ เหอๆ

- กลางคืน ออกไป BeerCamp กับ @nuboat @punneng @dekpump @somkiat @rawitat @bact @markpeak @phisite น้อง benz (จำ twitter ไม่ได้) แล้วก็สาวๆ (ที่ผมจำ twitter ไม่ได้อีกเหมือนกัน เพราะได้คุยกันก่อนกลับนิดเดียวเอง) คุยกันหลายเรื่องมากครับ ทั้งการศึกษา, Java แมร่งช้า, มาอันก่อนกลับเรื่องบอลนี่แหละครับ ได้อรรถรสสุด ตอนจะกลับยังสรุปไม่ได้นะครับว่า ตกลงลิเวอร์พูลดีทุกอย่างเลย แต่ทำไมแมร่งไม่ได้แชมป์ฟระ (ผมเสนอว่าราฟาควรเล่น Twitter แล้ว follow ผมเพื่อตามอ่านผม tweet เวลาแข่งด้วย) กลับมาก็นั่งคุยกันต่อที่แคมป์ แต่จำสมาชิกไม่ค่อยได้แล้ว เพราะเริ่มเมา (เอิ้ก)

- วันที่สอง ช่วงเช้านี่เน้นทางธรรมก่อนเลยครับ หลังจากไปผิดศีลมาเมื่อคืน เริ่มด้วย You are the ONE (เกี่ยวกับสมาธิ) ต่อด้วย Dharma Framework For Geek (การมีสติ) จากนั้นเริ่มเข้าสู่ด้านมืดด้วยหัวข้อ สาว Hi5 สวยจริงเหรอ กับ จีบสาวผ่าน Twitter จริงไม่ได้ตั้งใจจะเข้าแต่โดนกระแส(หื่น)พาไป บวกกับไม่รู้จะเข้าอะไรด้วย ก่อนกลับก็เข้าหัวข้อ PAW66 ฟัง @roofimon ย้ำกันชัดๆว่า Java เร็วววส์ โคดๆ แถมเงินดีด้วย (อ้าว แล้วทำไมต้องเขียนหนังสือขาย)

สุดท้าย อย่าลืมตามอ่าน Blog ท่านอื่นๆ, ควันหลงใน Twitter, และ Slide ในงานนะครับ

ล.ป. ขอชื่มชม Staffs ทุกท่าน, Sponsors ผู้มีพระคุณ, และ Participants ทุกท่านเลยครับ You all have done a great job.

ครบรอบ 7 ปี Narisa.com

Monday, March 2nd, 2009

ครบรอบ 7 ปี Narisa.com ชุมชนนักพัฒนา Java  และ Oracle

โดยครบรอบปีนี้ไม่เหมือนปีก่อนๆครับ เนื่องจากเป็นการจุดประกายหลายๆท่านเรื่อง Community ที่ดูเหมือนจะนิ่งๆไปในช่วงหลังๆ

ต้องติดตามกันต่อไปครับว่า Narisa.com จะเป็นอย่างไร…

Thai ID Format Validation การตรวจสอบ หมายเลขประจำตัวประชาชน แบบเบื้องต้น

Thursday, March 22nd, 2007

หลายครั้งที่ Registration form ต้องมีการรับหมายเลขประจำตัวประชาชนของผู้ใช้ โดยเลข 13 หลักเนี่ย หลักสุดทายจะเป็น check bit ครับ ทำให้เราพอจะเขียนโปรแกรมกรอง id ที่มั่วๆออกไปได้พอสมควร

สำหรับที่มานั้น ผมหาไม่เจอจริงๆครับ เพราะมีคนส่งให้อีกที แต่เคยผ่านตาตามเวปหน่วยงานของรัฐนี่ล่ะครับ

หลักที่ 1 หมายถึงประเภทบุคคลซึ่งมี 8 ประเภท คือ
ประเภทที่ 1 ได้แก่ คนที่เกิดและมีสัญชาติไทย ได้แจ้งเกิดภายในกำหนดเวลา (ตั้งแต่ 1 มกราคม 2527)
ประเภทที่ 2 ได้แก่ คนที่เกิดและมีสัญชาติไทย ได้แจ้งเกิดเกินกำหนดเวลา (ตั้งแต่ 1 มกราคม 2527)
ประเภทที่ 3 ได้แก่ คนไทยและคนต่างด้าวที่มีใบสำคัญประจำตัวคนต่างด้าว และมีที่อยู่ในทะเบียนบ้าน ในสมัยเริ่มแรก (1 มกราคม – 31 พฤษภาคม 2527)
ประเภทที่ 4 ได้แก่ คนไทยและคนต่างด้าวที่มีใบสำคัญคนต่างด้าวแต่แจ้งย้ายเข้า โดยยังไม่มีเลขประจำตัวประชาชนในสมัยเริ่มแรก (1 มกราคม – 31 พฤษภาคม 2527)
ประเภทที่ 5 ได้แก่ คนไทยที่ได้รับอนุมัติให้เพิ่มชื่อเข้าในทะเบียนบ้านในกรณีตกสำรวจหรือกรณีอื่น ๆ
ประเภทที่ 6 ได้แก่ ผู้ที่เข้าเมืองโดยไม่ชอบด้วยกฏหมาย และผู้ที่เข้าเมืองโดยชอบด้วยกฏหมาย แต่จะอยู่ในลักษณะชั่วคราว
ประเภทที่ 7 ได้แก่ บุตรของบุคคลประเภทที่ 6 ซึ่งเกิดในประเทศไทย
ประเภทที่ 8 ได้แก่ คนต่างด้าวที่เข้าเมืองโดยถูกต้องตามกฏหมาย คือ ได้รับใบสำคัญประจำตัวคนต่างด้าว คนที่ได้รับการแปลงสัญชาติเป็นสัญชาติไทย และคนที่ได้รับการให้สัญชาติไทย

หลักที่ 2 ถึงหลักที่ 5 หมายถึงรหัสของสำนักทะเบียนที่ท่านมีชื่อในทะเบียนบ้านในขณะให้เลข สำหรับเด็กเกิดใหม่จะหมายถึงถิ่นที่เกิดเลยทีเดียว โดยหลักที่ 2 และ 3 หมายถึงจังหวัด หลักที่ 4 และ 5 หมายถึงอำเภอ หรือเทศบาล

หลักที่ 6 ถึงหลักที่ 10 หมายถึงกลุ่มที่ของบุคคลแต่ละประเภทตามหลักแรก หรือหมายถึงเล่มที่ ของสูติบัตร แล้วแต่กรณี

หลักที่ 11 และ 12 หมายถึงลำดับที่ของบุคคลในแต่ละกลุ่มประเภท หรือหมายถึงใบที่ของสูติบัตรแต่ละเล่ม แล้วแต่กรณี

หลักที่ 13 คือ ตัวเลขตรวจสอบความถูกต้องของเลข 12 หลักแรก

สูตรการ Gen เลขบัตรประชาชน

1. คูณตัวเลขในแต่ละหลัก
byte1 * 13
byte2 * 12
byte3 * 11
byte4 * 10
byte5 * 9
byte6 * 8
byte7 * 7
byte8 * 6
byte9 * 5
byte10 * 4
byte11 * 3
byte12 * 2
2. รวมยอดทั้งหมดที่คูณกันในแต่ละหลัก
3. หารด้วย 11
4. เหลือเศษเท่าไหร่เอาไปลบออกจาก 11

ตัวอย่าง 310210161558X
(3*13)+(1*12)+(0*11)+(2*10)+(1*9)+(0*+(1*7)+(6*6)+(1*5)+(5*4)+(5*3)+(8*2) = 179
179 หาร 11 เหลือเศษ 3
เอาเศษ 3 ไปลบ 11 จะได้เลขตัวสุดท้ายคือ 8 ครับ

October 10th, 2007
ขอแก้ไขเพิ่มเติมครับ เอาเศษ 3 ไปลบ 11 จะได้เลขตัวสุดท้ายคือ 8 อันนี้ไม่ถูกเสียทีเดียว ต้องนำเลขที่ได้ไปหาร 10 แล้วจึงเอาเศษที่ได้ไปเป็นเลขตัวสุดท้ายครับ :D

Programming Language Inventor or Serial Killer?

Friday, March 9th, 2007

คุณข้าวโพดหวานแนะนำมาครับ

ผมเล่นแล้วสนุกดีครับ ได้ 8/10 เห็นที่ narisa มีคนได้ 10/10 ด้วยครับ นับถือๆ

p_or_k.png

malevole – Programming Language Inventor or Serial Killer?

Programming Community index

Thursday, February 8th, 2007

ต่อเนื่องจาก Google Trends: Java, .NET, PHP (Thailand) ครับ แต่คราวนี้เป็นการเก็บข้อมูลโดยบริษัทเฉพาะทางครับ

ที่มา: TIOBE Software
จุดน่าสนใจคือ
Ruby +2.12%
Java -3.45%
C -2.23%

tpci_trends.png

Windows MultiPoint

Thursday, February 8th, 2007

ลองคิดดูหากคอมพิวเตอร์ของคุณสามารถควบคุมโดย Mouse หลายตัวพร้อมๆกัน พูดง่ายๆมีหลาย pointer นั่นเอง (to use multiple mice on a single PC)
เราคงสามารถสร้างสรร Games หรือ Application ที่ต้องทำงานร่วมกันในหน้าจอเดียวได้มากมายเลย

จริงๆเรื่องการทำงานประสานกันปัจจุบันก็สามารถทำได้ผ่าน Network Games/Application แต่นั่นหมายถึงแต่ละคนต้องแยกเครื่องกัน
มาคราวนี้ Microsoft ออก SDK มาชื่อ MultiPoint ครับ
แน่นอนมันทำงานร่วมกับ .NET Framework 3.0 เท่านั้น

MultiPoint is a new technology from Microsoft that is designed to affordably increase the reach of existing classroom PCs and help students everywhere build essential 21st century learning skills such as collaboration, teamwork, and computer familiarity. Multipoint enables groups of students to use multiple mice on a single PC, giving students a new way to learn together and have more computer time than ever before. For the price of just a few mice, schools will soon be able to dramatically increase the reach of their existing PCs and extend the education experience. Now that’s global impact.

Link ที่เกี่ยวข้อง:
Windows MultiPoint (Imagine Cup)
With Windows MultiPoint, Youths in Developing-World Classrooms Learn 21st-Century Skills
เป็นไปได้ไหม ที่จะเขียนโปรแกรมรับ Input จากเมาส์ 2 ตัวที่ต่อบนคอมพิวเตอร์เครื่องเดียวกัน
Windows MultiPoint SDK Download

Google Trends: Java, .NET, PHP (Thailand)

Wednesday, February 7th, 2007

เที่ยบกันจะจะความนิยมของ Java, .NET ,และ PHP ใน Google Trends
โดยรูปด้านล่างนี้เป็น result เฉพาะในประเทศไทยนะครับ และผมเทียบเมื่อ 15 นาทีที่แล้วครับ
จุดที่น่าสนใจคือ
1. อันดับ 1 คือนนทบุรี ไม่รู้เพราะ Software Park อยู่นนทบุรีหรือเปล่า?
2. กรุงเทพเมืองหลวงของเราได้แค่อันดับ 6 เป็นไปได้ยังไง
3. ที่อุบลฯ และสระบุรี คน search PHP มากกว่า Java ครับ ไม่แน่ใจสองจังหวัดนี้มีสถานศึกษาอะไรบ้าง

java_vs_dotnet_vs_php.png

Multi programming language on Eclispe

Tuesday, February 6th, 2007

Eclipse ของเครื่องผมเองครับ ใช้เขียน Java, J2EE, PHP, Flex, GWT และแน่นอนพวกภาษาพื้นฐานของเวปอย่าง HTML, JavaScript, CSS ก็เขียนบน Eclipse เช่นกัน

โดย Plug-in หลักๆที่ผมใช้มีดังนี้
Eclipse Web Tools สำหรับ J2EE, JavaScript, CSS, HTML
PHPEclipse สำหรับ PHP
Subclipse สำหรับ SVN
Googlipse สำหรับ GWT (Google Web Toolkit)
Flex Builder 2 สำหรับ Flex
ป.ล. จริงๆเปิด Web Browser ใน Eclipse (มากับ Web Tools) เพื่ออัพเดท blog ยังได้เลยนะ อิอิ

choopong_eclipse.PNG