Planet TLWG

Subscribe to Planet TLWG feed
Planet TLWG - http://debianclub.org/planet-tlwg
Updated: 1 hour 43 min ago

Kitt: slimfold soft shell wallet

20 December, 2014 - 00:48
Thin . Light . Strong

Kitt: A New Wheel Set

16 December, 2014 - 18:42
สอยมาจนได้ Campagnolo Scirocco 35mm CX

LookHin: ติดตั้งและใช้งาน Tor + Vidalia บน Linux Mint

14 December, 2014 - 16:42

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

เนื่องจากเคยเขียนไปแล้วรอบหนึ่ง ฉะนั้นรอบนี้ก็มาเริ่มติดตั้งกันเลย ไม่ต้องพูดอะไรกันยาว ถ้าอยากอ่านยาวๆ ไปอ่านได้จากบทความเก่านะครับ http://www.unzeen.com/article/2629/

ทำการติดตั้ง Tor และ Vidalia

1
sudo apt-get install tor vidalia

เมื่อติดตั้งเสร็จแล้วให้ทำการเปิดโปรแกรม Vidalia ขึ้นมา แล้วคลิกเข้าไปที่ Setting

คลิกเลือกที่ Sharing และเลือก Run as a client only

จากนั้นคลิกที่ Advanced ในช่อง Tor Control ให้เลือกเป็น Use Unix domain socket (ControlSocket) คลิก OK เพื่อบันทึกข้อมูล

ถ้าหากในขั้นตอนนี้คลิก OK เพื่อบันทึกข้อมูลไม่ได้ แสดงว่า Tor Service ยังไม่ถูก start ขึ้นมา ให้เราทำการ start service ของ tor ด้วยคำสั่งต่อไปนี้ก่อนครับ

1
$ sudo service tor start

จากนั้นคลิก Start Tor

ขั้นตอนถัดไปให้ทำการคอนฟิกบราวเซอร์ให้เรียกใช้งาน Tor ในตัวอย่างผมจะใช้ Firefox นะครับ ให้เข้าไปที่ Preferences -> Advanced -> Network และทำการคลิกที่ Settings ในส่วนของ Connection

ในหน้า Connection Settings ให้เลือกมาที่ Manual proxy configuration และใส่ค่าในช่อง SOCKS Host เป็น 127.0.0.1 และ port 9050

เรียบร้อยแล้วครับ ให้ทดสอบเปิด URL https://check.torproject.org/ เพื่อทดสอบว่าเราใช้งานระบบของ Tor แล้วหรือยัง

LookHin: การติดตั้ง Burg Boot Loader บน Linux Mint

14 December, 2014 - 15:28

จากครั้งที่แล้วที่เราได้ทำการแก้ไขหน้า GRUB Boot Loader จะเห็นว่าแก้ไขอะไรได้ไม่มาก วันนี้เราจะมาลองใช้โปรแกรมอีกตัวหนึ่งคือ Burg Boot Loader ซึ่งจะช่วยให้หน้าจอ Boot Loader ที่ใช้ในการเลือกเข้า OS ต่างๆ ในเครื่องของเราดูดีขึ้นกว่าแต่ก่อน โดยในตัวอย่างนี้ผมจะทำการติดตั้งบน Linux Mint 17.1 คิดว่าถ้าเป็น Debian หรือ Ubuntu ก็น่าจะติดตั้งแบบเดียวกันทั้งหมด

ขั้นตอนไม่ยุ่งยากครับ เริ่มจากการเพิ่ม repo เข้าไป จากนั้นก็ทำการติดตั้งได้เลย

1
2
3
$ sudo add-apt-repository ppa:n-muench/burg
$ sudo apt-get update
$ sudo apt-get install burg burg-themes

