สรุปเนื้อหางาน Bug Day Bangkok 2013 by heha

31
Mar
0

Openning Session

  • ฟังทีมงาน CP โม้ว่ากำลังวิจัยหุ่นยนต์ จะเอาไปใช้งานใน 7-Eleven 7000 สาขา
  • ชอบมาก Case Study จากอเมริกาที่ว่า “วางขวดเบียร์ข้างๆ ผ้าอ้อมแล้วยอดขายเพิ่มขึ้น 50%” เหตุเพราะผัวโดนเมียใช้ให้ไปซื้อผ้าอ้อม แต่ผู้ชายไม่มีเซ้นเรื่องซื้อของ เห็นอะไรใกล้มือกูหยิบแล้วรีบจากไปทันที(ผ้าอ้อมแบบแพงสุดเลยนะเออ) เพราะกูจะรีบไปกินเบียร์!!!

Fix UX Bug - Rawitat Pulam (Silapakorn University)

  • มี OS บางตัวที่เราต้องกด Start เพื่อสั่ง Shutdown (คุ้นๆ ไหม?)
  • การจะสร้างอะไรขึ้นมาซักอย่าง ต้องทำตามฐานความต้องการ user ไม่ใช่ความต้องการผู้สร้าง
  • จะสร้างอะไรซักอย่าง ได้ถามเค้ารึยังว่าเค้าทำไปให้ใครใช้?
  • หากมีความจำเป็นต้องเปลี่ยน UI จริงๆ เราควรจะคงความเคยชินของผู้ใช้ไว้บ้าง เช่น คงรูปๆ เดิม คงตำแหน่งๆ เดิม คงคำพูดแบบเดิม เพื่อให้ user ที่เคยชินแบบเก่ามีเวลาปรับตัวเข้ากับ UI ใหม่ได้ทัน ไม่ใช่หักดิบ ไม่เหมือนเดิมเลยแม้แต่น้อย
  • ถ้าต้องเลือกระหว่างแก้ UI ที่ชวนเข้าใจผิด (เช่นกด start เพื่อสั่ง shutdown) ให้เป็นแบบใหม่ กับการสละเอาความเคยชินผู้ใช้เดิมจนชินแล้ว สุดท้ายต้องถามก่อนว่าฐานลูกค้าส่วนไหนสำคัญกว่ากัน
  • UX ที่ดีต้องเกิดจากการใช้งานจริงของผู้ใช้ เป็นที่มาว่าทำไมเราต้องทำ TDD

Using TDD to understand legacy code - Dr.Suradet Jitprapaikulsarn (Naresuan University)

  • เป็นปรมาจารย์ด้าน TDD คนแรกๆ ของประเทศไทย ที่สอน TDD ให้กับนักศึกษาตั้งแต่ปีหนึ่ง!!
  • หัวใจสำคัญข้อแรกของการทำคือ “เขียนโค้ดใหม่เมื่อ test fail เท่านั้น” (Write new code only if a test has failed) - Kent Beck
  • ข้อสอง “จัดการโค้ดส่วนที่ซ้ำซ้อนให้หมดไปซะ” (Get rid of duplication) - Kent Beck
  • หนังสือที่น่าสนใจ:
    • K.Beck, Test-Driven Development by Example, Addison-Wesley, 2003
    • M. Features, Working Effectively with Legacy Code, Prentice Hall, 2004 (เป็นภาษา Python และมี legacy code ที่ bug เกิดจาก syntax ผิดด้วย - -”)
  • ใครว่า test ui ไม่ได้ test ได้แค่มันยากกกก เช่น บริษัทแห่งหนึ่งทำเว็บให้บริษัทขายยา 2 แห่งที่เป็นคู่แข่งกัน core code เหมือนกัน เปลี่ยนแค่ template แต่เสือกสลับ template ผิด ทำให้บริษัทขายยาเข้าใจว่าบริษัทขายยาคู่แข่งไปขโมยข้อมูลของตนมา เรื่องราวโดนฟ้องร้องใหญ่โต

