[Android] ซ่อนคีย์บอร์ดให้ EditText

เวลาเขียน Android หลายครั้ง เราก็ไม่อยากให้ EditText มันแสดง keyboard เมื่อเราไปเลือกมัน เช่น เราอาจจะใช้ให้ EditText ระบข้อมูลวันที่จาก Date Picker แทน วันนี้ผมมี Code เล็กๆน้อย เพื่อที่จะซ่อน Key board ให้กับ EditText ตามนี้เลยครับ [java] EditText.setInputType(InputType.TYPE_NULL); [/java]

[Android] Error:The SDK Build Tools revision (19.0.3) is too low for project

วันนี้พอ Update Android Studio เป็นเวอร์ชัน 0.6.0 มาใหม่ พอเปิดโปรแกรมขึ้นมาใหม่พบ Error Message ดังรูปเลยครับ สาเหตุ build.gradle มันชี้ไปผิดเวอร์ชั่น ที่ไม่เหมาะสมกับ SDK วิธีการแก้ แบบที่ 1: แก้จากไฟล์ bulid.gradle [xml] apply plugin: ‘android’ android { compileSdkVersion 19 buildToolsVersion ‘19.1.0’ //แก้ไข Build Tools Version ให้เป็นไปตามที่ SDK ต้องการ defaultConfig { minSdkVersion 8 targetSdkVersion 19 versionCode 1 versionName ‘1.0’ } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.txt’ } } productFlavors { } } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘com.android.support:appcompat-v7:19.+’ } [/xml] แบบที่สอง คือ แก้ผ่าน Interface ของ Android Studio ได้ โดยทำตามขั้นตอน ดีงนี้เลย ไปที่เมนู Tools >> Android >> SDK Manager ดังรูป ตรวจสอบ SDK เลือก Version ที่ต้องการ จากนั้นกด Update ให้เรียบร้อย…

[SQL SERVER] Invalid character value for cast specification

Microsoft SQL Server

วันนี้ผมแก้ App เก่าๆของที่บริษัทแล้วเกิดเจอปัญหา Invalid character value for cast specification ตอนนั้นไล่ข้อมูลแทบตาย เจอมวลมหา Function Call และไปพบว่ามันผิดที่วันที่ (Date) ที่มีการจัด Format ผิด โดยไอ้เจ้าปัญหา Invalid character value for cast specification มันมีความหมายว่าข้อมูลทางเราเป็น input ส่งให้ Database แล้วตัว DBMS เองไม่สามารถแปลงข้อมูล และเก็บลงฐานข้อมูลได้นั้น ซึ่งสาเหตุอาจจะเกิดจากหลายๆสาเหตุ เช่น ข้อมูลประเภท Date ที่ Format ผิด หรือข้อมูลประเภท String เป็นต้น โดยในที่นี้ผมขอยกปัญหาที่ผมเจอก็คือ กรณีที่ข้อมูลนั้นเป็นพวก Date นะครับ ตัวอย่างที่ผมเจอข้อมูลเกี่ยวกับพวกวันที่ Date พา Death เลยแหละ ปัญหา คือ ข้อมูลวันที่ที่เราส่งไป SQL Server ไม่รองรับ Format ข้อมูลแบบนี้ แต่รองรับข้อมูลรูปแบบ ดังนี้ ทางแก้ไข คือ พยายามจัดข้อมูลรูปแบบของข้อมูลในอยู่ในรูปแบบที่ SQL Server นั้นรองรับ ซึ่งก็คือ สองแบบข้างต้นนี้เอง ดังนั้นข้อมูลที่เราส่งไปเก็บมีรูปแบบจาก 07/31/2014 ไปเป็น 2014-07-31 หมายเหตุ วิธีการแบบนี้สามารถส่งข้อมูลปีที่เป็น ค.ศ. และ พ.ศ. ได้เลย โดยระบบจะปรับแก้วันที่ตาม Regional Setting ได้เองอัตโนมัติ แต่ต้องส่งข้อมูลชนิด Date เข้าไปเท่านั้น ห้ามส่งเป็น String เข้าไปเด็ดขาด(บางครั้งมีคนหัวหมอไปจัด String แล้วค่อยเอาไปเก็บ) เพราะระบบไม่มีการแก้ข้อมูลตาม Regional Setting ซึ่งส่งผลให้ App ของเราทำงานผิดภายในหลังได้

ออมหุ้น VS ออมกองทุน เหมือนกัน หรือต่างกันอย่างไร

เพิ่งลองมาเขียน Blog ในด้านการเงินการลงทุนครั้งแรกๆนะ ก่อนอื่นต้องทวนความหมายของสองคำนี้ก่อน ออมหุ้น คือ การซื้อหุ้นในจำนวนเงินที่เท่าๆกันทุกๆเดือน โดยที่ Marketing จะเป็นผู้จัดหาหุ้นที่มีพื้นฐานดีมากให้ อันนี้จะมี Broker ที่บริการ 2 เจ้าได้แก่ ฟิลลิป กับ CIMB ออมกองทุน คือ การซื้อกองทุนแบบปกตินั่นแหละ แต่ผมขอโฟกัสไปที่กองทุนหุ้นนะ อันนี้สามารถซื้อได้หมดเลยเยอะ 55 เช่นของ MFC, BAY, KTB ต่อมาเราจะมองจุดเด่นของแต่ละแบบ โดยผมจะแยกเป็นมุมมองต่างๆ ดังนี้ คนจัดการเงินของเรา ออมหุ้น: ลูกค้าเป็นคนจัดการโดย Marketing คัดสรรหุ้นที่มีพื้นฐานดีมาให้ลูกค้าเลือกซื้อ ออมกองทุนหุ้น: ลูกค้าไม่มีสิทธิ์ในการเลือกหุ้น ผู้บริหารกองทุนเป็นคนจัดการทั้งหมด ความคล่องตัวและความเสี่ยง ออมหุ้น: ลูกค้าสามารถจัด หรือ ปรับเปลี่ยน Port กองลงทุนได้ด้วยตัวเอง ความเสี่ยงสูง เพราะลงในทุนโดยตรงในตลาดหุ้นที่มีโอกาศผันผวนได้สูง เงินขั้นต่ำในการลงทุนตั้งแต่ 5,000 บาทขึ้นไป ออมกองทุนหุ้น ความเสี่ยงต่ำกว่าการลงทุนในหุ้น โดยตรง เพราะ Port ที่ผู้ดูแลกองทุนจัดการมีการบริการ Port ที่รองรับความเสี่ยงอยู่แล้ว เงินขั้นต่ำในการลงทุนตั้งแต่ 1,000 บาทขั้นไป ผลประโยชน์ที่ได้รับ ออมหุ้น: มีโอกาศได้ใช้สิทธิ์ในหุ้น (Corporate Action) ทั้งเงินปันผล(Dividend) หรือสิทธิ์ในการเข้าประชุม เป็นต้น ได้ Capital Gain สูงกว่า เพราะเราสามารถเลือกจังหวะในการซื้อ-ขายได้เอง โอกาlได้รับสิทธิ์ทางภาษี ออมกองทุนหุ้น: ได้รับเงินปันผลของกองทุน ซึ่งเป็นมาจากเงินปันผลของหุุ้น หรือ Dividend(ถ้ากองทุนนั้นมีจ่ายปันผล) และ Capital Gain รวมกัน  ภาษี  ออมหุ้น: มีสิทธิได้รับภาษีจากเงินปันผลคืน หากหุ้นตัวนั้นได้รับสิทธิพิเศษจากทางภาครัฐ ออมกองทุนหุ้น: เงินปันผล ถูกภาษีหักแน่ๆ 10% ส่วนเงินที่ได้จากการขาย ไม่ถูกหักภาษีจ้า ถ้ากองทุนหุ้นที่ลงไว้นั้นเป็นพวก LTF คุณสามารถเอาข้อมูลการลงทุนในรอบนั้นไปยื่นลดหย่อยภาษีได้ (คุ้นว่า LTF…

Business Model ในการสร้างรายได้จาก App บนมือถือ

เมื่อวานได้ไปงาน Android Workshop ที่จัดโดยกลุ่ม GDG ซึ่งผมได้เทคนิคใหม่ในการจัดการกับ UI ของ Android (จริงเคยเขียนตอนสมัยบุกเบิก 55 แต่ตอนหลังต้องจากไปทำโปรเจตจบที่ใช้ WebGL แทน) และในงานนี้มีการนำเสนอ Model รูปแบบการสร้างรายได้จากการพัฒนา App บนมือถือ ตรงนี้สามารถนำไปประยุกต์ใช้ได้กับทุกๆค่ายนะ ^___^ ตารางเปรียบเทียบ Business Model แบบต่างๆ Business Model การทำงาน ตัวอย่าง App ที่ใช้งานจริง Freemium App ฟรี และมี in-app purchases เพิ่มเข้าไป World Conquer: เกมที่ใช้คุณสวมบทบาทเป็นแม่ทัพในสมัยสงครามโลก นำทหารต่อสู้ เพื่อชัยชนะLine Cookie Run: อันนี้คงไม่ต้องอธิบายนะ 555 Paid App เสียเงินครั้งเดียวจบ Camera FV-5: App ถ่ายรูปที่จะทำให้กล้องธรรมดาเป็น DSLR ได้Where ‘s My Water: เกมฝึกสมองที่ผู้เล่นต้องสร้างทางให้น้ำไหลได้ Paidmium App เสียเงิน และมี in-app purchases (กินกันสองทาง) FIFA 13: เกมฟุตบอลยอดนิยม ที่คุณสามารถเลือกซื้อนักเตะเพิ่มเติมได้Money Lover: App บันทักรายรับ-รายจ่าย ที่คุณสามารถซื่อ ICON Pack เพิ่มเติมได้ In-App Advertising App ที่การแสดง banner โฆษณา โดยอาจจะเป็นข้อความ หรือ Video ก็ได้ IETS Prepare: App สำหรับทบทวน IETS ก่อนสอบCaynax6w: App ที่ช่วยฝึกคุณให้มีกล้ามหน้าท้องที่สวยงาม Subscription App จ่ายเงินเป็นรายเดือน เพื่อรับบริการ…

[MSSQL] Database log file คือ อะไร

Microsoft SQL Server

สำหรับฐานข้อมูลของทุกๆค่าย ตัวเนื้อของ Database มีไฟล์ที่สำคัญอยู่ 2 ตัว  ได้แก่ คราวนี้มาดูที่ตัวของ MS SQL บ้างดีกว่า ว่าไฟล์กลุ่มนี้มีอะไรบ้าง จากหัวเรื่อง Blog นี้จั่วหัวในเรื่องของ Database Log File ไว้ เรามาดูกันดีกว่ามันมีการทำงานอย่างไร เริ่ม Database ทำงาน รู้แล้วว่าอะไร ที่มันต้อง Log บ้าง คราวนี้ลองมาดูโครงสร้างแบบ Logical(Virtual Log) ของ Log กัน โดย Log แต่ละตัวมี ID ประจำของมัน ก็ คือ  Log Sequence Number (LSN) ซึ่งเรียงกันไปเรื่อยๆ ดังรูป โดย Log มันยังไม่ได้ลง Disk ที่เป็น Physical ทันทีนะครับ มันถูกเก็บลงใน Buffer เพื่อพักข้อมูลไว้ก่อน เพราะถ้าเอาลง Disk เลยจะเจอปัญหา I/O ได้ โดยจะรอจนถึง เงื่อนไขที่กำหนด ว่าควรย้ายจาก Buffer ลง Disk เราเรียกจุดนี้ว่าเป็น Check Point ครับ ซึ่ง Check Point ของเจ้าตัว SQL Server มีหลายแบบ ผมติต่างเป็นแบบ Automate Check Point (ง่ายดี) แล้ว Log พวกนี้มันช่วยเราในการ Recovery อย่างไรหละ ตอนนี้ต้องรู้คำศัพท์หลายคำเลย จากรูปนี้ เรามาลองไล่กันดีว่า ถ้ามีสถานการณ์ตัวอย่าง เอาจากรูปที่นะครับ อะไร คือ MinLSN ถ้าระบบมีปัญหา พบว่าระบบมีการทำ Check Point ที่…

ข้อควรสังเกตุ และระวังในการ Migrate ข้อมูลจาก Microsoft SQL Server ไป IBM DB2 10.5

IBM DB2

หลายคนๆ คงอ่านหัวข้อแล้ว อาจจะงง 55 เพราะว่าส่วนใหญ่มีแต่การ Migrate ข้อมูลจาก IBM DB2 ไป Microsoft SQL Server กัน แต่นี่ คือ Require ของลูกค้า (ลูกค้า คือ พระเจ้า) โดยผมขอสรุป สิ่งที่ต้องสังเกตุ และระวังในการย้ายข้อมูลจาก Microsoft SQL Server ไป IBM DB2 ซึ่งจะส่งผลให้ Application ที่กำลังพัฒนาอยู่เกิดผิดพลาดได้ ดังนี้

SELECT ซ้อน SELECT

Microsoft SQL Server

หลายครั้งที่เราได้โจทย์ หรือปัญหามาแก้โดยใช้วิธีการ Query จากฐานข้อมูลมา ซึ่งมีรูปแบบการ Query หลายแบบ ได้แก่ การเขียน JOIN ตาราง, UNION หรือ ทำเป็น Sub Query เป็นต้น ในวันนี้ผมขอนำเสนอวิธีการเขียน SELECT IN SELECT ซึ่งเป็นวิธีการเขียน Query แบบหนึ่งที่ช่วยแก้ปัญหาได้มากมาย และลดการเขียน Coding ที่ไม่จำเป็นได้อีก ตัวอย่างปัญหา เราต้องการดูข้อมูลการจ่ายดอกเบี้ยทั้งหมด เพื่อนำมาออกรายงาน โดยมีเงื่อนไขดังนี้ ข้อมูลที่ใช้กับตัวอย่างนี้ ขั้นตอนการแก้ปัญหา (ถ้ามีการเขียน SQL ผมขอใช้ SYNTAX ของ SQL Server นะครับ) โดยใช้ Query ที่มีการตรวจสอบเงื่อนไขของ DATE FROM กับ DATE TO ว่าเป็นเดือนเดียวกัน หรือต่างเดือนกัน ดังนี้ โดยจะ SELECT ซ้อนครอบอีกขั้นนึง เพื่อที่เอาผลลัพธ์ที่ได้จาก Query ก้อนด้านในมา SUM หาผลรวมอีกที ดังนี้ หมายเหตุ: โจทย์นี้อาจจะมีวิธีการอื่นๆในการเขียน Query เพื่อให้ได้ผลลัพธ์ที่เหมือนกัน แต่ที่ผมยกตัวอย่างนี้มา เพื่อที่จะสร้าง Idea และแนวทางให้การปรับประยุกต์ใช้ต่อไปนะครับ