ในระหว่างติดตั้งจะมีหน้าจอขึ้นมาถามเกียวกับค่าคอนฟิกต่างๆในระบบนะครับ เราไม่ต้องแก้ไขค่าอะไรให้เรากด OK ไปให้หมดเลยครับ จนถึงหน้าจอสุดท้ายที่จะให้เราเลือก Harddisk ที่เราจะติดตั้ง MBR โดยเราสามารถเลือก Harddisk ที่ต้องการได้โดยการกด Space Bar ให้ช่องด้านหน้ากลายเป็นเครื่องหมายดอกจัน จากนั้นกด OK เป็นอันเสร็จเรียบร้อยครับ (ปกติของคนอื่นจะติดตั้งไปที่ /dev/sda แต่ของผมติดตั้งลงใน Harddisk ตัวที่ 2 เลยได้เป็น /dev/sdb นะครับ)

ถ้าหากในขั้นตอนการติดตั้ง ระบบไม่ได้ถามให้เราเลือกติดตั้ง Burg ไปที่ MBR ของ Harddisk ตัวไหน ให้เราทำการติดตั้งเองโดยใช้คำสั่งต่อไปนี้

1
$ sudo burg-install /dev/sdb

ขั้นตอนถัดไป ต้องทำการเลือก Theme และปรับความละเอียดของหน้าจอกันอีกเล็กน้อย

1
$ sudo burg-emu

เมื่อเข้าไปแล้วจะเจอหน้าจอเหมือนในรูปนะครับ ให้ทำการกด F2 เพื่อเลือก Theme

หลังจากเลือก Theme เสร็จเรียบร้อยแล้ว เดียวเรามาปรับความละเอียดของหน้าจอกันต่อครับ โดยให้เข้าไปแก้ไขที่ไฟล์ /etc/default/burg ซึ่งเราจะแก้กัน 2 จุด คือ

1. เอา # หน้า GRUB_DISABLE_LINUX_RECOVERY=”true” เพื่อไม่ให้แสดงตัวเลือก Recovery
2. ทำการแก้ไขความละเอียดของหน้าจอ โดยแก้ GRUB_GFXMODE=saved เป็น GRUB_GFXMODE=1366×768 (ความละเอียดของจอตัวเองเท่าไรก็ใส่ตามนั้นนะครับ)

1
$ sudo nano /etc/default/burg

ส่วนรูปโลโกของ OS ต่างๆ ถ้าเราไม่ชอบอันที่เขาให้มา เราสามารถเข้าไปเปลี่ยนได้เองที่ /boot/burg/themes/icons นะครับ

หลังจากแก้ไขไฟล์เสร็จแล้วให้สั่ง

1
$ sudo update-burg

เพียงเท่านี้เราก็จะได้หน้าจอ Boot Loader ที่ดูดีขึ้นมาทันที อย่างของผมเลือก Theme refit และเปลี่ยนโลโกจาก Linux Mint เป็นรูปเพนกวินก็จะได้หน้าจอประมาณนี้ครับ

หากต้องการกลับไปใช้ GRUB ใหม่อีกรอบ ให้ใช้คำสั่งดังนี้ครับ

1
sudo grub-install /dev/sdb

Kitt: Skillet Sausage and Potatoes

11 December, 2014 - 05:45

LookHin: เทคนิคการใช้งานคำสั่ง wget เพื่อดาวน์โหลดไฟล์

8 December, 2014 - 09:16

wget เป็นคำสั่งที่ใช้ในการดาวน์โหลดไฟล์ที่นิยมใช้กันบน Linux ซึ่งปกติเราก็จะใช้ในการดาวน์โหลดไฟล์ซอสโค้ดหรือไฟล์โปรแกรมต่างๆ แต่ว่า wget ไม่ได้มีความสามารถแค่นั้น เรายังสามารถสั่งให้โหลดเฉพาะไฟล์ .pdf หรือไฟล์นามสกุลอื่นๆ จากทั้งเว็บไซต์มาเก็บไว้ที่เครื่องเราได้ หรือจะทำสำเนาทั้งเว็บไซต์ลงมาเก็บไว้เลยก็ยังได้ เดียวใช้งานยังไงมาดูกัน

1. อันนี้พื้นฐาน สั่งดาวน์โหลดไฟล์แค่ไฟล์เดียว ใช้คำสั่ง wget แล้วตามด้วย URL ของไฟล์ที่ต้องการ

1
$ wget http://www.linuxmint.com/documentation/user-guide/Cinnamon/english_17.0.pdf

