ลองอัพ Official Rom Lenovo P780 Android KitKat

วันนี้ลองเล่นมือถืออยู่ดีๆ  พบว่ามีน notification แจ้ง Update Rom จาก Android Jelly Bean เป็น Android KitKat(P780_ROW_S220_140722 ขนาด 722 MB) ผมเลยลองเป็นหน่วยกล้าตายเสี่ยงดูครับ 555 ได้ผมอย่างไร เดี่ยวลองมาดูกัน เตรียมตัวก่อน Update KitKat เริ่ม Update (กดตามรูปไปเลยก็ได้ครับ โดยจะมีอธบายเพิ่มนิดหน่อย เผื่อมี user มือใหม่มาอ่าน) เริ่ม Update (กดตามรูปไปเลยก็ได้ครับ โดยจะมีอธบายเพิ่มนิดหน่อย เผื่อมี user มือใหม่มาอ่าน) เสร็จแล้วผลเป็นไง ? สุดท้ายแล้วครับ ลองไปปรับแต่ง Background สวยๆดูเหมือนซื้อเครื่องมาใหม่เลยครับ ^_____^

[Crystal Report] Tip ในการออกแบบ Layout รายงาน (.rpt) เพื่อให้ Export เป็นไฟล์ Excel ได้อย่างถูกต้อง

สัปดาห์ที่แล้วผมได้แก้ปัญหาของรายงานที่สร้างจากตัว Crystal Report ซึ่งมีปัญหาในการ Export รายงานออกมาเป็นไฟล์ Excel แล้วไฟล์ที่ Export ออกมามี Layout เละ ผิดจากที่ได้ออกแบบไว้ใน Crystal Report เยอะเลย user เอาข้อมูลไปใช้งานต่อได้ลำบาก โดยวันนี้ผมได้สรุป เทคนิคดีๆในการจัด Layout ของ Report เพื่อให้สามารถ Export ข้อมูลออกมาได้สวยงาม และสามารถนำข้อมูลไปใช้ต่อได้ง่ายครับ ตัวอย่าง ในรายงานมีเงื่อนไขในการแสดงข้อมูล 2 ฟิลด์ ได้แก่ Grade A และ Grade B โดยใช้กำไรเป็นเงื่อนไข ถ้ากำไรมากกว่า 60,000 ให้แสดงฟิลด์ Grade A ถ้าไม่ใช่แสดงฟิลด์ Grade B แทนจากเงื่อนไขนี้ เราจำเป็นต้องใช้ suppression formula ให้กับทั้ง 2 ฟิลด์ เมื่อ Export เป็น Excel ตัว Excel จะเข้าใจว่าเป็น 2 field  และกินพื้นที่ 2 cell แทน วิธีนี้ เรามาสามารถแก้ปัญหาโดยแยก Section ในรายงานเพื่อแสดงรายละเอียด โดยส่วนแรกเป็นรายการที่ได้กำไรในระดับ Grade A และ อีก Section สำหรับ Grade B ตามลำดับ หากต้องการให้รายงานที่ Export มีเส้น และตาราง แนะนำให้ลองไปใช้การ set Border ของ Object ต่างๆใน Crystal Report แทน เช่น Text field หรือ Database field เป็นต้น…

[.NET] Manage Resource VS Unmanage Resource

