Skip to content

Kor's blog Posts

แก้ปัญหาแบตเตอรี่หมดเร็ว (battery leaks) สำหรับ Linux desktop

Ubuntu ตั้งแต่ 16.04 packages ต่างๆ ของ TLP มีใน official repository แล้วครับไม่ต้องติดตั้งจาก PPA แล้ว ผมใช้ Linux desktop กับ Thinkpad x220 ซึ่งก็ใช้งานได้ดีไม่มีปัญหา ถ้าถามผม ผมว่าเป็นยี่ห้อและรุ่นโน้ตบุ๊กที่เป็นมิตรกับ Linux ที่สุดละ เพราะอุปกรณ์ต่างๆ…

Leave a Comment

Machine Learning #10 | Underfitting VS Overfitting

ห่างหายจากการเขียนบล็อกไปพอสมควรเนื่องจากก่อนหน้านี้งานค่อนข้างยุ่ง เริ่มด้วยเรื่องเบาๆ ก่อนดีกว่า

ในขั้นตอนการเทรนโมเดล เราต้องทำ cross-validation เพื่อเป็นการตรวจสอบว่าโมเดลที่เราเทรนนั้นมัน complex พอที่จะ handle หรือ generalize พอที่จะ predict data ที่เราต้องการหรือเปล่า  การทำ cross-validation นั้นเป็นการตรวจสอบเบื้องต้นว่า model ของเรามันมาถูกทางแล้วหรือยัง มีแนวโน้มจะดีขึ้นหรือไม่แค่นั้นเอง ไม่ได้สะท้อนถึงประสิทธิภาพที่แท้จริงของ model จนกว่าจะเอาไปใช้กับข้อมูลจริง

สมมุติว่าเราต้องการทำ linear regression เมื่อนำ training data มาพล็อตตามแกน x,y แล้วได้กราฟแบบนี้

5 Comments

Node.js | ข้อควรระวังการใช้งาน Async/Await กับ forEach()

หลายคนเข้าใจว่า function ใดๆ ที่รับ callback function เป็น parameter จะทำงานแบบ async เสมอ ซึ่งเป็นความเข้าใจที่ผิด (ผมก็เคยเข้าใจแบบนั้น) แต่บาง function ก็ทำงานแบบ synchrous นะครับ เช่น  forEach()  ที่เป็น built-in function ของ collection ใน JavaScript ก็ทำงานแบบ synchronous เช่นกัน ดู spec ที่นี่

สมมุติว่าผมต้องการ ใช้ async/await กับ forEach() ผมก็สามารถใช้งาน async กับ callback function ที่ส่งเข้าไป เพื่อให้ใช้ await ได้เช่นกัน ดูตัวอย่างโค้ดนี้ครับ

Leave a Comment

Node.js | ลองใช้งาน Async/Await กับ Node 7

Node 7 ออกแล้วนะครับ ตอนนี้รองรับ Es6 features ถึง 98% แล้ว ที่นักพัฒนาดูจะให้ความสนใจกันเป็นพิเศษคือสามารถใช้งาน async/await ซึ่งเป็น synctax  ของ Es7 ได้โดยไม่ต้องติดตั้งตัว transpile อย่าง Babel เพิ่มเติม

แต่ …. ยังไม่ได้เปิดใช้งานเป็นค่า default ถ้าอยากใช้ async/await ต้องใส่ option --harmony-async-await  ตอนรัน 

Leave a Comment

บันทึกการใช้งาน Socket.io v1 และประเด็นที่น่าสนใจ

ใครที่ใช้ Node.js ในการทำ real-time application น่าจะรู้จัก WebSocket และ Socket.io กันเป็นอย่างดี ตอนนี้ Socket.io เดินทางมาถึง version 1 แล้ว (ล่าสุดที่ผมเขียนโพสต์นี้คือ 1.5.0) ซึ่งก็มีหลายอย่างเปลี่ยนไปจากรุ่น 0.9 ค่อนข้างมาก หลายโปรเจกต์ที่ผมเคยเขียนไว้ด้วย version 0.9 ตอนนี้ก็ outdated ไปแล้วไม่สามารถใช้งาน version 1 ได้ แต่ก็มีบางงานที่ใช้ version 1 แล้ว พบประเด็นที่น่าสนใจเลยอยากบันทึกไว้สักหน่อย

Leave a Comment

ทำ Ranking/Leaderboard ด้วย Redis #2

โพสต์ที่แล้ว “ทำ Ranking/Leaderboard ด้วย Redis #1” แล้วผมทำ ranking แบบอันดับซ้ำกันและข้ามอันดับได้ คราวนี้ลองมาทำอีกแบบคืออันดับซ้ำกันและไม่มีการข้ามอันดับดูบ้าง  ranking ที่เราคาดหวังจะเป็นแบบนี้

Leave a Comment

ทำ Ranking/Leaderboard ด้วย Redis #1

โจทย์ของผมคือผมต้องการ

  1. Ranking ที่อัปเดตแบบ real-time
  2. ไม่ query จาก database โดยตรงและ query บ่อยๆ
  3. Rank หรืออันดับสามารถซ้ำได้

จากข้อ 3 อันดับซ้ำกันได้มี 2 แบบ ตัวอย่างเช่น

แบบที่ 1 non-skipped ranking

แบบที่ 2 skipped ranking

1 Comment