2. หากต้องการเปลี่ยนชื่อไฟล์ด้วยหละก็ให้เพิ่มออปชั่น -O เข้าไป

1
$ wget -O Cinnamon.pdf http://www.linuxmint.com/documentation/user-guide/Cinnamon/english_17.0.pdf

3. จำกัดความเร็วของการดาวน์โหลดด้วยออปชั่น –-limit-rate

1
$ wget --limit-rate=200k http://www.linuxmint.com/documentation/user-guide/Cinnamon/english_17.0.pdf

4. ถ้าหากว่าโหลดไฟล์ไม่เสร็จเครื่องหยุดทำงานไปก่อน ให้เพิ่ม -c เพื่อสั่งให้โหลดต่อจากของเดิม

1
$ wget -c -O Cinnamon.pdf http://www.linuxmint.com/documentation/user-guide/Cinnamon/english_17.0.pdf

5. สั่งให้โหลดเป็นแบ็คกราวโพรเซส โดยเพิ่มออปชั่น -b โดยตัว wget จะสร้างล็อกไฟล์ชื่อ wget-log ขึ้นมา เราสามารถดูว่าโหลดถึงไหนแล้วได้จากล็อกไฟล์นี้

1
$ wget -b http://www.linuxmint.com/documentation/user-guide/Cinnamon/english_17.0.pdf

ดูล็อกไฟล์ว่าดาวน์โหลดถึงไหนแล้ว

1
$ tail -f wget-log

6. สำหรับบางเว็บไซต์ถูกจำกัดว่าจะต้องโหลดจากบราวเซอร์บางตัวเท่านั้น ให้เพิ่มออปชั่น -–user-agent เพื่อกำหนดให้เป็นบราวเซอร์ที่ต้องการ

1
$ wget --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36" http://www.linuxmint.com/documentation/user-guide/Cinnamon/english_17.0.pdf

7. คราวนี้มาลองโหลดทีละหลายๆไฟล์บ้าง ให้ทำการใส่ชื่อ URL ที่ต้องการดาวน์โหลดไว้ในเท็กไฟล์ ในตัวอย่างผมตั้งชื่อว่า download-list.txt

download-list.txt

1
2
3
4
http://www.linuxmint.com/documentation/user-guide/Cinnamon/english_17.0.pdf
http://www.linuxmint.com/documentation/user-guide/Cinnamon/chinese_16.0.pdf
http://www.linuxmint.com/documentation/user-guide/Cinnamon/dutch_17.0.pdf
http://www.linuxmint.com/documentation/user-guide/Cinnamon/german_17.0.pdf

จากนั้นสั่งดาวโหลดทีละหลายๆไฟล์โดยเพิ่มออปชั่น -i แล้วตามดวยชื่อเท็กไฟล์ที่เราได้สร้างเตรียมไว้

1
$ wget -i download-list.txt

8. ต่อไปมาลองดาวน์โหลดเว็บไซต์ทั้งเว็บมาเก็บไว้ดูในเครื่องกันบ้าง โดยใช้ออปชั่น –mirror และ ./www-local คือไดเร็กทอรี่ที่ต้องการให้เก็บข้อมูล

1
$ wget --mirror -p --convert-links -P ./www-local http://www.lookhin.com

9. คราวนี้ถ้าเราอยากได้แค่ไฟล์ที่มีนามสกุล .pdf จากเว็บไซต์ทั้งเว็บ เราก็ใช้คำสั่ง -r –no-parent -A และตามด้วยนามสกุลของไฟล์ที่ต้องการ

1
$ wget -r --no-parent -A.pdf http://www.linuxmint.com/documentation/user-guide/

10. หากต้องการดาวน์โหลดไฟล์จาก FTP ก็สามารถทำได้เช่นกัน

1
$ wget --ftp-user=USERNAME --ftp-password=PASSWORD ftp://ftp.yourdomain.com/document/linux.pdf

LookHin: เปลี่ยนสีตัวอักษรและใส่ภาพพื้นหลังให้เมนูของ GRUB Bootloader

6 December, 2014 - 20:57

