บทความ...
ความรู้ที่อยากจะแบ่งให้อ่านกัน

เทคนิคการสร้างข้อมูล Lookup บน AngularJS ด้วยข้อมูลจาก Excel

12 มกราคม 2558, 12:32

บ่อยมากที่เราจะต้องทำ Form ที่เก็บข้อมูลจังหวัด อำเภอ ตำบล และทุกๆ คนก็ไม่ต้องการที่จะกรอกข้อมูลเหล่านี้เอง ถ้าเป็นสมัยก่อน เราคงจะคิดว่า ต้องสร้างเป็น Web Service และใช้ Ajax ไปโหลดข้อมูลมา วันนี้ ผมขอลองเสนออีกหนึ่งทางเลือกหนึ่ง คือ ใช้ฝั่ง Client เป็นคนทำตัว Filter จังหวัด โดยใช้ Service สำหรับ Angular JS ที่สร้างจากไฟล์ Excel รายชื่อตำบล ซึงผม GoogleBing มาได้ ไฟล์นี้ครับ [เว็บ dwr.go.th] UPDATE: ใช้ไฟล์นี้แล้วครับ เพราะว่า ไฟล์เดิม ไม่มีจังหวัด กทม! (เกือบไป) [เว็บ bot.or.th]

NC MapPad – How I Did it (Part 1)

13 ธันวาคม 2557, 05:14

