2014/01/17

วิธีจับภาพหน้าจอเว็บไซท์ด้วย Firefox Developer Toolbar (โดยไม่ต้องติดตั้ง Add-ons)

สวัสดีครับทุกท่าน วันนี้ผมมีเทคนิคเล็กๆน้อยๆมาฝากครับ นั้นคือการจับภาพหน้าจอของเว็บไซท์ที่เราต้องการ (บางคนอาจจะติดตั้ง Add-ons แต่วิธีที่ผมจะแนะนำผมว่าง่ายที่สุดแล้วละ และมันดู geek ดี)

Web Developer หลายๆท่านอาจจะรู้จักแล้ว กับเครื่องมือสุดเทพ "web developer tools" ที่ built in มากับเจ้าบราวเซอร์หมาไฟ (mozilla firefox) บางคนอาจจะไม่รู้จักนะครับงั้นเรามาเริ่มใช้งานมันเลยดีกว่า

Step 1: ให้เราเปิดเจ้า web developer tools ขึ้นมาโดยไปที่ Tools -> Web Developer -> Developer Toolbar หรือง่ายๆเลยคือปุ่มลัด Shift + F2

firefox developer toolbar

Step 2: เราจะเห็นเจ้านี้โผล่มาด้านล่างของ browser เป็นแทบสีมืดๆหน่อย
Step 3: ถึงเวลาจับภาพหน้าจอเว็บไซท์แล้วโดยการใช้คำสั่ง screenshot
 
Step 3-1: หรือถ้าเราอยากกำหนดชื่อไฟล์ก็ให้พิมพ์ชื่อไฟล์ต่อได้เลยครับ เช่น screenshot web_capture

Step 3-2: ถ้าเราอยากได้แบบ full web page ให้เพิ่ม options --fullpage เข้าไปดังนี้ครับ screenshot --fullpage web_capture_1

firefox command developer toolbar
 เพียงเท่านี้เราก็จะได้ web screenshot แบบ full page แล้วครับ ใครอยากรู้ options เพิ่มเติมสามารถใช้คำสั่ง help screenshot ดูรายละเอียดเพิ่มเติมได้ครับ
ด้านล่างเป็นภาพตัวอย่างจากการใช้คำสั่ง screenshot

screenshot example

screenshot example

2013/08/14

การ config ใช้งาน encrypted partition หรือ partition ที่ถูกเข้ารหัสด้วย dm-crypt บน Debian / Ubuntu


ในบทความนี้จะกล่าวถึงการ config เพื่อใช้งาน partition ที่ถูกเข้ารหัสด้วย dm-crypt บน Debian / Ubuntu (ย้ำนะว่าบน Debian / Ubuntu บาง linux distribution อาจจะไม่เหมือนหรือคล้ายกัน)
ภาพอธิบายแบบคร่าวๆ เผื่อบางคนไม่รู้ว่า dm-crypt คืออะไร
เริ่มละนะ!!
คำสั่งด้านล่างนี้ต้องใช้สิทธิ์ superuser หรือ root ในการใช้งานคำสั่งต่างๆ ดังนั้นเราควรเป็น root ซะด้วยคำสั่ง
$: su -
หรือใช้ sudo นำหน้าคำสั่งก็ได้เช่น sudo apt-get install cryptsetup เป็นต้น เพื่อบอกว่าเราเป็น superuser นะ

1. ก่อนอื่นเลย ใน linux ของท่านต้องมี cryptsetup package ถ้าใครไม่มีก็ติดตั้งด้วยคำสั่ง
$: apt-get install cryptsetup

2. เมื่อติดตั้งสำเร็จเสร็จสิ้นแล้ว ให้ท่านเปิด file /etc/crypttab ด้วย editor ที่ท่านถนัดและชื่นชอบ เช่น gedit, vim, nano หรือ pico (โดยส่วนตัวแล้วผมชอบ vim)
$: vim /etc/crypttab

3. เมื่อเปิด /etc/crypttab ขึ้นมาแล้ว ให้เพิ่ม config ที่อยู่ในบรรทัดด้านล่างนี้เข้าไป
csda2    /dev/sda2    none    luks,noauto
แล้วก็ทำการ save และออกจาก editor

4. จากนั้นให้เปิด file /etc/fstab ด้วย editor เหมือนเดิม
$: vim /etc/fstab