ปกติแล้วหลังจากที่เราติดตั้ง Linux เสร็จเรียบร้อย เวลาที่บูตเข้าระบบจะเจอกับหน้าจอของ GRUB Bootloader ซึ่งจะมีตัวอักษรสีขาวบนพื้นดำ หรือไม่ก็จะมี background ที่ติดมากับ Linux ที่เราติดตั้ง เราอาจจะไม่ค่อยชอบมันเท่าไรแต่ก็ต้องเจอทุกครั้งที่บูตเครื่องแน่นอน หลายคนอาจจะไม่ทราบว่าเราสามารถเปลี่ยนรูป background ตรงนี้ได้ ซึ่งขั้นตอนก็ไม่ได้ยุ่งยากอะไร เดียววันนี้เรามาลองทำการเปลี่ยนดู (ผมทดลองบน Linux Mint 17.1 นะครับ เข้าใจว่าสาย debian ก็น่าจะมีวิธีการคล้ายๆกันทั้งหมด)

เริ่มแรกหาภาพที่จะเอามาใช้เป็น background กันก่อนครับ โดยให้ใช้เป็นภาพ .PNG ขนาด 640*480 pixel และสี 8-Bit อันนี้ภาพตัวอย่างของผมนะครับ ไฟล์ภาพตัวอย่าง

เมื่อได้ภาพที่ต้องการแล้วให้ทำการแก้ไขไฟล์ /etc/default/grub.d/50_linuxmint.cfg

1
$ sudo nano /etc/default/grub.d/50_linuxmint.cfg

ให้ทำการเพิ่มคำสั่ง GRUB_BACKGROUND เข้าไป โดยในตัวอย่างผมจะเอาภาพไปไว้ที่ /usr/share/backgrounds/linuxmint-qiana/grub-boot.png นะครับ

1
GRUB_BACKGROUND="/usr/share/backgrounds/linuxmint-qiana/grub-boot.png"

เมื่อทำการใส่ภาพพื้นหลังเรียบร้อยแล้ว เรามาจะทำการแก้ไขสีของตัวอักษรและสีพื้นหลังให้มันเข้ากับภาพที่เราใส่เข้าไปเมื่อสักครู่นี้

1
$ sudo nano /etc/grub.d/06_mint_theme

เพิ่มบรรทัดต่อไปนี้ลงไปในส่วนของ set_mono_theme() โดยมี format เป็น สีตัวอักษร/สีพื้นหลัง แต่เราถ้าใส่พื้นหลังเป็น black มันจะเป็น transparent นะครับ งงกับมันเหมือนกัน – -‘

1
2
3
set menu_color_highlight=black/green
set menu_color_normal=black/black
set color_normal=black/black

โดยสีที่เราสามารถใส่ได้มีทั้งหมดดังนี้

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
black
blue
brown
cyan
dark-gray
green
light-cyan
light-blue
light-green
light-gray
light-magenta
light-red
magenta
red
white
yellow

ขั้นตอนสุดท้ายสั่ง update-grub

1
$ sudo update-grub

เรียบร้อยแล้วครับ บูตเครื่องครั้งหน้าจะเจอกับหน้าจอ GRUB Bootloader ประมาณนี้ครับ

Thep: FOSS Behind my Wedding

25 November, 2014 - 16:08

blog นี้เป็น blog แรกที่ผมเขียนภายใต้สถานภาพ สมรส หลังจากที่ได้เข้าพิธีแต่งงานไปเมื่อวันที่ 26 ต.ค. ที่ผ่านมา (นับถึงวันที่ 25 พ.ย. ที่เขียน blog นี้ ก็ครบ 30 วันพอดี)

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

วีดิทัศน์

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

เครื่องมือแรกที่ใช้คือ dvd-slideshow ซึ่งเป็นชุด command-line สำหรับสร้างวีดิทัศน์จากแฟ้ม spec ซึ่งเป็น text file แต่ติดปัญหาว่ามันมี error message และ gen video ไม่สำเร็จ จึงได้ file Debian #750626 พร้อมเสนอแพตช์แก้ ซึ่งเริ่มมีผลในรุ่น 0.8.4.2-3 ของ Debian

