Earthchie Software Engineer, Front-end Developer, Google Fanboy

วิธีตรวจสอบว่าข่าวที่แชร์บนเฟซบุค ถูกแก้พาดหัวหรือไม่

title

ตอนนี้กระแสการแพ้พาดหัวลิงค์ที่แชร์กำลังเป็นที่นิยม เนื่องจากการดักควายได้สำเร็จมันช่างสะใจยิ่งนัก แต่มันเป็นดาบสองคน บางคนก็เล่นกันแรงเกินไป จนส่งผลต่อภาพลักษณ์ในแง่ลบของเว็บที่ถูกแชร์ เนื่องจากผู้อ่านหลายๆ ท่านไม่ทราบว่าผู้แชร์สามารถแก้พาดหัวได้เองอย่างอิสระ

ล่าสุดวันนี้เพจดังเพจนึง ก็แก้หัวข่าวจากไทยรัฐอีกแล้ว ไม่อ้างอิงละกัน ไม่อยากพาดพิงบุคคลที่สามโดยไม่จำเป็น

เอาเรื่องคนอื่นทิ้งไป เอาที่ผมโดนกะตัวดีกว่า …เมื่อต้นเดือนกันยาที่ผ่านมา เว็บทีวีพูล (ตัวผมเองทำงานอยู่ทีวีพูล ดูแล frontend ของเว็บหลัก) ก็เคยโดนแกล้งในลักษณะนี้ โดนคนอ่านแชร์ไปด่ากันมากมาย

อ่านต่อ

เหตุผลที่ต้องเริ่มนับจาก 0

zero

Update: เนื่องจากอาจารย์ที่สอนผมสมัยเรียน เค้าสะกิดมาว่า สิ่งที่ผมเขียนไว้ข้างล่าง เป็นผลพลอยได้ของการเริ่มนับจาก 0 มากกว่า ซึ่งผลพลอยได้ก็คือผลพลอยได้ ไม่ใช่เหตุผล ในส่วนของเหตุผลจริงๆ นั้น ผมไม่เชี่ยวชาญพอที่จะย่อยข้อมูลให้เข้าใจง่าย โดยไม่ผิดเพี้ยนจากข้อเท็จจริง เนื่องจากต้องมีความรู้เกี่ยวกับภาษาโปรแกรมมิ่งเก่าๆ พอสมควร ในส่วนนี้ผมแนะนำให้อ่านบทความ  Zero-based numbering จากวิกิพีเดียดูนะครับ

Update 2: ทางพี่ดิว Suriya Soutmun ได้กรุณายกตัวอย่างที่เข้าใจง่ายมาให้ ขอบคุณพี่ดิวมา ณ ที่นี้ด้วยครับ

การเข้าถึงข้อมูลที่เรียงต่อกัน วิธีที่เข้าถึงง่ายคือเข้าถึงแบบ relative เราไม่ต้องไปรู้ว่า array ลำดับที่ 1 ถึง n อยู่ตำแหน่งไหนบ้าง ที่เราต้องรู้ก็แค่ว่าตำแหน่งที่ 1 อยู่ตำแหน่งไหน แล้วก็บวกเพิ่มไป
ตำแหน่งที่ 2 ก็คือถัดจากตำแหน่งที่ 1 ไป 1 ตำแหน่ง
ตำแหน่งที่ 3 ก็คือถัดจากตำแหน่งที่ 1 ไป 2 ตำแหน่ง
ตำแหน่งที่ 4 ก็คือถัดจากตำแหน่งที่ 1 ไป 3 ตำแหน่ง
….
แล้วตำแหน่งที่ 1 หละ???
ตำแหน่งที่ 1 ก็คือถัดจากตำแหน่งที่ 1 ไป 0 ตำแหน่ง

ans


ในทางวิทยาศาสตร์คอมพิวเตอร์ เรามักนิยมเริ่มนับจำนวนเริ่มจาก 0 ไม่ใช่ 1 เหมือนอย่างที่มนุษย์ทั่วไปใช้กัน เคยสงสัยมั้ยครับ? จริงๆ มันมีเหตุผลของมันอยู่นะ… อ่านต่อ

ตรวจสอบเลขบัตรประชาชนด้วย Javascript

idcard

ที่มาภาพ Pendar

วันนี้ไม่มีไรครับ สั้นๆ พอดีมีงานที่ต้องทำเจ้านี่ด้วย javascript ก็เลยเอามาแปะลงบล็อกด้วยเลย

function validatePID(pid){
    pid = pid.toString().replace(/\D/g,'');
    if(pid.length == 13){
        var sum = 0;
        for(var i = 0; i < pid.length-1; i++){
            sum += Number(pid.charAt(i))*(pid.length-i);
        }
        var last_digit = (11 - sum % 11) % 10;
        return pid.charAt(12) == last_digit;
    }else{
        return false;
    }
}

ฟังก์ชันนี้ฉลาดพอที่จะลบอะไรก็ตามที่ไม่ใช่ตัวเลขทิ้งไป ดังนั้น พวกขีด(-) เว้นวรรค ( ) ใส่ไปได้ ไม่เป็นไร

ตัวอย่างวิธีการใช้งาน

validatePID('1-2345-67891-23-2');

ผลลัพธ์จะ return ออกมาเป็น boolean ครับ

การใช้เลขฐาน 2 ช่วยทำ User Access Control

customer-builder-team-members

ที่มาภาพ Jan Losert

เป็นเรื่องปกติที่ web application จะมี users หลายตำแหน่ง เช่น Administrator มีสิทธิ์แก้ไขข้อมูลได้ทุกหน้า ในขณะที่ Editor มีสิทธิ์เขียนบทความเฉพาะในหมวดที่ตนเองได้รับมอบหมาย การเขียนโปรแกรมเพื่อกรองสิทธิ์เหล่านี้เรียกว่า “User Access Control”

วิธีการทำ User Access Control นั้นมีมากมายหลายวิธี วิธีที่ง่ายๆ ก็แค่กำหนดสิทธิ์ตายตัวลงไปในโค้ดเลย แต่กับเว็บบางประเภท Requirements กลับซับซ้อนมากกว่านั้น เช่นต้องการให้กำหนดสิทธิ์เข้าถึงเป็นรายบุคคลได้อย่าง Dynamic ผ่านระบบจัดการหลังบ้าน

ซึ่งโดยมากก็มักจะไปจบที่การทำ Table  ของสิทธิ์แยกออกมา แล้วทำการโยงความสัมพันธ์ one-to-many ให้กับ user หรือ role นั้นๆ ว่าเข้าถึงหน้าไหนได้บ้าง

ฟังดูซับซ้อนมั้ยครับ? วันนี้ผมมีวิธีง่ายๆ มาแนะนำ

อ่านต่อ

[Random Quiz] โจทย์ Random Number สนุกๆ

randomnumber_wordle

ช่วงนี้งานเยอะครับ ดองนานเลย 55

เข้าเรื่องๆ คือวันนี้ที่กรุ๊ปชมรมคนทำเว็บ มีคนมาทิ้งโจทย์สนุกๆ ไว้ครับ
ผมชอบโจทย์แนวนี้มาก เลยอยากเอาความสนุกมาแบ่งปัน เผื่อใครชอบโจทย์แนวๆ นี้เหมือนกัน
อ่านต่อ

« Older posts

Copyright © 2016 Earthchie

Theme by Anders NorenUp ↑