5. หลังจากเปิด /etc/fstab ขึ้นมาแล้วจะเห็น config เดิมอยู่มากมายอย่าไปสนใจครับ ให้เพิ่มบรรทัดด้านล่างนี้เข้าไป
/dev/mapper/csda2    /secret    ext4    defaults,noauto    0    0
แล้วก็ทำการ save และออกจาก editor

6. เราจะสร้าง directory สำหรับการ mount point partition เข้ารหัสของเราโดยผมจะสร้างไว้ที่ root หรือ / (ไม่ใช่ /root นะครับ)
mkdir /mysecret

7. จากนั้นเราจะเพิ่ม attribute ให้กับ directory ที่เพิ่งสร้างขึ้นมา
chattr +i /mysecret

7.1 ใช้คำสั่งนี้เพื่อป้องกันการเขียน file หรือ directory หรือ ข้อมูลใดๆ ใน /mysecret ในขณะที่ยังไม่ได้ mount partition เข้ารหัสเข้ากับ /mysecret (ผมพยายามอธิบายให้อ่านเข้าใจง่ายๆอ่ะนะ ถ้าอ่านแล้วงงก็ run คำสั่งไปก่อนแล้วไปหาข้อมูลทีหลังก็ได้) เมื่อเสร็จแล้ว ให้ใช้คำสั่งด้านล่างนี้เพื่อดู attribute ถูกกำหนดหรือยัง (ผมไม่มี output มาให้ดูนะครับ พอดีเขียนบทความนี้บนเครื่องอื่น)
lsattr /

8. เมื่อเสร็จสิ้นขั้นตอนข้างบนแล้ว เราก็จะใช้งานกันละทีนี้ เมื่อท่านเปิดเครื่องมาทุกๆครั้งแล้วต้องการใช้ข้อมูลใน partition ที่เข้ารหัสข้อมูลไว้ ให้ใช้คำสั่งดังนี้ครับ
cryptdisks_start csda2
Password: ใส่รหัสผ่านของท่านซะ

9. เมื่อ cryptdisks_start เสร็จ partition เข้ารหัสของเราก็พร้อมที่จะใช้งาน ด้วยคำสั่งด้านล่าง
mount /mysecret

10. ตรวจสอบการ mount ว่าสำเร็จหรือไม่ด้วยคำสั่ง
df -h
เพียง 10 ขั้นตอนง่ายๆ เราก็จะสามารถใช้งาน encrypted partition ได้แล้ว

2013/05/13

GnuPG หรือ GPG นั้นคืออะไรและ มีวิธีใช้งานอย่างไร

GnuPG หรือ GPG นั้นคืออะไร
GnuPG หรือ GPG (คนส่วนใหญ่จะเรียกว่า GPG) คือ cryptographic software หรือ ซอฟท์แวร์ที่เอาไว้เข้ารหัสไฟล์  
แล้ว GnuPG หรือ GPG มันมีประโยชน์อย่างไร
ผมจะสมมตุเหตุการณ์ขึ้นมาดังนี้ ผมมีไฟล์ข้อมูลของ server ตัวหนึ่งซึ่งถูกเก็บอยู่ในไฟล์ server-info.txt ซึ่งในนั้นจะประกอบไปด้วย host, username, password และผมต้องการส่งไฟล์นี้ไปให้เพื่อนผ่าน thumbdrive (สมมตินะครับเพราะชีวิตจริงผมคงไม่ส่งรหัสผ่านให้เพื่อนผ่าน thumbdrive ถ้าไม่จำเป็นจริงๆ) จากนั้นถ้าผมทำเจ้า thumbdrive นี้หายและมีคนที่เชี่ยวชาญเรื่อง IT เก็บได้ อะไรจะเกิดขึ้น? หรือถ้าคุณส่งไฟล์ผ่าน network คุณจะรู้ได้อย่างไรละว่าจะไม่มี Hacker คอย sniff ข้อมูลของคุณอยู่ นี้ละครับความหายนะจะเกิดขึ้นถ้าเราไม่ได้ทำการเข้ารหัสไฟล์