Test Driven Development 3.0 - Twin Panichsombat (Siam Chamnankit)

  • BDD คือการมองจากภาพใหญ่ไล่เข้าไปยังจุดเล็กสุด (unit) ตรงข้ามกับ TDD ที่เริ่มจากจุดเล็กสุด (unit-test) ไล่ออกมาข้างนอก
  • BDD คือ superset ของ TDD มันคือการทำให้เขียน TDD เป็นเรื่องสนุก
  • BDD ยังช่วยให้ Business Analytic อ่าน spec ได้เข้าใจเป็นภาษาคนอีกด้วย ให้ BA มาช่วยเขียน spec ง่ายขึ้นมาก
  • การใช้งาน BDD จำเป็นต้องมี tools ที่ design มาเพื่อการนี้โดยเฉพาะ ใช้ tools เดิมแบบตอนเขียน TDD ไม่ได้
  • Behal เป็น framework สำหรับใช้งาน BDD ในภาษา PHP
  • Rspec สำหรับ Ruby on Rails

Big Data and How to test it - Somkiat Puisungnoen (Siam Chamnankit)

  • Big Data ก็คือการทำงานกับข้อมูลเยอะๆ นั่นแหละ มีขนาดตั้งแต่หลาย GB ขึ้นไป ใช้ mySQL query แล้วมันช้า ต้องรอเป็นวัน
  • ตัวอย่างการใช้งาน Big Data เช่น Modern Information Infrastructure, Semantic Technology, The Logical Data Warehouse, NoSQL DBMS, In-Memory Computing
  • การจัดการกับ Big Data คือการเลือก tools ที่ทำงานเฉพาะทางเข้ามาทำงานแทนแค่บางส่วน ไม่ได้มาแทนที่ mySQL สุดท้ายเราจะยังคงต้องใช้ mySQL อยู่ต่อไป
  • ถ้าปริมาณข้อมูลที่ใช้งานปัจจุบัน คุณสามารถใช้งานได้อย่างปกติสุข รวดเร็ว พอใจอยู่แล้ว คุณก็ไม่จำเป็นต้องกระเสือกกระสนที่จะพยายามใช้ tools สำหรับ Big Data ต่างๆ เพ
  • กฎที่น่าสนใจของ Big Data คือเราควรต้องดูแลข้อมูลเพียงชุดเดียว เพื่อความง่ายในการจัดการ
  • ข้อมูลจะมีค่าเมื่อเวลาผ่านไป ห้ามลบทิ้งถ้าเป็นไปได้
  • ซอฟต์แวร์ที่น่าสนใจสำหรับการประมวลผลข้อมูลแบบ Real time: Storm

จบละครับ :)

วิธีสร้างกราฟ Histogram ด้วย excel 2010 by heha

28
Jul
0

เนื่องด้วยลูกค้าของผมต้องการข้อมูลสถิติการใช้งานเป็น Histogram (ความถี่ของคะแนนที่ผู้เล่นเกมเล่นได้ จัดเป็นกลุ่มๆ) เป็นกราฟสวยงาม เลยต้องจัดให้ซะ

excel1

1. ขั้นแรกต้องติดตั้ง Add-In ซะก่อน เข้าไปที่ File->Options->Add-Ins เลือก Analysis ToolPak จากหัวข้อ Inactive Application Add-ins (ถ้ามันอยู่ใต้หัวข้อ Active Application Add-ins แสดงว่าเคยติดตั้งไปแล้ว) แล้วกด OK

2. เตรียมข้อมูลที่ต้องการสร้างกราฟ Raw Data คือข้อมูลที่ต้องการแปลง ส่วน Bin Range คือระยะความห่างของข้อมูล จากรูปด้านบนคือเป็นช่วง 1-5,6-10,11-15 ไล่ไปเรื่อยๆ

3. เลือก Tab Data

4. เลือก Data Analysis

5. เลือก Histogram