นั่นเป็นการทดลองเครื่องมือก่อน แต่เมื่อเริ่มได้รูปภาพจำนวนหนึ่งมา การจะนั่งจัดเรียงภาพด้วยการ edit text file พร้อมกับเจ้าสาวซึ่งไม่ใช่นักคอมพิวเตอร์ มันก็ลำบากอยู่ จึงได้ไปหาเครื่องมือตัวอื่น จนกระทั่งพบ imagination ซึ่งเป็น GUI โดยใช้ GTK+ 2.0 ซึ่งทำให้สามารถลากจัดลำดับรูปภาพได้ พร้อมกับมี transition ที่หลากหลายกว่า

ปัญหาเกิดขึ้นเมื่อจะ gen video กลับ gen ไม่ได้ เพราะหา FFmpeg ไม่เจอ เนื่องจาก FFmpeg ได้ถูกตัดออกจาก Debian ไปแล้ว จึงได้ไปค้นบั๊กของ Debian พบ Debian #722293 ซึ่งมีผู้รายงานไว้ และได้ forward bug ไปที่ต้นน้ำ (Imagination #78) จึงตามไปคุยและเสนอแพตช์ที่ต้นน้ำ พร้อมกลับมาแปะแพตช์ไว้ที่ Debian ด้วย

ผู้พัฒนาต้นน้ำดูจะไม่กระตือรือร้นสักเท่าไรกับแพตช์ที่เสนอ หลังจากตรวจสอบไปก็พบว่า FFmpeg ยังไม่ตาย ไม่ได้เปลี่ยนชื่อเป็น libav อย่างที่ผู้ดูแลแพกเกจใน Debian และ Ubuntu พยายามจะสื่อถึงผู้ใช้ แต่ libav เป็น fork หนึ่งของ FFmpeg ซึ่งทีม Debian เลือกมาใช้แทน แต่ในดิสโทรอื่นยังคงใช้กันอยู่ และผู้ใช้ Debian/Ubuntu บางส่วนก็ต้องการกลับไปใช้ FFmpeg เหมือนเดิม (อ่าน ตัวอย่างเรื่องเล่าสถานการณ์) และมีนักพัฒนา Debian เสนอกลับเข้ามาใหม่ จนกระทั่ง ได้เข้า experimental และ sid ในที่สุด (แต่ไม่ทัน Jessie freeze จึงไม่มีใน Jessie)

อย่างไรก็ดี ในขณะที่ผมทำวีดิทัศน์ของผมอยู่นั้น Debian ไม่มี FFmpeg ทั้งใน testing และ unstable จึงได้ผลักดันแพตช์ให้ imagination กลับมาทำงานได้ โดยเพิ่มระดับความรุนแรงของ Debian #722293 จาก important เป็น grave เพื่อให้มันกลายเป็น RC bug เพราะถึงอย่างไร FFmpeg ก็จะไม่มีใน Jessie ถ้า Debian จะออก Jessie พร้อมกับ imagination ที่ต้องการ FFmpeg มันก็จะไม่สามารถ gen video ได้เลย จนในที่สุด แพตช์ก็เริ่มมีผลในรุ่น 3.0-5 ของ Debian ส่วนที่ต้นน้ำนั้น ผมเข้าใจแล้วว่าบั๊กนี้ไม่ถือว่ารุนแรงนอก Debian/Ubuntu

เป็นอันว่า กว่าผมจะเริ่มทำวีดิทัศน์ได้ ก็ได้แก้ RC bug ใน Debian ไปแล้ว 2 bug และสามารถสร้างวีดิทัศน์ได้ตามที่ต้องการ

พิมพ์ซอง

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

ผมเริ่มจากเขียน shell script เอง โดยอ่านรายชื่อจาก text file มาสร้างแฟ้ม LaTeX ก่อนคอมไพล์เป็น PDF ทีละราย แต่นั่นทำให้จำนวนไฟล์เยอะมาก PDF 1 แฟ้มต่อแขก 1 คน

