Month: March 2014

  • วิธีจัดการ Facebook Spam

    เมื่อ Facebook เป็นสื่อสังคมออนไลน์ที่ใช้กันอย่างแพร่หลาย ก็ย่อมจะมี Spam หรือพวกชอบโฆษณาขายของโน่นนี่นั่นบ้าๆบอๆเข้ามารังคาญ โดยมักจะมากัน 3 วิธี หลักๆ

    1. โพสต์บน Timeline ของเราโดยตรง วิธีนี้ทำให้ Friends ของเรา และคนที่เปิดหน้า Profile ของเรา ต้องทนเห็น Spam พวกนี้ โดยเราไม่ได้เป็นคนโพสต์

    2. พวก Spam จะโพสต์ภาพ บน Timeline ตัวเอง แต่ Tag ว่าเราอยู่ในภาพนั้นๆด้วย เช่น

    3. พวก Spam จะโพสต์ภาพ หรือ ข้อความ ที่ชวนให้คลิกมากๆ แต่พอเราคลิกเข้าไปแล้ว มันจะไปเปิด App ของ Facebook ซึ่งจะขอสิทธิ์ให้เข้าไปดูรายชื่อ Friends ของเรา และ “Post on behalf” หรือ บอกว่าจะขอโพสต์ข้อความบน Timeline ของเรา เหมือนดั่งเราเป็นคนโพสต์เอง วิธีนี้ เลวร้ายมาก เพราะ ถ้าเพื่อนๆของเรา เกิดไปคลิกโพสต์เหล่านั้น ก็จะเข้าวงจรเดียวกัน เกิดการแพร่ระบาดของ Spam บน Facebook ขึ้น เช่น ภาพนี้ เป็น Spam App ชื่อ sv9.iknotz.com เป็นต้น

     

    มาดูวิธีการแก้ไขกัน (ตามภาพ)

    1. ไปที่ (1) คลิกที่ Setting

    2. ไปที่ (2) Timeline and Tagging

    3. ไปที่ (3) Who can add things to my timeline? > Who can post on your timeline? ให้คลิก Edit แล้วควรจะเลือก Friends เพื่อให้ เฉพาะคนที่เรายอมรับเป็นเพื่อนเท่านั้น สามารถโพสต์บน Timeline ของเราได้

    4. ไปที่ (4) Review posts friends tag you in before they appear on your timeline? ให้คลิก Edit แล้วเลือกเป็น Enable เพื่อให้ แม้ว่า คนที่เรารับเป็น Friends ไปแล้ว แต่เราไม่ได้ระวังตัวหรือ คนที่ชอบรับ Friends ไปเรื่อย เห็นสวยๆ ทรงโตๆก็รับไปเรื่อย พวกนี้แหล่ะ มันมักจะเป็น Spam ถ้าพวกนี้เกิดโพสต์ภาพขายของแล้ว Tag เราขึ้นมา ก็ต้องให้เรา Review ก่อน จึงจะแสดงบน Timeline เราได้

    5. สำหรับ พวก Spam App ที่เราเผลอใจ ไปกดเพราะอาจจะ …. หน้ามืด อยากดูจัด เลยคลิกไปเรื่อยๆ ก็ต้องไปลบ Apps ตามภาพ

      โดยไปที่ (5) Apps แล้ว คลิกที่ (6) Show All Apps เพื่อแสดง Apps ทั้งหมด จากนั้นหาชื่อ Spam Apps เช่นตัวอย่าง sv9.iknotz.com หรืออะไรที่ใกล้เคียง หรืออะไรที่เราไม่ควรจะมีไว้ จากนั้นคลิกที่ (7) เพื่อลบ ก็จะปรากฏหน้าต่างดังภาพ

      ให้คลิกดัง (8) เพื่อให้ ลบโพสต์ทั้งหมดของ Spam Apps เหล้านั้นที่ปรากฏบน Timeline ของเรา

     

    ขอให้โชคดี

  • Short Note on Workshop “Web Application Development Workflow”

    ผมชวนเพื่อนๆ CoP PSU IT ซึ่งเป็นรุ่นน้องชื่อคุณราชศักดิ์ บูรณะพาณิชย์กิจ และพัฒนาวดี ศิวติณฑุโก อยู่ที่คณะวิศวกรรมศาสตร์ มาจัด Workshop ใช้เวลา 1 วัน เรื่อง Web Application Development Workflow
    git.6

    วิทยากรเตรียม slide ที่นี้ครับ http://bratchasak.github.io/slide/
    คร่าวๆ คือ แนะว่า Web Application Development Workflow คืออะไร อธิบายว่าขั้นตอนของการพัฒนาและเครื่องมือที่ใช้ในการทำงาน ก็คือ Chrome Browser และ Sublime Text และติดตั้งโปรแกรม Git ใช้งานแบบ command line และ github for Windows แบบ GUI และสมัครบริการที่จำเป็นต้องใช้ก็คือ GitHub web เครื่องมือทั้งหมดนี้ก็จะสร้างระบบ Version control สำหรับการพัฒนาด้วย Git ได้แล้ว

    การเตรียมเครื่องมือสำหรับทำงาน
    1.เกี่ยวกับ Chrome Browser (google chrome)
    ต้องลงชื่อเข้าใช้ google เพื่อทำงานได้ครบทุก Feature
    เข้าเว็บหน้านี้ https://www.google.com/intl/th/chrome/browser/ จะเห็นตัวอย่างชัดๆในการตรวจสอบด้วย Developper Tools
    เปิดหน้าต่าง Developper Tool ด้วย Ctrl+Shift+i
    คลิกเลือกไอคอน แว่นขยาย เพื่อส่องดูโค้ดได้
    นอกจากนี้ก็มีแท็บน่าสนใจคือ แท็บ Console สำหรับ debug และ แท็บ Network สำหรับดู latency load time

    เปิดดูการทำงาน เมนูที่ใช้ใน workshop คือ คลิกปุ่มกำหนดค่าและควบคุม (มุมบนขวา) > เครื่องมือ > ตัวจัดการงาน

    ติดตั้งส่วนขยาย LiveReload
    www.google.com > search คำว่า livereload > เลือก Chrome Web Store – LiveReload
    คลิกปุ่มกำหนดค่าและควบคุม (มุมบนขวา) > เครื่องมือ > ส่วนขยาย > เลือกตัวเลือก อนุญาตให้เข้าถึงไฟล์ URL

    2. ติดตั้งโปรแกรม Sublime Text 3 for Windows
    git.5
    www.google.com > search คำว่า sublime
    เลือกเวอร์ชั่นให้ตรงกับ Windows OS ที่ใช้
    ตาม slide หน้านี้ http://bratchasak.github.io/slide/#sublimetext_package

    ติดตั้ง package เพิ่มลงใน Sublime
    กดแป้น Ctrl+Shift+p > search คำว่า package > เลือก Package Control: Install Package
    > search คำว่า emmet > คลิกเลือก emmet
    > search คำว่า livereload > คลิกเลือก LiveReload
    > search คำว่า syntax คลิกเลือก Syntax Manager

    ต่อมา วิทยากรอธิบาย Software configuration management ว่ามี 3 model คือ Local data model, Client-server model และ Distributed model เช่น Git
    “Git is a free and open source distributed version control system.”
    git.2

    3. ติดตั้ง Git
    เข้าไปเว็บไซต์ http://git-scm.com/ และดาวน์โหลดเวอร์ชั่นสำหรับวินโดวส์ จะได้ไฟล์ Git-1.9.0-preview20140217.exe
    คลิก Run เพื่อติดตั้ง แต่ไม่คลิก Next ทั้งหมด
    ในหน้า Select Components เลือก Simple context menu
    ในหน้า Adjusting your PATH environment เลือก Run Git from the Windows Command Prompt
    ในหน้า Configuring the line ending conversions เลือก Checkout Windows-style,commit Unix-style line endings

    ต่อจากนั้น วิทยากรอธิบายเกี่ยวกับ Git – File Status Lifecycle
    ดูที่ http://bratchasak.github.io/slide/#gitstatus
    git.1

    เริ่มต้นเข้าสู่การใช้งาน Git
    แบบที่ 1 เรียนรู้การทำงานในแบบ command line
    สร้างโฟลเดอร์ที่จะเป็น Repository (ก็คือ project)
    คลิกปุ่ม Start > พิมพ์ cmd
    cd \
    mkdir test
    cd test
    git init
    จะเกิดโฟลเดอร์ชื่อ .git

    ตรวจสอบสถานะ
    git status

    เริ่มต้นด้วยการกำหนดชื่อ identity เจ้าของ repository
    git config –global user.name “Wiboon Warasittichai”
    git config –global user.email “wiboon080808@gmail.com”

    ตรวจสอบรายการในไฟล์ config
    git config –list

    นำไฟล์ index.html เข้าใน project หรือเรียกว่า repository
    git add index.html

    เปลี่ยนเข้าสู่สถานะ staged
    git commit -m “initial commit”

    ตรวจดูรายการแก้ไข
    git log
    หรือ
    แสดงผลแบบ 1 บรรทัดพร้อมด้วยตัวชี้(pointer)
    git log –graph –decorate –all –pretty –oneline

    การแตก branch เพื่อใช้ทำงานเขียนโปรแกรม แทนการแก้ไขที่ master
    git branch feat_test

    เข้าแก้ไขใน branch
    git checkout feat_test

    เปิดหน้า sublime แล้วลองเพิ่ม 1 บรรทัดลงใน index.html

    ต่อไปทำซ้ำรอบในการทำงาน คือนำไฟล์ index.html เข้าใน project (จะเรียกว่า repository)
    git add index.html

    เปลี่ยนเข้าสู่สถานะ staged อีกครั้งแต่รอบนี้เป็นการแก้ไขที่ branch
    git commit -m “1st edit – add 1 line”

    แสดงผลแบบ 1 บรรทัดพร้อมด้วยตัวชี้(pointer)จะเห็นว่า pointer อยู่ที่ branch ชื่อ feat_test
    git log –graph –decorate –all –pretty –oneline

    กลับไปที่ master
    git checkout master

    ดูที่ sublime text editor จะเห็นว่าเป็น index.html ก่อนการเพิ่มอีก 1 บรรทัด
    (แสดงผลที่แตกต่างทันทีจากที่เพิ่ม package ชื่อ LiveReload ลงใน sublime text)

    ต้องการ merge ไฟล์ index.html ของ branch ชื่อ feat_test เข้ากับ branch ชื่อ master
    git merge feat_test

    ตรวจสอบสถานะ
    git status

    สมัครสมาชิก GitHub web เพื่อใช้เป็นที่เก็บ repository ของเราเพื่อเผยแพร่สาธารณะ
    เข้าไปที่ https://github.com/
    git.3

    แบบที่ 2 เรียนรู้การใช้งาน Git แบบ GUI
    git.4
    ต่อไปจะเป็นการใช้ GitHub for Windows (เรียกว่า Client) ให้ดาวน์โหลดที่นี่ http://windows.github.com
    ติดตั้งใช้เวลานิดนึง เพราะไฟล์ขนาด 41.8MB เมื่อเสร็จจะมีหน้าต่าง Welcome เพื่อให้ login
    ก็ใส่ e-mail และ password ที่สมัคร
    ต่อไปจะอยู่ที่ขั้นตอน configure ให้คลิก Next
    อยู่ที่ขั้นตอน repositories ให้คลิก dashboard
    จะเปิดหน้าต่าง ให้เราลาก โฟลเดอร์ชื่อ test มาใส่ที่ local – repositories
    แล้วคลิกลูกศรชี้ขวาที่บรรทัด test จะเป็นคำว่า Open this repo
    คลิก publish
    เมื่อมีการแก้ไข branch master หรือ branch feat_test ก็คลิก Sync

    ในทางกลับกัน หากสร้าง repository จากหน้า GitHub web ก็สามารถ clone ลงไปที่ Windows ได้เช่นกัน
    กลับไปที่ GitHub web โดยเข้าไปที่ https://github.com/
    คลิก New repository
    ตั้งชื่อ Repository name ตั้งว่า ztest แล้วคลิก Create repository
    คลิกปุ่ม Set up in Desktop มันจะมาสร้างไดเรกทอรีที่ c:\My Documents\GitHub\ztest
    Google chrome จะถามอะไรสักอย่าง ก็ให้ตอบ “เปิดใช้งานแอปพลิเคชัน”
    เราก็เริ่มทดสอบสร้างไฟล์ my.html ไว้ที่นี่ แล้ว publish กลับไปที่ GitHub web ได้เมื่อต้องการ

    เรื่องสุดท้าย GitHub – Features อันแรก Collaborators คือ การอนุญาต user บน GitHub ให้ร่วมแก้ไขไฟล์ด้วยกันได้ และอีกอัน Fork & Pull Request คือ เอาไปทั้งหมดแยกกันไปทำแล้วค่อยมารวม และ GitHub Pages คือ การสร้าง web page บน GitHub

    การสร้าง web page บน GitHub ทำดังนี้
    หากเราสร้าง repository ด้วยการตั้งชื่อด้วยข้อความ username.github.io ก็จะได้ web page ไว้ใช้งานด้วย
    ซึ่งสร้างอย่างง่ายๆด้วย Automatic Page Generator (https://help.github.com/articles/creating-pages-with-the-automatic-generator) หลังจากสร้างเสร็จต้องรอ 10 นาที web page ก็จะใช้งานได้
    ทดสอบด้วยการพิมพ์ว่า http://username.github.io ตัวอย่างเช่น http://wiboon.github.io/

    ทั้งหมดนี้ผมก็ฟังไปจดไปในกระดาษ แล้วก็กลับมาลองทำเองดูในวันนี้ แล้วก็เขียนลง sysadmin blog ที่นี้ไว้เผื่อเพื่อนๆด้วยครับ

  • เทคนิคการใช้งานคำสั่ง screen บน Linux

    ในกรณีที่อยู่ภายนอกระบบเครือข่ายมหาวิทยาลัย การจะเข้าถึง Linux Server ของตนเองนั้น อาจจะทำได้โดย

    1. VPN เข้ามา แล้ว จึงใช้ SSH Client ต่างๆ เพื่อเข้าถึง
    2. SSH มายัง Server ที่ เปิดให้ Secure Shell ได้จากภายนอก แล้วจึง ssh จากเครื่องดังกล่าว ไปยัง Server ที่ต้องการ

    ปัญหาคือ การใช้งาน VPN ทำให้ ได้ IP เป็น Private ภายในมหาวิทยาลัย อาจจะไม่สะดวกในบางประการ ครั้นจะต้อง ssh ไปยังเครื่องที่เปิดให้ แล้วค่อยไปต่อก็ไม่สะดวกนัก เพราะ ถ้าต้องทำงานกับหลายๆเครื่อง ก็ต้อง ssh กันหลายรอบ

    บทความนี้ ขอยกตัวอย่างว่า มีเครื่อง xxx.psu.ac.th เปิดให้ ssh จากภายนอกเข้ามาได้ และมีเครื่อง aaa.psu.ac.th, bbb.psu.ac.th, ccc.psu.ac.th และ ddd.psu.ac.th เป็นเครื่องที่ต้องการจะเข้าไปจัดการ ด้วย SSH Client และสมมุติให้เครื่องต่างๆ เปิด Firewall ให้ xxx.psu.ac.th สามารถ ssh ไปได้

    วิธีการหนึ่งที่สะดวกกว่าการ ssh หลายๆรอบ คือ การใช้คำสั่ง screen

    ขั้นตอนคือ

    1. ssh ไปยังเครื่อง xxx.psu.ac.th
    2. ใช้คำสั่ง screen
    3. จากนี้ไป เป็นการติดต่อไปยัง Server ต่างๆ …
    4. ที่ Shell ของ screen บนเครื่อง xxx.psu.ac.th ใช้คำสั่ง ssh username@aaa.psu.ac.th ก็จะได้เข้าถึง aaa.psu.ac.th ได้
    5. เมื่อต้องการ ติดต่อไปยัง bbb.psu.ac.th ก็ กดปุ่ม Ctrl + a แล้วกดตัว c (c ตัวพิมพ์เล็ก) จากนั้นจะได้ Prompt ใหม่ของ xxx.psu.ac.th แล้วใช้คำสั่ง ssh username@bbb.psu.ac.th
    6. เมื่อต้องการ ติดต่อไปยัง ccc.psu.ac.th ก็ กดปุ่ม Ctrl + a แล้วกดตัว c (c ตัวพิมพ์เล็ก) จากนั้นจะได้ Prompt ใหม่ของ xxx.psu.ac.th แล้วใช้คำสั่ง ssh username@ccc.psu.ac.th
    7. เมื่อต้องการ ติดต่อไปยัง ddd.psu.ac.th ก็ กดปุ่ม Ctrl + a แล้วกดตัว c (c ตัวพิมพ์เล็ก) จากนั้นจะได้ Prompt ใหม่ของ xxx.psu.ac.th แล้วใช้คำสั่ง ssh username@ddd.psu.ac.th
    8. ต่อไป หากต้องการดูว่า มีการเชื่อมต่อไปยัง Server ใดไว้บ้าง ใช้คำสั่ง Ctrl + a แล้ว กด ” (Double Quote) ก็จะแสดง รายการของ Server ที่ติดต่อไป โดยนำหน้าด้วย ตัวเลข เริ่มจาก 0, 1, 2 และตามด้วยชื่อ โดยเริ่มต้น จะเป็นชื่อ Shell เช่น bash ทำให้จำได้ยาก แต่สามารถ ใช้ปุ่ม ลูกศร บนคีย์บอร์ด เพื่อเลื่อนขึ้นลงได้ ให้ เลื่อนไปที่อันแรก แล้วกด Enter (ซึ่งก็คือเครื่อง aaa.psu.ac.th)
    9. ต่อไป เราสามารถตั้งชื่อได้ โดยใช้คำสั่ง Ctrl + a แล้วกดตัว A (A ตัวพิมพ์ใหญ่) แล้วตั้งชื่อ เป็น aaa.psu.ac.th แล้วกด Enter จากนั้น ลอง ทำข้อ 8 ใหม่ จะพบว่า สามารถตั้งชื่อได้แล้ว ซึ่งจะง่ายขึ้น ในการสลับหน้าจอ
    10. จากนั้น ทำข้อ 8 เพื่อ สลับไปยัง bbb, ccc, ddd เพื่อตั้งชื่อ
    11. ถ้าต้องการสลับไปตามลำดับ ใช้คำสั่ง Ctrl + a แล้วกดตัว n (n ตัวพิมพ์เล็ก) จะสลับไปเรื่อยๆตามลำดับ
    12. ถ้าต้องการสลับไปยังหน้าจอ ลำดับไกลๆ เช่น เปิดไว้ 8 ตัว ก็กดคำสั่ง Ctrl + a แล้วกด ‘ (Single Quote) ตามด้วย ตัวเลขลำดับของหน้าจอ
    13. เมื่อต้องการ กลับมายัง xxx.psu.ac.th ก็แค่กด Ctrl + a แล้วกดปุ่ม d (d ตัวพิมพ์เล็ก),  จากนี้ หากต้องการหยุดการทำงานแล้ว ก็สามารถ exit ออกไปได้เลย โดยที่ เครื่อง xxx ยังติดต่อกับเครื่อง aaa, bbb, ccc, ddd ไว้เหมือนเดืม
    14. แต่เมื่อต้องการ กลับไปใช้ screen ใหม่ ลองใช้คำสั่ง screen -ls เพื่อเรียกดู Session
    15. และใช้คำสั่ง screen -r เพื่อ กลับไปยัง screen ที่ทำงานค้างอยู่ได้

    วิธีการนี้ ทำให้ งานไม่สะดุด เพราะสิ่งที่ run ค้างไว้ ยังคงทำงานต่อไป และสามารถกลับมาทำงานเมื่อไหร่ก็ได้ แถม คนที่ใช้ Shell ผ่านทาง SmartPhone, Tablet ที่ต้องพิมพ์ Password ยากๆ ก็แค่พยายาม ssh ไปยังเครื่อง xxx ครั้งเดียว หลังจากนั้น ก็สามารถ สลับหน้าจอไปมา โดยไม่ต้องพิมพ์ Password ยากๆเหล่านั้นอีกครับ 😉

    ลองดูครับ

  • แนะนำโปรแกรมตกแต่งภาพสไตร์ Vintage ฟรี

    น่าจัดอยู่ในโปรแกรมประเภท Freeware นะครับ ไว้สำหรับตกแต่งรูปสไตร์ Vintage สวยๆแบบง่ายๆ เรียกว่า แทบไม่ต้องเรียนรู้การใช้งาน แค่กดเลือกรูปแบบเอาเลย ว่าชอบแบบไหน

    XnRetro

     

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

    http://www.xnview.com/en/xnretro/

    อ้อ สำหรับบนมือถือ มี App Free ไว้แต่งภาพบนมือถือด้วยนะครับใช้ชื่อโปรแกรมเดียวกันเลย แต่อาจจะไม่มีพวก Effect บางตวที่สงวนไว้สำหรับเวอร์ชั่นเสียเงินซื้อบ้าง แต่เท่าที่ให้ใช้ฟรีผมว่าใช้ได้เยอะแยะแล้วครับ

  • วิธีการ Charge iPhone ที่ถูกต้อง

    สรุป Battery ของ iPhone
    1. ใช้ Lithium-ion Batteries ซึ่งแตกต่างกับ Nickle-Base Batteries ซึ่งจะมีปัญหา memory effect ดังนั้น สามารถ Recharge ได้ ทุกครั้ง เมื่อมีโอกาส โดยไม่ต้องรอให้หมดแล้วค่อย Charge
    2. Battery ของ iPhone จะมี Charge Cycle ที่ 500 Cycles, โดยแต่ละ cycle คือ จำนวน % ที่ Charge เข้าไป เช่น ถ้าเราใช้ Battery จาก 100% เหลือ 75% หรือ หมายความว่า ใช้ไป 25% แล้ว จะ Charge ทุกครั้ง …. 1 Cycle จะเท่ากับการทำอย่างนี้ 4 รอบ … เมื่อครบ 500 Cycles แล้ว … ฺBattery ก็จะเสื่อม คือเก็บไฟล์ได้แค่ 80% และลดลงเรื่อยๆ
    3. แต่ เพื่อให้ได้ Exercise ควรใช้ให้ Battery “ใกล้” หมด เดือนละครั้ง แต่ …. ห้ามใช้จนหมด
    4. ข้อเสียของ Lithium-ion คือ พอผลิตเสร็จ ออกจากโรงงาน … มันจะเริ่มเสื่อมทันทีไม่ว่าจะใช้หรือไม่ … ดังนั้น ถ้า iPhone4 ออกมา 2 ปี แล้วไปซื้อ แม้ว่าจะเป็นมือ 1 เลย ตัว Battery ก็จะเสื่อมไปบ้างแล้ว T.T
    5. ดังนั้น การใช้ App ที่เปลือง Battery ทำให้ ต้องมีการใช้พลังงานเยอะ ตามมาด้วยการต้อง Charge บ่อยๆ ก็ยิ่งทำให้ Charge Cycle ครบ 500 cycles เร็วขึ้น และการ Charge ไป ใช้ไป อาจทำให้ Battery ร้อน แล้วระเบิดได้

    เท่าที่อ่านมา ประมาณนี้ครับ

    Reference

    http://www.apple.com/batteries/iphone.html
    http://www.apple.com/batteries/
    http://electronics.howstuffworks.com/everyday-tech/lithium-ion-battery.htm
    http://boards.straightdope.com/sdmb/showthread.php?t=475998

  • 7-Eleven Survival #2

    ต่อจาก 7-Eleven Survival #1 ซึ่งเป็นเทคนิคการใช้งานโปรโมชั่นให้เกิดประโยชน์สูงสุด ประจำเดือน มีนาคม 2557

    หลังจากใช้งานจริง พบว่า เราสามารถ ใช้โปรโมชั่นซ้อนโปรโมชั่นได้อีกด้วย !!! ประหยัดเพิ่ม แถม มีเงินเก็บในบัตรเพิ่มด้วย คุ้มป่ะล่ะ !

    เติมเงินในบัตร 250 บาท และซื้อของผ่านบัตร 7-Card ทั้งหมด

    จันทร์
    ซื้อโปรฯ จับคู่อิ่ม : บิ๊กเบา (17 บาท) + นมเปรี้ยว (จาก 20 เหลือ 10 บาท)และ กาแฟแก้ว S ราคา 14 บาท

    รวมจ่าย = 17+10+14 = 41 บาท
    ได้ สิทธิ์แลกซื้อสุดคุ้ม 1 สิทธิ์ (เก็บใบเสร็จไว้ใช้)
    ได้แต้ม = 40/2 =20 แต้ม
    รวมประหยัด 10 บาท

    อังคาร
    ทำเหมือนวันจันทร์
    รวมจ่าย = 17+10+14 = 41 บาท
    ได้ สิทธิ์แลกซื้อสุดคุ้ม 1 สิทธิ์ (เก็บใบเสร็จไว้ใช้)
    ได้แต้ม = 40/2 =20 แต้ม
    รวมประหยัด 10 บาท

     

    พุธ
    ใช้ใบเสร็จไปใช้สิทธิ์และซื้อสุดคุ้ม ซื้อ กาแฟแก้ว M จากราคา 18 บาท ในราคาเพียง 10 บาท

    ใช้ใบเสร็จไปใช้สิทธิ์และซื้อสุดคุ้ม ซื้อ เกี๊ยวหมู CP จากราคา 27 บาท ในราคา 20 บาท

    รวมจ่าย 30 บาท
    ได้แต้ม = 30/2 + 50 = 65 แต้ม
    รวมประหยัด = 8 + 7 = 15 บาท

    พฤหัส
    ทำเหมือนวันจันทร์
    รวมจ่าย = 17+10+14 = 41 บาท
    ได้ สิทธิ์แลกซื้อสุดคุ้ม 1 สิทธิ์ (เก็บใบเสร็จไว้ใช้)
    ได้แต้ม = 40/2 =20 แต้ม
    รวมประหยัด 10 บาท

    ศูกร์
    ทำเหมือนวันจันทร์
    รวมจ่าย = 17+10+14 = 41 บาท
    ได้ สิทธิ์แลกซื้อสุดคุ้ม 1 สิทธิ์ (เก็บใบเสร็จไว้ใช้)
    ได้แต้ม = 40/2 =20 แต้ม
    รวมประหยัด 10 บาท

    สรุป
    จันทร์ – ศูกร์ จ่ายเงินไป = 41 + 41 + 30 + 41 + 41 = 194 บาท
    ได้แต้ม = 20 + 20 + 65 + 20 + 20 = 145 แต้ม
    รวมประหยัดไป = 10 + 10 + 15 + 10 + 10 = 55 บาท
    เหลือตังค์ในบัตร 250 – 194 = 56 บาท
    ได้ สิทธิ์แลกซื้อสุดค้ม 2 สิทธิ์

    ดังนั้น ถ้าทั้งเดือน ทำงาน 4 สัปดาห์ เติมเงิน สัปดาห์ละ 250 บาท ก็เป็นเงินในบัตร 1000 บาท
    ทำอย่างนี้ ก็จะ
    จ่ายเงินไป = 194 x 4 = 776 บาท
    ได้แต้ม = 145 x 4 = 580 แต้ม (คิดเป็นเงินสด = 11 บาท)
    รวมประหยัด =  55 x 4 = 220 บาท
    เหลือเงินในบัตร = 224 บาท

    อิอิ

    ลองดูนะครับ 😉

  • Shorewall Blacklist

    • ใช้ได้กับ Shorewall 4.4.12 ขึ้นมา
    • แก้แฟ้ม /etc/shorewall/interfaces โดยเพิ่มความว่า blacklist ต่อท้ายของเดิม เป็น

    net eth0 detect tcpflags,logmartians,nosmurfs,blacklist

    • เพิ่มลิสต์ที่ต้องการบล็อคลงไปในแฟ้ม /etc/shorewall/blacklist
    • ตัวอย่างค้นหาเครื่องที่ต้องการบล็อคการเข้าถึงพอร์ต 80 และ 443

    grep -R phpmyadmin/scripts/setup.php /var/log/apache2|cut -d: -f2|awk '{ print $1 }'|sort -t'.' -n -k1,1 -k2,2 -k3,3 -k4,4|uniq

    • จากตัวอย่างในเครื่องเราไม่มี phpmyadmin แต่มีคนพยายามเข้าถึงตัวติดตั้ง phpmyadmin ฉะนั้นบล็อค IP พวกนี้ไว้ก่อน (บล็อคถาวรกรั่กๆ…)
    • เอา IP จากข้อที่แล้วมาใส่ในแฟ้ม /etc/shorewall/blacklist รูปแบบ

    #ADDRESS/SUBNET PROTOCOL PORT

    • เช่น

    93.115.210.90 tcp 80,443
    93.174.93.153 tcp 80,443
    94.23.58.185 tcp 80,443
    94.102.51.155 tcp 80,443
    103.247.21.60 tcp 80,443
    107.6.88.155 tcp 80,443
    109.163.232.218 tcp 80,443
    110.170.34.220 tcp 80,443
    111.90.168.5 tcp 80,443
    115.84.101.78 tcp 80,443
    115.238.101.45 tcp 80,443
    115.239.253.11 tcp 80,443
    116.93.105.112 tcp 80,443
    117.35.96.146 tcp 80,443
    118.140.120.26 tcp 80,443
    119.52.254.20 tcp 80,443
    119.57.51.154 tcp 80,443
    122.49.0.220 tcp 80,443
    123.125.148.79 tcp 80,443
    125.210.204.242 tcp 80,443

    • restart shorewall

    sudo shorewall restart

    • IP ที่ถูกแบล็คลิสต์ อาจหายไปจากสารบบ ทำให้ shorewall start ไม่ขึ้น ต้องลบไอพีดังกล่าวออกไปก่อนจึงจะ start ได้

    Compiling /etc/shorewall/blacklist...
    ERROR: Unknown Host (93.x4.93.153) : /etc/shorewall/blacklist (line 23)

    • จบ… ขอให้สนุกครับ

    ที่มา http://shorewall.net/manpages/shorewall-blacklist.html

    • คีย์เวิร์ดสำหรับแบน
    • /CFIDE/administrator/enter.cfm
    • /MyAdmin/scripts/setup.php
    • /myadmin/scripts/setup.php
    • /phpMyAdmin/scripts/setup.php
    • /pma/scripts/setup.php
    • /w00tw00t.at.blackhats.romanian.anti-sec:)
    • เป็นต้น
  • 7-Eleven Survival #1

    แนะนำเทคนิค การใช้ 7-Eleven ให้ได้ประโยชน์สูงสุด ประจำเดือน มีนาคม 2557

    ในฐานะที่เป็น ลูกจ้างรายวัน ของคุณนาย ได้ค่าจ้างวันละ 100 บาทให้มาทำงาน (เช้า + เที่ยง) จึงขอเสนอเรื่อง การใช้โปรโมชั่น เพื่อประหยัดตังค์สุดๆ

     โจทย์

    ต้องการกินกาแฟ กับอาหารเช้า ทุกวันทำงาน และน่าจะมีนมเปรี้ยวไว้กินบ้าง

     สิ่งที่ต้องมี/ต้องทราบ ก่อน

    1. ไปซื้อบัตร 7-Card ราคา 190 บาท ซึ่งเป็นการจ่ายไปฟรีๆ บัตรมีอายุ 3 ปี เมื่อหมดอายุแล้ว เอาไปต่อบัตรใหม่ จะได้ส่วนลด 50 บาท คือ จะจ่ายค่าบัตรใหม่ 140 บาท
    2. เติมเงินครั้งละขั้นต่ำ 50 บาท เติมได้ที่ 7-Eleven
    3. ทุกครั้งที่ซื้อของ โดยจ่ายด้วยมูลค่าในบัตร 10 บาท จะได้ 5 แต้ม
    4. แต้ม 50 แต้ม มีมูลค่า 1 บาท

    สมมุติ ได้บัตรมาแล้ว เติมเงิน 250 บาทไว้

    วิธีการดังนี้

    1. โปรโมชั่น เดือน มีนาคม 2557 มี 3 รูปแบบ
    1.1 แลกซื้อสุดคุ้ม: ซื้อของทุก 40 บาท ได้ 1 สิทธิ์ ที่จะซื้อของเหล่านี้ ซึ่งจะได้ส่วนลดประมาณ 1-15 บาท

    http://www.7eleven.co.th/download/promotionFile16_7-Corp_0314_pdf.pdf

    ตัวอย่างเช่น ซื้อของ 40 บาท จะซื้อ ใส้กรอกฟุตลองแฟรงค์เฟิร์ตไก่ จากราคา 27 บาท ได้ในราคา 20 บาท แถมได้แต้มในบัตร 50 แต้ม (จ่ายเงินไป 20 บาท ได้แต้มเพิ่ม 50 + 2 แต้ม) อะไรทำนองนั้น

    IMG_1433.JPG

     1.2 จับคู่อิ่ม: เขาจะคิดมาว่า ซื้อของกินอย่างนึง จะสามารถเพิ่มเงินแค่ 5, 10 บาท ก็จะได้ของกินเพิ่มอีกอย่างนึง ซึ่งจะประหยัดไปได้ประมาณ 4-10 บาท

    http://www.7eleven.co.th/download/promotionFile12_Combo_0314_pdf.pdf

     ตัวอย่างเช่น ซื้อ บิ๊กเปา 17 บาท เพิ่มเงิน 10 บาท รวมเป็นเงิน 27 บาท จะได้ ชาเย็นแก้วเล็ก 12 Oz. (เรียกว่า ชาเย็นจากราคา 14 บาท ซื้อได้ในราคา 10 บาท ประมาณนั้น)

    1.3 รับแต้มพิเศษ อันนี้สำคัญ เพราะเราจะได้แต้มพิเศษมา โดยจะสามารถเอาไปใช้แทนเงินสด ซื้ออะไรก็ได้ตามใจชอบ กล่าวคือ เขาจะมีของที่จะให้แต้มพิเศษ สะสมในบัตร

    http://www.7eleven.co.th/download/promotionFile2_7-Card_0314_point_pdf.pdf

    ตัวอย่างเช่น ซื้อกาแฟเย็นแก้วใหญ่ 24 บาท จะได้แต้มพิเศษ 300 แต้ม ซึ่งคิดเป็นเงิน 6 บาท ถ้าคิดง่ายๆ เท่ากัย ซื้อ 4 แก้ว พอจะซื้อแก้วที่ 5 ก็เอาแต้ม 300 x 4 =1200 แต้ม ซึ่งเท่ากับ 1,200/50 = 24 บาท ไปใช้แทนเงินสด ก็คือได้แก้วที่ 5 โดยไม่ต้องจ่ายตังค์ เอาแต้มไปแลกแทน หรือ จะเอานมเปรี้ยว 2 ขวดเป็นเงิน 24 บาท จะได้แต้มพิเศษ 400 แต้ม คิดเป็นเงิน 8 บาท คิดซะว่าซื้อไว้ 2 ขวด กินวันนี้ 1 ขวด พรุ่งนี้ 1 ขวด วันถัดไปก็ไปซื้อเอาแต้มอีก … ทำอย่างนี้ 3 รอบ จะได้แต้ม 400 x 3 = 1,200 แต้ม พอรอบที่ 4 ก็เอาแต้ม 1,200 ไปแลกซื้อแทนเงินสด 24 บาท ก็จะได้ ชุดถัดไปมากินฟรี ประมาณนั้น

    คราวนี้ดูว่า จะประหยัดได้เท่าไหร่ (อันนี้ทำจริงๆนะ)

    Solution #1

    จันทร์
    ซื้อ (กาแฟ L + นมเปรี้ยวx2 ) = 24 + 24 = 48 บาท
    ได้ แต้ม = 300 + 400 + (40/2)= 720 แต้ม และ ได้ สิทธิ์แลกซื้อสุดคุ้ม
    เอาใบเสร็จ ใช้สิทธิ์แลกซื้อ ใส้กรอกฟุตลองแฟรงค์เฟิร์ตไก่ ในราคา 20 บาท แถมแต้ม 50 + (20/2) = 60 แต้ม
    รวม จ่ายเงิน 48 + 20 = 68 บาท ได้แต้ม 720 + 60 = 780 แต้ม (คิดเป็นเงิน 780/50 = 15 บาท) และ ได้ส่วนลดค่าใส้กรอก 7 บาท

    อังคาร
    ซื้อ (กาแฟ L + บิ๊กเปา) = 24 + 17 = 41 บาท
    ได้ แต้ม = 300 + (40/2) = 320 แต้ม และได้  ได้ สิทธิ์แลกซื้อสุดคุ้ม เก็บไว้ใช้ครั้งต่อไป
    รวม จ่าย 41 บาท

    พุธ
    ซื้อ (กาแฟ L + นมเปรี้ยวx2 ) = 24 + 24 = 48 บาท
    ได้ แต้ม = 300 + 400 + (40/2)= 720 แต้ม และ ได้ สิทธิ์แลกซื้อสุดคุ้ม (เก็บไว้ใช้)
    เอาใบเสร็จ ใช้สิทธิ์แลกซื้อของวันอังคาร ซื้อเกี๊ยวหมู CP ในราคา 20 บาท แถมแต้ม 50 + (20/2) = 60 แต้ม
    รวม จ่ายเงิน 48 + 20 = 68 บาท ได้แต้ม 720 + 60 = 780 แต้ม (คิดเป็นเงิน 780/50 = 15 บาท) และ ได้ส่วนลดค่าเกี๊ยวหมู CP 7 บาท

    พฤหัส
    ซื้อ (กาแฟ L + นมเปรี้ยวx2 ) = 24 + 24 = 48 บาท
    ได้ แต้ม = 300 + 400 + (40/2)= 720 แต้ม และ ได้ สิทธิ์แลกซื้อสุดคุ้ม (เก็บไว้ใช้)
    เอาใบเสร็จ ใช้สิทธิ์แลกซื้อของวันพุธ ซื้อแซนวิชปูอัดอลาสก้า ในราคา 20 บาท แถมแต้ม 50 + (20/2) = 60  แต้ม
    รวม จ่ายเงิน 48 + 20 = 68 บาท ได้แต้ม 720 + 60 = 780 แต้ม (คิดเป็นเงิน 780/50 = 15 บาท) และ ได้ส่วนลดค่าแซนวิชปูอัดอลาสก้า 6 บาท

    ตอนนี้ จะมีแต้มในบัตร = 780 + 320 + 780 + 780 = 2,660 แต้ม

     ศุกร์
    ซื้อ ชุดอิ่มคุ้ม บิ๊กเปา + ชาเย็น = 27 บาท โดยใช้แต้ม 27 x 50 = 1,350 แต้ม
    จ่าย 0 บาท
    แต้มเหลือ = 2,660 – 1,350 + (20/2) = 1,320 แต้ม

    สรุป

    จันทร์ – ศูกร์ จ่ายเงินไป = 68 + 41 + 68 + 68 + 0= 245 บาท
    ประหยัดไป = 7 + 0 + 7 +6 + 27 = 47 บาท
    เหลือแต้ม 1,350 แต้ม (คิดเป็น 27 บาท)
    เหลือตังค์ในบัตร 5 บาท

     อิอิ

    ลองดูนะครับ 😉

  • แนวทางการแก้ปัญหาความขัดแย้ง (Conflict) ระหว่างปลั๊กอิน JS

    ปัจจุบันมีปลั๊กอิน (Plug-in)  จาวาสคริปมากมาย ที่ช่วยให้การพัฒนาเว็บแอพพลิเคชั่นเป็นไปอย่างสะดวกรวดเร็วและง่ายดาย สามารถสร้างลูกเล่นและความสามารถต่างๆ โดยที่ไม่จำเป็นต้องลงแรงเขียนโค้ด ทำให้ประหยัดเวลาการทำงานได้อย่างมาก

    เฟรมเวิร์ก (Framework) จาวาสคริปที่ได้รับความนิยมอันดับหนึ่งอย่าง Jquery ที่มีปลั๊กอินให้เลือกใช้อย่างมากมายที่เป็นนิยมกันมากและถูกใช้เฟรมเวิร์กพื้นฐานในการพัฒนาเว็บแอพพลิเคชั่นเป็นส่วนใหญ่ แต่หากเรามีความจำเป็นต้องใช้ร่วมกับเฟรมเวิร์กตัวอื่นๆ อาจทำให้เกิดปัญหาความขัดแย้งการทำงาน (Conflict) ระหว่างเฟรมเวิร์กหรือปลั๊กอินได้

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

    หากมีความจำเป็นต้องใช้เฟรมเวิร์กหรือปลั๊กอินจากหลายๆ ค่ายอย่างหลีกเลี่ยงไม่ได้แล้วจริงๆ ผมก็ลองค้นหาวิธีการที่เป็นสูตรสำเร็จแล้วไม่พบว่ามีวิธีการที่ใช้ได้อย่างชัดเจน หากผู้อ่านท่านทราบวิธีการที่ดีกว่านี้ก็แลกเปลี่ยนกันได้ครับ ซึ่งจากประสบการณ์ที่ใช้อยู่ก็มีวิธีการเบื้องต้นที่ได้กล่าวไปแล้วและมีอีกวิธีการเลือกหนึ่งคือ การคัดกรองให้ใช้น้อยที่สุด (Customize) โดยก่อนที่จะดาวน์โหลดปลั๊กอินมาใช้ ซึ่งปลั๊กอินส่วนใหญ่จะมีเมนุที่ชื่อ JavaScript components ให้เลือก

    เทคนิคก็คือเลือกเอาออกให้หมด แล้วคลิกเลือกเฉพาะเท่าที่จำเป็นต้องใช้เท่านั้น ซึ่งเราจะทราบได้โดยการนั่งไล่ชื่อ JavaScript components ระหว่างทั้งสองเฟรมเวิร์กโดยให้ยึดเฟรมเวิร์กตัวใดตัวหนึ่งไว้เป็นตัวทำงานหลัก ยกตัวอย่างที่ผมเคยใช้คือ Jquery Easy UI กับ  Bootstrap ผมจะยึด Jquery Easy UI เป็นตัวทำงานหลัก และปิดการทำงาน JavaScript components ของ Bootstrap  จากหน้าลิงค์นี้ (Customize and download) โดยเอาออกทุกตัวและเลือกกลับเข้าไปใหม่ที่คิดว่าจะทำไม่ให้เกิด Conflict (จุดสังเกตคือชื่อฟังก์ชัน)

    หวังว่าเทคนิคเล็กๆ น้อยๆ จะช่วยแก้ไขปัญหาการ Conflict ให้กับเหล่า web dev ได้บ้างนะครับ

    สวัสดี ^^