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

พอดีวันก่อนมีคนถามว่า 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…

การบันทึก State ของ iPhone App ด้วย NSUserDefaults

การบันทึก State ของ iPhone App คืออะไร? มันคือการบันทึกค่าต่างๆ เพื่อที่ว่าเมื่อ user ปิด app แล้วเปิดขึ้นมาใหม่ก็จะได้ค่าเดิม เทียบได้กับ INI file ของ Windows นั่นเอง สื่งที่ต้องทำมีสองส่วนคือ ตอน Save กับตอน Load ค่า 1. การ Save state ควรเรียกทุกครั้งที่มีการยืนยันการเปลี่ยนแปลงค่า บางท่านชอบ save ตอนจะปิดโปรแกรมทีเดียว (ใน applicationWillTerminate) ซึ่งมักจะเจอปัญหาว่าถ้าเครื่อง hang ค่าก็จะไม่ทันได้ save 1 2 3 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setInteger:myValue forKey:@"myKey"]; [defaults synchronize];NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];…

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

ไม่มีอะไรมากครับ ตั้งชื่อล้อหัวข้อข่าวของ 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…

How to use autorelease in Objective-C and iPhone SDK

จากคราวที่แล้วที่ผมพูดเกี่ยวกับ Memory Management in Objective-C and iPhone SDK ด้วยการใช้ alloc และ release วันนี้เราจะมาดูกันว่าวิธีการใช้ autorelease นั้นดีกว่ายังไง เดิมนั้นในการสร้าง instance จาก Class นั้นเราจะเขียน code ประมาณนี้ 1 2 3 MyClass *myObj = [[MyClass alloc] init]; //Do something with myObj [myObj release];MyClass *myObj = [[MyClass alloc] init]; //Do something with myObj [myObj release]; โดย alloc เป็น class method (เทียบได้กับ static…

Memory Management in Objective-C and iPhone SDK

เนื่องจากข้อจำกับของ iPhone SDK ทำให้ไม่สามารถมี Garbage Collector ได้ ดังนั้นเราจึงต้องมาจัดการในเรื่องการจองและคืนหน่วยความจำเอง สอง method หลักๆที่เราต้องเรียกในครั้งนี้คือ 1. alloc เทียบได้กับ malloc ใน C 2. dealloc เทียบได้กับ free ใน C โดยเราจะไม่เรียกใช้ตรงๆแต่จะเรียกผ่าน release method มาดูตัวอย่างกันดีกว่า 1 2 3 MyClass *myObj = [[MyClass alloc] init]; //Do something with myObj [myObj release];MyClass *myObj = [[MyClass alloc] init]; //Do something with myObj [myObj release]; จากตัวอย่างข้างต้น –…

วิธีการเปลี่ยน __MyCompanyName__ ใน Xcode

ช่วงนี้งานอดิเรกเป็น Objective-C ครับ สำหรับใครที่เคยเจอว่า new file หรือ new project แล้ว file template แสดงชื่อบริษัทเป็น __MyCompanyName__ วิธีแก้ให้พิมพ์คำสั่งนี้ใน terminal (แทน www.choopong.com ด้วยชื่อบริษัทของคุณ) จากนันก็ restart Xcode ใหม่ก็จะได้ชื่อบริษัทที่ต้องการเวลา new file หรือ new project แล้วละครับ defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions -dict ORGANIZATIONNAME “www.choopong.com”