มาดูวิธีการใช้งานเจ้า GnuPG หรือ GPG กันเถอะ
1.ในขั้นแรกเราต้อง generate key ขึ้นมาด้วยคำสั่ง
gpg --gen-key
จากนั้นเราจะต้องตอบคำถามต่างๆดังนี้ เลือกชนิดของ key เป็น RSA กรอก 1
Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1
จากนั้นกำหนดขนาดของ key เท่ากับ 2048
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 2048
เลือกการหมดอายุของ key เป็นแบบ "ไม่มีวันหมดอายุ"
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 0
แล้วก็ตอบ y เมื่อข้อมูลของคุณถูกต้องแล้ว
Is this correct? (y/N) y
จากนั้นก็ให้กรอก ชื่อจริง, อีเมล์, และคอมเมนต์ (คอมเมนต์คือสิ่งที่บ่งบอกว่าเป็นคุณ) ในตัวอย่างนี้ผมใช้ชื่อว่า Neo Anderson (เป็นภาษาอังกฤษเท่านั้นนะครับ ส่วนนี้สำคัญมาก เพราะต้องใช้ในการระบุตัวตนเจ้าของ key ที่แท้จริง)
You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter)  <heinrichh duesseldorf.de>"

Real name: Neo Anderson
Email address: neo_anderson@youremail.com
Comment: Delve Dev
ให้ตรวจสอบข้อมูลว่าถูกต้องหรือไม่จากนั้นก็กรอก o ถ้าข้อมูลถูกต้อง
You selected this USER-ID:
    "Neo Anderson (Delve Dev) <neo_anderson youremail.com>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
ขั้นตอนต้องกรอกรหัสผ่านที่เรียกว่า passphrase สำหรับป้องกัน private key ของเรา
You need a Passphrase to protect your secret key.

Enter passphrase:
ขั้นตอนนี้คือการ generate key โดยคุณจะต้องทำให้ CPU ของคุณทำงานโดยการพิมพ์อะไรก็ได้ที่ terminal ขั้นตอนนี้ทำเพื่ออะไร? เพื่อให้โปรแกรม generate key โดยการคำนวนจากการใช้งานทรัพยากร เพื่อให้ key ของเรามีความซับซ้อนมากขึ้น และไม่เกิด key ที่ซ้ำกัน
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 284 more bytes)
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
พิมพ์ keyboard มั่วๆไปเรื่อยๆ สลับกับขยับ mouse จนกว่าจะมี output เหมือนด้านล่าง
grngpg: /home/delvedev/.gnupg/trustdb.gpg: trustdb created
gpg: key 4EB54E6C marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/4EB54E6C 2013-05-13
      Key fingerprint = FD42 8E30 4C81 5977 AE6D  CEF0 9279 A047 4EB5 4E6C
uid                  Neo Anderson (Delve Dev) 
sub   2048R/FEC8F755 2013-05-13
เสร็จสิ้นการ generate key ตรวจสอบ key ด้วยคำสั่ง
gpg --list-key
ผลลัพท์ที่ได้
/home/delvedev/.gnupg/pubring.gpg
---------------------------------
pub   2048R/4EB54E6C 2013-05-13
uid                  Neo Anderson (Delve Dev) <neo_anderson youremail.com>
sub   2048R/FEC8F755 2013-05-13
เดี๋ยวมาติดตามกันต่อนะครับ

2013/05/12

สร้าง placeholder plugin ด้วย jQuery

ในบทความนี้เป็นตัวอย่าง การสร้าง placeholder plugin ด้วย jQuery ซึ่งถ้าใครไม่รู้จัก placeholder ผมจะพยายามอธิบายให้เข้าใจง่ายๆนั้นคือเจ้า placeholder คือ คำอธิบายสั้นๆที่จะแสดงผลใน input form เพื่อให้ผู้ใช้ได้รู้ว่า input form ควรจะกรอกข้อมูลอะไร ถ้ามองภาพไม่ออกให้ดูในภาพข้างล่างเลยครับ



ซึ่งเจ้า placeholder ก็เป็น attribute ใหม่ใน input form ที่มากับ HTML5 ซึ่งถ้าใครเป็น web developer นั้นจะรู้ดีว่า Browser รุ่นเก่าๆอย่าง IE7, IE8 นั้นไม่สนับสนุน HTML5
แล้วคุณจะทำอย่างไรละถ้าต้องการใช้งานเจ้า placeholder