ผมจึงมองหาวิธีทำ mail merge ใน LaTeX ดู ก็พบแพกเกจ mailmerge แต่ปรากฏว่าต้องใส่รายชื่อใน LaTeX source เลย แทนที่จะแยกออกมาข้างนอกต่างหาก กลายเป็นว่า PDF ไฟล์เดียวมีซองของแขกทุกคน ทำให้เพิ่มแขกที่จะเชิญทีละกลุ่มได้ลำบาก (คุณนึกออกไหม? เวลาที่นึกได้ว่าควรเชิญญาติคนนั้นเพิ่ม เพื่อนคนนู้นทวงการ์ดเชิญ เพื่อนที่ได้การ์ดแนะนำว่าควรเชิญคนนั้นคนนี้เพิ่มอีก ฯลฯ ผมจึงต้องเตรียมพร้อมที่จะพิมพ์ซองเพิ่มได้ตลอดเวลา)

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

สำหรับ LaTeX ไม่พบบั๊กอะไรครับ ใช้งานได้ราบรื่นดี รายละเอียดการใช้งานสามารถศึกษาจากเอกสารของแพกเกจได้ไม่ยาก (บน Debian ก็แค่สั่ง texdoc ชื่อแพกเกจ บนเทอร์มินัล) หรือถ้ามีเวลา ผมอาจจะเขียนวิธีการในภายหลัง

นั่นคือการใช้ FOSS ในการเตรียมงานแต่งงานของผมครับ ผ่านมาได้ด้วยดี ก็บันทึกไว้เป็นกรณีศึกษาเสียหน่อย :-)

Kitt: ซูชิ

20 November, 2014 - 20:58
เมื่อวาน โมจิไล่กัดซูชิ เป็นแผลใหญ่ ซูชินอนแน่นิ่งจมกองเลือด แต่ยังหายใจอยู่ หลังจากทำแผล ผูกผ้าห้ามเลือด ก็ปล่อยให้นอน ซูชินอนนิ่ง ขยับได้แค่กระดิกหาง เช้ามืด ซูชิไม่ตื่นขึ้นมาอีกแล้ว มันจากไปแล้วเมื่อคืน ที่พักสุดท้ายของซูชิ อยู่หลังบ้านใต้ต้นทับทิม

Kitt: Bike Wheels

18 November, 2014 - 07:36
เห็นพี่ๆ ปั่นจักรยานวินเทจใช้ Campag. Shamal สวยเข้ากับรถมาก วันนี้เลยเข้าเว็บชมชุดล้อ อ่านรีวิวไปเรื่อย เริ่มอยากได้ Campag. Scirocco แต่ว่าพอดูราคาแล้ว คงได้ Bitex ไปแทน Scirocco กับ Bitex มีจุดเด่นต่างกันนิดหน่อย (ราคาก็ต่างกัน ~2-3 กิโล) Scirocco สวย แข็ง และโมเมนตัมแถวๆ 30+ km/h ดี ในขณะที่ Bitex พุ่ง ตอบสนองดี ลื่น และถ้าเลือกรุ่นที่โม่ดีแล้ว “ลื่นมากๆๆ” มีนักปั่นโพสไว้ว่า ทดสอบ Bitex ไหลลงเขา ไม่ปั่น ได้ถึง 80 กม/ชม ทางเรียบสำหรับผม ทั้งคู่น่าจะทำให้ถึง av. 35+ ได้ไม่ยาก แรงอีกหน่อยอาจจะไป 40+ ถึงเวลานั้นค่อยไปกับทีมเคียมห้วย

Kitt: {AWE+PAO}

7 November, 2014 - 02:12
Congrats! See you both on the day.

Kitt: Google Slides

20 October, 2014 - 17:47
Google Slides เวลาสั่งพิมพ์ เลือกขขนาดกระดาษไม่ได้ มันออกเป็น US Letter อย่างเดียว สืบย้อนกลับไปพบว่ามันเป็นแบบนี้มา 2 ปีแล้ว ที่ต้องการเวลานี้ใน Google Slides มี สองรายการ เลือกขนาดกระดาษเวลาพิมพ์ได้ รันเลขหน้าอัตโนมัติ ได้สองรายการนี้ก็แทบจะ cover หมดแล้ว ย้าย platform ได้เลย /me .. ชอบ snap to guide เจ๋ง และ มีประโยชน์ :)