6. เลือก Input Range (ในที่นี้คือ Raw Data ของผม) โดยถ้าเลือกรวมแถบ Label ไปด้วย (Label ผมชื่อ Raw Data ที่เป็นข้อมูล row แรกนั่นแหละ) ให้ติ๊กถูกที่ช่อง Labels ด้วย ส่วน Bin Range คือช่วงของข้อมูลตามที่กล่าวไปข้อ 5 ส่วน Output Option เลือกเป็น New Worksheet Ply และกรอกชื่อ Worksheet ที่ต้องการให้แสดงผลลัพธ์(ควรเป็นชื่อที่ยังไม่เคยสร้างมาก่อน) และเนื่องจากเราต้องการผลลัพธ์เป็นกราฟเลยก็ให้ติ๊ก Chart Output ด้วย (หากต้องการแค่สรุปรวมข้อมูลความถี่แต่ละช่วงเฉยๆ ก็ไม่ต้องติ๊กครับ)

7. จากภาพก็จะเห็นได้ว่า ช่วงคะแนน 1-5 มีอยู่ 6 คน ช่วงคะแนน 6-10 มีอยู่ 2 คน ถูกต้องตามชุดข้อมูลที่เป็นข้อมูลต้นทางครับ อันนี้เป็นแค่ตัวอย่างเท่านั้น ข้อมูลเลยน้อย จริงๆ ข้อมูลผมมีเป็นพันๆ row เลยต้องใช้วิธีนี้ช่วยนี่แหละครับ เราจะได้ผลลัพธ์ออกมาเป็นกราฟทั้้งรูป และตารางข้อมูลดังภาพเลยครับ :)

Project Planning in Agile by heha

30
Jun
0

ไปงาน Agile Thailand 2012 มาครับ เลยขอ blog เก้บไว้หน่อย (เดี๋ยวจะลืม) เป็นเรื่องของการวางแผน Project Planning style Agile โดยมีหลักเบื้องต้นที่ต้องทำความเข้าใจกันก่อนคือ Agile ถูกออกแบบมาสำหรับรองรับการเปลี่ยนแปลงที่เกิดขึ้นตลอดเวลา (โดยเฉพาะอย่างยิ่ง Requirement) ดังนั้นอาจพบเห็นความไม่แน่นอนในหลายๆ อย่างระหว่างวางแผน ผิดกับการวางแผนทั่วๆ ไปที่พยายามจะวางแผนที่แน่นอนให้ได้เช่น

  • คุม Spec ให้นิ่ง Requirement ไม่เปลี่ยน (เป็นไปไม่ได้)
  • กำหนดระยะเวลาเสร็จที่แน่นอนให้ได้ เพื่อจะได้เอาไปบอกลูกค้าได้ถูก (อันนี้ไม่ว่าจะ plan แบบไหนก็คือการเดาด้วยกันทั้งสิ้น)
  • ถ้า Requirement เปลี่ยน ต้องแก้ให้ทันตามที่ลูกค้าต้องการ (ถ้ารับเละ ไม่ดูแรงของทีมงานก็ตายสถานเดียวครับ)

เป็นต้น ซึ่งถ้าทีมงานหรือบริษัทของคุณไม่ได้เป็นบริษัทขนาดใหญ่ (ทีม Programmer 1 ทีมใหญ่กว่า 3 คน) ก็คงไม่ค่อยเห็นภาพอะไรนัก เนื่องจากคนน้อย การบริหารจัดการก็คือการคุยกันเรื่อยๆ เป็นระยะๆ จะดีที่สุดนั่นเอง แต่แม้คนจะน้อย Agile ก็จะช่วยจัดการจัดสรรปันส่วนงานต่างๆ ให้เป็นระเบียบขึ้น ง่ายต่อการเห็นภาพรวมของ project มากขึ้น เรามาดูขั้นตอนการทำงานแบบ Agile กันดีกว่า โดยทีมงานจะแบ่งเป็นสองตำแหน่งหลักคือ Product Owner (คนที่คุยกับลูกค้า รู้ว่าลูกค้าต้องการอะไร) และ Programmer มีขั้นตอนทำงานดังนี้ (ผมจะเขียนเน้นไปทาง Practice ของ Scrum นะครับ แต่ขั้นตอนการสร้าง card จะคล้ายๆ กันหมด)

มาเป็น developer ของ facebook กันเถอะ by kraivit

28
Apr
0

ก่อนอื่นเลยต้องอธิบายว่า developer ของ facebook คืออะไร