ช่วงนี้ผมลองศึกษา Pattern ออกแบบ Software ของฝั่ง Microsoft เสนออยู่ครับ โดยเป็นพวก MVP และ MVVM (เดี๋ยวว่าๆ จะมาเขียน Blog สรุปให้อ่ากันนะครับ) เมื่อผม”ศึกษา ค้นพบ เรียนรู้ และเจอปัญหาใหม่” ซึ่งทำให้ผมต้องทำความเข้าใจกับคำว่า “Manage Resource” กับ “Unmanage Resource” กันก่อน ว่าแต่ละคำ คือ อะไร และทำไมเราถึงต้องเข้าใจ และประยุกต์ใช้กับการ Coding ได้อย่างไร ? Resource คือ อะไร ? ถ้าแปลตรงตัว Resource คือ ทรัพยากร แล้วในคอมพิวเตอร์ของเรา ทรัพยากรที่มีอะไรบ้าง เช่น พลังในการประมวลผลของ CPU, หน่วยความจำ(Memory, Hard disk เป็นตัน) ในเรื่องนี้ Resource ของผมหมายถึงหน่วยความจำนะครับ ที่แต่ละ Thread หรือ Process เข้าไปจองไว้ เพื่อให้งานในช่วงเวลาหนึ่งนะครับ Manage Resource คือ อะไร ? คือ ทรัพยากรที่เราสามารถจัดการได้ ได้แก่ Code ที่เขียนด้วย .Net Library ที่ตัว CLI สามารถเข้าถึงว่ามี Method อะไร มี Stack Call อย่างไร เป็นต้น ซึ่งมีน GC (Garbage Collect) นั้นสามารถที่จะจัดการได้ โดยเราอาจจะเรียกอีกอย่างเป็น Managed Memory Unmanage Resource คือ อะไร ? คือ ทรัพยากรที่เราไม่สามารถจัดการได้ ได้แก่ แล้วเรารู้ไปเพื่ออะไร ?…

Neural Network with WEKA รวมปัญหาที่เกิดขึ้น

ในระหว่างที่ทำตาม Workshop: Neural Network with WEKA หลายๆคนอาจจะประสบปัญหาในระหว่างการทำงาน ผมเลยได้รวมรวมข้อมูลไว้ ดังนี้ครับ 1.ปัญหา Train and test set are not compatible สาเหตุ: เกิดจากไฟล์ .arff ของเรามีส่วนการประกาศ attribute ที่ไม่เหมือนกัน หรืออาจะมี Character บางตัวแปลกปลอมอยู่ในไฟล์ฉบับภาษาอังกฤษ ฉบับภาษาอังกฤษ 1.Make sure that the train and test sets have EXACTLY the same attributes (fields),including last entry:@attribute Class {MED,MGL,RHB,EPD,JPA} 2.If the attribute descriptions appear to be identical but you still get the same error, you may have an invisible control character in one of the files. Remove the attribute descriptions from the test file and replace them with the attribute descriptions from the train file. That may help. 3.You can also run Weka from…

Neural Network with WEKA [Deploy Model]

เมื่อเราได้ Model แล้ว ขั้นตอนต่อไป คือ นำ Model ของเราไปใช้กับข้อมูลจริงๆ ที่อาจจะมาจากแบบสอบถาม, ข้อมูลการรายการซื้อ-ขาย เป็นต้น โดยในที่นี้เราจะมีข้อมูลของกลุ่มตัวอย่างที่ได้จากแบบสอบถาม เพื่อนำมาทำนายว่าพวกเขาเหล่านั้นซื้อจักรยาน หรือไม่ครับ เอกสารประกอบการทำ Workshop นะครับ ข้้นตอนการทดสอบง่ายๆ ดังนี้ครับ

เปิดไฟล์จาก Visual Studio เวอร์ชั่นสูงๆ ด้วย Visual Studio 2010

Visual Studio

บางครั้ง เราต้องการดูโครงสร้างของโปรแกรมที่ทำด้วย Visual Studio เวอร์ชั่นสูงๆ แต่เรามีเพียงแค่ Visual Studio 2010 เท่านั้น วันนี้ผมมีวิธีแก้ไขค่า Config นิดหน่อยเพียงให้เราสามารถเปิดดูได้ ใช้อ่าน และไล่ Code ดูได้ครับ ส่วนที่ 1 แก้ไข Solution File(.sln) เปิด Solution File ด้วยโปรแกรม Text Editor เช่น Notepad++ จากนั้นแก้ส่วนหัวของ Solution File ส่วนที่ 2 แก้ไข Project File (.csproj หรือ .vbproj) เปิด Project File ด้วยโปรแกรม Text Editor จากนั้นให้แก้ TargetFrameworkVersion ให้เหมาะสม เช่น ถ้าใช้ Microsoft Visual Studio 2010 ให้แก้ TargetFrameworkVersion เป็น 4.0 แทน หมายเหตุ:

Set an alternative Visual Source Safe diff tools