สวัสดีครับ ไม่ได้แวะมาเขียนอยู่พักใหญ่ๆ เพราะว่าช่วงนี้มีเกม “The Crew” กลายเป็นงานอดิเรกผมไปเลย กำลังเห่อมาก เล่นไปซะจนเลเวลตันละ (Level 50) พอดีเป็นคนบ้าเกมขับรถมาก ขับข้ามรัฐไปข้ามรัฐมากับหลานชาย จน EXP กระจายเลยทีเดียว เมื่อวันก่อนนี้ผมเห็นในเว็บ Lazada มี Bluetooth Controller ขึ้นมาขายแว๊บๆ (http://www.lazada.co.th/ipega-pg-9023-490492.html) และผมมีโค๊ดลดราคา 100 บาท ที่ต้องซือของราคา 1,000 บาทอยู่ ไม่ได้ใช้ซะที ก็เลยตัดสินใจ จัดมาเสีย 1 ตัว เพราะกำลังคิดอยู่ว่าอยากจะลอง Stream Game ผ่าน In-Home Streaming ของ Steam (อ่านแล้วงงดีนะ) ดูผ่าน Tablet Windows 8 ของผมด้วยว่าจะเป็นอย่างไร แล้วก็ถ้าเอามาใช้เล่นเกมอย่าง Asphalt 8 คงจะเข้าที่ดีเหมือนกัน ซึ่งตัว Controller ผมกำลังทำวีดีโอรีวิวอยุ่ เดี๋ยวจะเอามาให้ชมกันนะครับ แต่ทีนี้ ปัญหาก็คือเรื่องของ Software ครับ ผมเข้าใจว่า App Windows 8 รองรับ Controller อยู่แล้วนะ ดูเหมือนว่า จะต้องเป็น Controller บางประเภทเท่านั้น ซึ่ง iPEGA 9023 ไม่อยู่ในประเภทพวกนั้น แย่ละสิผม จะเสียเงิน 1,000 บาทไปฟรีๆ เหรอนี่!? ไม่ใช่ผมแน่ครับ! ด้วยความงก และความบ้าคลั่งการเขียนโค๊ดของผม จึงออกมาเป็น App ที่ชื่อ MapPad ถ้าอยากรู้ว่าผมทำได้อย่างไร ลองตามมาดูกันครับ (มี Source Code ใน GitHub นะครับ)

Literature Review: Dependency Injection + Inversion of Control

18 พฤศจิกายน 2557, 08:55

ช่วงนี้ผมรู้สึกว่าการใช้ Inversion of Control หรือที่เรียกกันสั้นๆ ว่า “IoC” และ Dependency Injection หรือ “DI” กำลังเป็นที่พูดถึงอย่างกว้างขวางมาก และกำลังได้รับความนิยมใน Framework ต่างๆ ของหลากหลายภาษาครับ ผมเคยรู้จัก IoC ครั้งแรกเมื่อประมาณ 3-4 ปีที่แล้ว ตอนที่กำลังพัฒนาระบบด้วย NopCommerce เวอร์ชั่น 3 ซึ่งกำลังถูก Rewrite ใหม่ให้ใช้ ASP.NET MVC จากเดิมที่เป็น ASP.NET Web Form ธรรมดา และจากนั้นผมก็พบกับมันมากขึ้นเรื่อยๆ จนตอนนี้แม้แต่ Microsoft Azure Mobile Service หรือกระทั่ง Nancy ที่ผมชอบมาก ก็ใช้หลักการแบบ IoC ในการพัฒนาแทบทั้งสิ้น ในเมื่อใครๆ เขาก็ใช้กัน ต่อไปถ้าเราจะพัฒนาอะไรขึ้นมา เราก็ควรจะต้องใช้ Pattern นี้บ้างสินะ? ถ้าอย่างนั้น เราควรจะต้องมาทำความรู้จักกับ IoC และ DI ให้มากขึ้นกันดีกว่า

วิธีการ Debug หน้าจอ XAML ขณะDesign-Time (ใน Microsoft Blend)

17 พฤศจิกายน 2557, 01:49

การพัฒนา Application บน Windows Phone นั้น ผมคิดว่า จุดเด่นที่สำคัญที่สุดคือ Visual Studio และ Blend นั้น สามารถแสดงหน้าจอโปรแกรมของเรา ขณะที่โปรแกรมรันอยู่ได้จริงๆ ทำให้การปรับแต่งหน้าจอนั้นทำได้อย่างง่ายดายมาก โดยไม่ต้องเสียเวลา Compile, Run และ Debug เพื่อดูผลเหมือนกับเวลาที่ทำงานบน Android หรือ iOS แต่ก็จะพบว่า บางครั้ง หน้าจอโปรแกรมของเราใน Blend กลับไม่แสดงผลตามที่เราคิดไว้ ซึ่งนั่นก็อาจจะเป็นเพราะว่าเกิด Exception ขณะที่โปรแกรมเราทำงานอยู่ใน Process ของ Blend ครับ วันนี้ ผมมีเทคนิคง่ายๆ ในการ Debug โปรแกรมของเรา ขณะที่รันอยู่ใน Visual Studio/Blend มาฝากครับ (เรียกว่า Design-Time Debugging) จะได้ทราบว่าเกิดอะไรขึ้น ทำไมหน้าจอ Design จึงไม่ทำงาน

Sysprep ใช้กับ Windows 10 Preview ไม่ได้ นั่นก็เป็นเพราะว่า...

12 พฤศจิกายน 2557, 16:57

ผมเชื่อว่าน่าจะมีหลายท่าน ที่คิดจะเก็บ Image Windows 10 Build ล่าสุดเอาไว้ใช้ติดตั้งกับเครื่องอื่นๆ ด้วย ผมเองก็เช่นกันครับ แต่ว่าติดตรงที่เราไม่สามารถใช้ sysprep ในการ Clean ตัว Windows เพื่อทำ Image ได้ครับ (ใครว่า Windows 7/8 Ghost ไม่ได้นะ???) นั่นก็เพราะว่า...

ความจริงอันโหดร้ายของ NuGet Package Restore

9 พฤศจิกายน 2557, 20:58

เนื่องจากตอนนี้ผมกำลังพยายามจะตั้งค่า Continuous Integration Server โดยใช้ TFS Build ซึ่งก็พบกับปัญหานี้บ่อยมากครับ คือ Error ที่เขียนว่า D:\Path\To\Project.csproj (122): This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=317567 หลังจากพยายามอยู่ 1 วันเต็มๆ ผมเพิ่งจะพบว่า จริงๆ แล้ว นี่ไม่ใช่วิธีที่ถูกต้อง ในการตั้งค่า NuGet Package Restore ครับ

NancyBlack ระบบแบบ Azure Mobile Service ของผมเอง (Part 1)

1 พฤศจิกายน 2557, 23:31

ช่วงนี้บริษัทเรามีงานเว็บเข้ามาค่อนข้างเยอะมาก แน่นอนว่า งานเว็บส่วนใหญ่ ก็มักจะเป็นงานการสร้างหน้าจอเพื่อให้ผู้ใช้ป้อนข้อมูลเข้าไป เก็บในฐานข้อมูล จากนั้นแสดงเป็นตาราง กดลิงค์จากตารางแล้วก็แสดงผลข้อมูลขึ้นมาให้แก้ไขหรือลบได้ ผมเลยเกิดความคิดที่ว่า ถ้าเราสามารถทำระบบแบบที่มันเก็บข้อมูลลงฐานข้อมูลแบบ Dynamic ได้เลย โดยไม่ต้องคอยสร้าง Table เอง สร้าง Type เอง และก็สร้าง Web API เอง เพื่อรองรับหน้าจอพวกนั้นก็คงจะดีมากเลย การทำงานจะคล้ายๆ กับ Azure Mobile Service คือผมสามารถสร้าง Table เปล่าๆ ขึ้นมา จากนั้นไม่ว่าผมจะส่งข้อมูล JSON ผ่าน POST ด้วยหน้าตาแบบไหนลงไปก็ตาม มันจะทำการสร้าง Column เพื่อเก็บข้อมูลนั้นให้เองโดยอัตโนมัติ