ลองดูตัวอย่าง code ในส่วนของ placeholder plugin
$.fn.placehold = function(){
 var placeholderEmpty = function() {
  var $this = $(this);
  if ($this.val() == $this.data("placeholder")) {
   $this.val("");
  }
 };

 var placeholderDefault = function () {
  var $this = $(this);
  if ($this.val() == "") {
   $this.val($this.data("placeholder"));
  }
 };

 return function(placeholder) {
  this.data("placeholder", placeholder)
  .focusin(placeholderEmpty)
  .focusout(placeholderDefault)
  .trigger("focusout");
 }
}(jQuery);
วิธีเรียกใช้งาน placeholder plugin
$(function() {
 var username = $('#username');
 var password = $('#password');
 username.placehold('Username');
 password.placehold('Password');
});
ตัวอย่าง demo placholder plugin jquery

2011/12/28

How to change default cursor theme on debian linux.

If you not install graphic environment as first install debian os. You will notice that the mouse cursor theme strange. For me, I don't like the default cursor theme. I have a method for change default cursor theme on the debian linux.

If you use the command "apt-cache search cursor theme". You'll recieve output follow your package list. I have output as follows.


This is a list of the cursor theme.
chameleon-cursor-theme - a modern but not gaudy X11 mouse theme
comixcursors - X11 mouse pointer theme with a comic feeling
crystalcursors - X11 mouse theme with the crystal look&feel
dmz-cursor-theme - Style neutral, scalable cursor theme
emacs-goodies-el - Miscellaneous add-ons for Emacs
icon-slicer - utility for generating icon themes and libXcursor cursor themes
moblin-cursor-theme - moblin cursor theme
oxygencursors - Oxygen mouse cursor theme
texlive-latex-extra - TeX Live: LaTeX supplementary packages
xcursor-themes - Base X cursor themes

And then, you have to choose install one or other package. After installation the cursor theme package type the command as follows:

$:  update-alternatives --config x-cursor-theme

 
In the above figure, I have choose the number 27. When you run the command finished, You have to restart x windows. Now, you have a new default cursor theme on debian linux.

2011/12/24

Can't access to write external harddrive as ntfs file system on debian 6.03

If you don't write data to external harddrive as ntfs file system on debian-6.03, you can make sure about ntfs-3g package installed already. If you haven't install the ntfs-3g package, you should open your terminal and type command now.

Step 1:
$: apt-get update

Step 2: install package
$: apt-get install ntfs-3g

Step 3: Try to mount external hdd again.
$: mount /dev/sdx1 /mnt/external

Step 4: Try to write data to external hdd.

2011/12/18

How to configure wireless networking with WPA/WPA2 on debian

Hi, Everyone.
Today, I'll Introduce you about configure wireless networking with WPA/WPA2 (Wi-fi Protected Access / Wi-fi Protected Access II). I'm try to explanation from the beginning of configure networking in this topic.

What does WPA/WPA2?
  • WPA/WPA2 are two security protocols and security certification programs developed by the Wi-Fi Alliance to secure wireless computer networks. The Alliance defined these in response to serious weaknesses researchers had found in the previous system, WEP (Wired Equivalent Privacy) 
I don't talking about the meaning more than. You can find the meaning from google or more search engine. It's the time to do it now.


You have to type the command as root.
 

Step 1. Install the wpasupplicant.

$: apt-get install wpasupplicant


Step 2. You have to ensure the wireless networking device is working.
$: lspci | grep -i wlan
OR
$: lspci | grep -i wireless
OR
$: lspci | grep -i wifi
OR
$: lspci -nn | grep Network

Example:
Figure 1. Output of "lspci -nn | grep -i Network"
Step 3. Configure wireless networking with WPA/WPA2

$: vi /etc/network/interface



Add new configure for wlan0 device (wlan0 = wi-fi device)
#######################
iface wlan0 inet dhcp
wpa-ssid ap_ssid_name
wpa-key-mgmt WPA-PSK
wpa-group TKIP CCMP
wpa-psk xxxxxxxx
#######################
Save and quit to terminal.


Step 4. Start the networking.

$: ifdown wlan0

$: ifup wlan0

And now, You have connected network with wpa/wpa2 succeed. You can use ping command for testing your connection.

Finally, This is topic use Debian linux for show you how. And I have tested this configure with my laptop (Lenovo Y410). I hope you all understand about my explanation in this topic. I apologize for my bad skill English language. GoodBye.