Kitt: 순두부찌개

20 October, 2014 - 01:02
วันนี้ทำกับข้าวให้คุณนายชิม “순두부찌개” สตูว์เต้าหู้อ่อนรสจัดของเกาหลี ทำง่าย อร่อยง่าย 55+

Kitt: Coffee

19 October, 2014 - 00:22
เมื่อวานขณะขับรถผ่านร้านกาแฟ เกิดระลึกชาติได้ว่า ดื่มกาแฟมาตั้งแต่ มัธยมสอง แทบไม่หยุดเลย .. คำนวณหยาบๆ ก็ไม่น้อยกว่า ยี่สิบห้าปี หลังๆ ทำไมคิดอะไรเป็นเลขปีมันเยอะจังวะ วันก่อนคำนวณว่าใช้ลินุกซ์นานขนาดไหนก็ร่วมยี่สิบปี นับเฉพาะเดสก์ท็อปก็สิบห้าปีแล้ว สงสัยจะเข้าสู่วิกฤติ

Kitt: KAIST/IPFGRU 2012

18 October, 2014 - 00:54
Oct. last year I’ve attends KAIST/IPFGRU 2012, held in Seoul and also visited friends in Busan. Here are some photo. :)

Kitt: A minute, an hour, a day, and a lifetime.

18 October, 2014 - 00:18
첫눈에 반하는것 … 일분 걸린다 누군가를 좋아하게 되는건 … 한시간 누군가를 사랑하게 되는 시간 … 하루 누군가를 잊는건 … 평생 걸린다 —  진주 목걸이 Love at first sight … a minute Liking someone … an hour Loving someone … a day Forgetting someone … a lifetime — Pearl Necklace

Kitt: ม.๗

18 October, 2014 - 00:18
ม.๗ มันคือ default ที่วางท้ายสุดใน switch หรือ else สุดท้าย ใน else-if construct command ใน default / else ต้องหยิบเอา functions ที่เคย define มาแล้ว ใช้กันมานานมาใช้ โดย pass parameter ของกรณีนี้ไปเป็น input ถ้าจำเป็น จะ wrapper / template / polymorphism อะไรก็ว่ากันไป .. #ห๊ะ

Kitt: when it happens, it happens ..

18 October, 2014 - 00:17
เมื่อคราวปี 49 “เคย” มีเหตุมาแล้ว มันก็เลยกลายเป็นตำนานต่อๆ กันมา

Kitt: มหกรรมหนังสือระดับชาติครั้งที่ 19

18 October, 2014 - 00:14
เข้า กทม. ไปบรรยายเรื่อง Cloud บ่ายแก่ๆ ว่างมาเดินงานหนังสือ มาไวไปไว คินดะอิจิยอดนักสืบ ตอนที่ 27 เสือดำจากรัตติกาล คินดะอิจิยอดนักสืบ ตอนที่ 28 โรงละครผีสิง คินดะอิจิยอดนักสืบ ตอนที่ 29 หน้ากากมรณะ คินดะอิจิยอดนักสืบ ตอนที่ 30 ปฏิทินแม่มด มิเกะเนะโกะโฮล์มส์ แมวสามสียอดนักสืบ ตอนที่ 21 สนามสอบมหาภัย มิเกะเนะโกะโฮล์มส์ แมวสามสียอดนักสืบ ตอนที่ 22 ปริศนาโฮล์มส์หนีออกจากบ้าน เอส คำสาปกลายพันธุ์ พุ่มรัก พานสิงห์ ชุด 5 คดีล่าคนเจ้าชู้ พุ่มรัก พานสิงห์ ชุด 6 คดีศพล่องหน หมดไป 1,627 บาท สบายใจละ

LookHin: เพิ่มความปลอดภัยให้ระบบล็อกอินบนเว็บด้วยการทำ 2 Step Verification

16 October, 2014 - 13:37