จริงๆแล้วก็คือผู้ที่ต้องการจะพัฒนาในส่วนของ application ต่างๆใน facebook

ตัวอย่างเช่น game ต่างๆที่อยู่ใน facebook นั่นเอง

มาเริ่มกันเลยดีกว่า ก่อนอื่นนะครับต้องเข้าไปที่ link นี้เลย

http://developers.facebook.com

ซึ่งเป็นส่วนของการดูแลจัดสรร app ของเรานั่นเอง

เมื่อเข้าสู่หน้าแรกให้ทำการ คลิกที่ apps ด้านบนตามรูป

home developer
หลังจาก เข้าสู่หน้า apps แล้วเราจะพบปุ่ม create new app
create new app
เมื่อทำการกดเข้าไปแล้วจะพบ dialog ให้กรอกข้อมูลขึ้นมา
dialog create
ในช่องแรก app name ให้ทำการกรอก ชื่อที่เราต้องการของ application ในส่วนนี้ขอใส่เป็น flashbooktest
ในช่องที่สอง app namespace นั้นจะเป็น ชื่อที่ตามหลัง http://apps.facebook.com/ นั่นเอง ไว้เป็น url ในการเรียกถึง app-ของเรา ขอใส่เป็น leveluptestapp
เมื่อกรอกแล้วก็กดcontinue ได้เลย
เราก็จะพบหน้า
4
ที่เราจะพูดถึงในครั้งนี้คือส่วนด้านล่าง
5
เราจะพูดถึง app on facebook ให้คลิกเข้าไปเลยครับจะได้หน้าตาดังนี้
6
ซึ่งจะเห็นได้ว่า ตรง canvas page นั้นจะเป็นชื่อที่เราตั้งในตอนแรกนั่นเอง
ส่วน canvas url นั้นให้เรากรอก url ที่เราสร้างเอาไว้แล้วเพื่อจะมาไว้ในfacebook กล่าวคือเราจะต้องมีการทำ app เอาไว้ที่ domian ของเราแล้วนำมา linkเข้ากับ facebookนั่นเอง ขอใส่เป็น http://www.levelup.in.th/trainees/kraivit/testcreate/
และsecure canvas url ส่วนตรงนี้ให้ใช้wrlอันเดียวกับเมื่อกี้เพียงhttpให่เคิมs เข้าไปด้วยเป็น httpsนั่นเอง
เท่านี้เราก็จะสามารถสร้าง app ในfacebookได้แล้ว
เพียงแค่เราไปทำappไว้ที่ http://www.levelup.in.th/trainees/kraivit/testcreate/ ตามที่เรากรอกเอาไว้
เมื่อเราเข้าhttp://apps.facebook.com/leveluptestapp ก็จะพบกับสิ่งที่เราทำนั่นเอง
เพียงแต่ในส่วนของphpที่เราทำขึ้นมานั้นจะต้องมีการติดต่อกับfacebookก่อน ซึ่งสามารถอ่านได้ที่คลิกที่นี่ในข้อที่7ลงไปนะครับ
เท่านี้เองเราก็จะสามารถเป็น developerของ facebook ได้แล้ว ง่ายนิดเดียวเองใช่ไหมครับ ^^

การยื่นแบบภาษี ภงด.91, 90 ให้พนักงานในฐานะนายจ้าง และวิธี setup โปรแกรมยื่นภาษีใน Windows 7 by heha

21
Mar
0

ปีนี้เป็นปีแรกที่ทดลองยื่นผ่านเน็ต พอดาวน์โหลดโปรแกรมมาเสร็จปุ๊บก็ได้เรื่องเลยทีนี้ เปิดไม่ขึ้น - -” สำหรับใครที่ใช้ Windows 7, Vista อยู่ลองอ่านดูเผื่อจะช่วยได้ครับดังนี้ (จริงๆ กรอกในเว็บโดยตรงก็ได้ แต่ถ้า net ดับ session หลุด timeout บลาๆๆๆ จะเศร้าได้ แนะนำให้กรอกผ่านโปรแกรมดีกว่า เวลายื่นผ่านเน็ตก็แค่ upload ขึ้นไปก็เรียบร้อย)