หลายครั้งที่ลองใช้ตัว Diff ไฟล์ของ Visual Source Safe แล้วพบว่ามันห่วยมาก 5555 ทั้งมีปัญหาตัวพิม์เล็ก-ใหญ่ บราๆ วันนี้ผมวิธีการ Set ให้ Visual Source Safe เรียกใช้ Diff Tools ตัวอื่นๆได้ครับ โดยทำตามวิธีการ ดังนี้ จากนั้นกำหนดค่า ดังนี้ หมายเหตุ: Config นี้ต้องทำในแยกในแต่ละ Visual Source Safe Database ครับ ส่วน Path ของโปรแกรม ถ้าเป็น Windows 64 bit อย่าลืมไปแก้ Path ให้ถูกต้องด้วยนะ ^___^

[JAVA] Access Modifier ของ Class/Method แต่ละตัวเหมือน หรือต่างกันอย่างไร

Q: public, private, protect ที่เราใช้ใน Class และ Method ต่างๆ มันเหมือน หรือ แตกต่างกันอย่างไรA: จะแยกตอบที่ละอันตามนี้ เดี๋ยวของเพิ่ม default (เกิดจากการที่เราไมได้กำหนด Access Modifier ให้กับ Class/Method) ลงไปด้วยและกัน- private >> ใช้ได้เฉพาะ class มันเองเท่านั้น- protect >> ใช้ได้เฉพาะ Class แม่(Super Class)กับ Class ลูก(Sub Class) ใช้ได้เท่านั้น- default >> ใช้ได้เฉพาะ Package เดียวกันเท่านั้น- public >> ใช้ได้หมด 

Cohesion VS Coupling

ในชีวิตการทำงานจริง การพัฒนาออกแบบ Software ระบบหนึ่งขึ้นมา คงไม่ได้มีเพียง File เดียว หรือ Method Main อย่างเดียวแน่ๆ เหมือนตอนที่เรียนอยู่ในมหาวิทยาลัย โดยการทำงานจริงนั้น เราต้องแบบระบบงาน Software ที่ทำอยู่ออกมาเป็น Module หรือ Component ต่างๆ และท้ายที่สุดได้ Class Diagram แต่เมื่อออกแบบเสร็จแล้ว เราจะมั่นใจได้อย่างไรว่า Code ที่เราออกแบบนั้น ไม่มีการทำงานที่ซับซ้อน หรือมีโครงสร้างที่ซับซ้อนมากเกินไป จนทำให้ในอนาคตเมื่อมีการแก้ไข Code นั้นแล้วอาจจะทำให้กระทบไปทั้งระบบ แล้วเราจะมีวิธีจัดการอย่างไงให้สามารถลดความซับซ้อนของระบบได้ ผมขอแนะนำแนวคิด 2C ได้แก่ Cohesion และ Coupling (ลองดูรูป ด้านล่างครับ อยากได้แบบไหนดี) Cohesion คือ อะไร ? Cohesion คือ การบอกถึงความสอดคล้องกันของการทำงานในหน่วยใดๆ เช่น ถ้าเรามองในมุมของ Coding ในระดับ Class ความสอดคล้องกันของ Class นั้น หมายถึง Method การทำงานต่างๆที่ควรจะเป็นไปในทางเดียวกัน เช่น แล้วทำไมเราต้องทำให้เกิดความสอดคล้อง (Cohesion) หละ ? เพราะ เราต้องการจัดกลุ่มของการทำงานให้เป็นหมวดเดียวกัน ให้อยู่ใน Class เพื่อให้ง่ายต่อการ Maintain และการเพิ่มเติมการทำงานในอนาคต ลองมองง่ายๆ ถ้า Code Export Excel (.CSV) มันมีการทำงานกระจายไปหมดทุก Module ถ้าเปลี่ยน Requirement ที = งานเข้า ชนิดของ Cohesion จากแย่ที่สุด ไป ดีที่สุด ระบบที่ดีความออกแบบให้มี Cohesion สูง (งานที่เหมือนกัน ควรอยู่ในกลุ่มเดียวกัน) Coupling คือ อะไร ? Coupling…