บทความนี้จะเป็นการแนะนำการใช้งาน Google Authenticator และทดสอบการทำ 2 Step Verification แบบ TOTP (Time-based One-time Password) เพื่อเป็นแนวทางในการทำระบบล็อกอินในหน้าเว็บไซต์ให้มีความปลอดภัยมากขึ้น โค้ดที่ใช้ทดสอบในบทความนี้จะเป็น PHP ที่สามารถโหลดได้ฟรีจาก Github หรือหากต้องการใช้ไลบรารีในภาษาอื่นเช่น Python, .NET หรือ HTML5 ให้ลองดูจากข้อมูลอ่างอิงจาก Wikipedia ในท้ายบทความนะครับ

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

Google Play
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2

App Store
https://itunes.apple.com/en/app/google-authenticator/id388497605?mt=8

จากนั้นทำการโหลดไลบรารีจาก https://github.com/chregu/GoogleAuthenticator.php ทำการ unzip ให้เรียบร้อย เดียวเราจะใช้เฉพาะไฟล์ที่อยู่ในโฟลเดอร์ /lib

เขียนโปรแกรมเพื่อสร้าง Security Key ซึ่ง Key ที่ได้จะเป็นตัวอักษรภาษาอังกฤษกับตัวเลขรวมกัน 16 ตัว จากชุดตัวอักษรต่อไปนี้ “ABCDEFGHIJKLMNOPQRSTUVWXYZ234567″ เราอาจจะสุ่มออกมา 16 ตัวเองก็ได้นะครับ

1
2
3
4
5
6
7
8
9
<?php
include_once("lib/GoogleAuthenticator.php");
 
$g = new GoogleAuthenticator();
$secret = $g->generateSecret();
 
echo $secret;
 
?>

นำค่า Security Key ที่ได้ไปสร้าง QR Code อันนี้ใครจะทำโปรแกรมสร้าง QR Code เองก็ได้ ซึ่งผมแนะนำให้สร้างเองดีกว่าอย่างน้อย Security Key ก็จะได้ไม่หลุดออกไปที่อื่น แต่ในบทความนี้จะใช้ทดสอบการทำงานเท่านั้น ฉะนั้นผมจะสร้างจากเว็บที่ให้สร้าง QR Code แบบออนไลน์เลยนะครับ ในทีนี้ผมจะใช้ http://qrcode.kaywa.com/

โดยให้ใช้สตริงต่อไปนี้ในการสร้าง QR Code

1
otpauth://totp/LABEL?secret=SECURITY_KEY&issuer=ISSUER_NAME

LABEL = ข้อมูลที่จะแสดงในโปรแกรม Google Authenticator ว่ารหัสนี้จะใช้กับอะไร
SECURITY_KEY = Security Key ที่เราสร้างจากขั้นตอนที่แล้ว
ISSUER_NAME = ชื่อหน่วยงานของเรา

จริงๆ ทั้ง LABEL และ ISSUER_NAME เราสามารถตั้งเป็นอะไรก็ได้นะครับ

จากตัวอย่างสตริงที่จะใช้สร้าง QR Code ของผมก็จะเป็น

1
otpauth://totp/www.unzeen.com?secret=DG4WCXVUVYENHLLS&issuer=2-Step-Login

เมื่อสร้างแล้วจะได้ QR Code ออกมาประมาณนี้

ทำการสแกน QR Code ที่ได้ เพื่อทำการเพิ่มข้อมูลลงในโปรแกรม Google Authenticator เมื่อเสร็จแล้วจะเห็นว่ามีรหัสของเราขึ้นมาแสดงที่หน้าของโปรแกรม Google Authenticator อย่างในรูป

ขั้นตอนสุดท้าย เขียนโปรแกรมเพื่อทำการตรวจสอบว่ารหัสที่ป้อนเข้ามาถูกต้องหรือไม่

1
2
3
4
5
6
7
8
9
10
11
12
<?php
include_once("lib/GoogleAuthenticator.php");
 
$g = new GoogleAuthenticator();
 
if ($g->checkCode("DG4WCXVUVYENHLLS",$_GET['code'])) {
    print "YES \n";   
} else {
    print "NO \n";
}
 
?>

อ้างอิง:
http://en.wikipedia.org/wiki/Google_Authenticator
https://github.com/chregu/GoogleAuthenticator.php
https://support.google.com/accounts/answer/1066447?hl=en

Pages

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้