Category Archives: How to

Ubuntu on VirtualBox screen resolution problem

ตอนที่เราติดตั้ง Ubuntu ลงบน VirtualBox on Windows มักจะพบกับปัญหาเรื่องขนาดของหน้าจะที่เล็กเกินไป ที่ผมเจอ ขนาดหน้าจะตอน login จะเป็น

ติดตั้งโปรแกรมโดยใช้คำสั่งทั้ง 3 ข้างล่าง

$sudo apt-get install virtualbox-guest-utils 

$sudo apt-get install virtualbox-guest-x11

$sudo apt-get install virtualbox-guest-dkms

หลังจากติดตั้งโปรแกรมเรียบร้อยแล้วก็ reboot

ทดลอง login อีกครั้งหนึ่ง

เท่านี้ก็เรียบร้อยแล้วเราสามารถปรับ ตั้งค่า screen resolution ของ Ubuntu ใน VirtualBox ได้แล้วครับ

Credit: http://askubuntu.com/questions/73589/higher-screen-resolution-for-virtualbox

Advertisements

ปรับแต่ง Terminal ไม่ให้แสดง Path เต็มกันเถอะ

ก่อนจะดูวิธีทำมาดูผลลัพธ์กันก่อน

หากท่านผู้อ่านท่านใด เคยลองใช้ vi ใน Ubuntu แล้วรู้สึกว่าการเข้าไปยัง path ที่อยู่ลึกมากๆ

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

blog นี้จะเสนอวิธีการซ่อน Full path ออกไปให้เหลือแต่เพียงชื่อ Folder ที่กำลังทำงานอยู่

พูดไปก็มองไม่เห็นภาพสักเท่าไร งั้นดูรูปกันเลยครับ

Default Gnome-terminal on ubuntu

After modify (hide full path)

วิธีการทำก็เริ่มกันเลยครับ
1. เปิดไฟล์ “.bashrc” ซึ่งอยู่ใน Home directory ของเราขึ้นมา
2. เพิ่ม code เขาไปเพื่อซ่อน Path

export PS1=’\u@\h:\W$ ‘

Command line mode
1. เปิด Terminal: Alt+F2 and type “gnome-terminal”
2. change directory to “Home Folder”

$ cd ~

3. ใช้โปรแกรม editor ที่ถนัดเปิดไฟล์ “.bashrc” มาแก้ไข

$ vi .bashrc

เพิ่ม code ลงไปจากนั้นพิมพ์ :wq เพื่อบันทึกและออกจากโปรแกรม

4. เรียกค่า config ที่เพิ่งตั้งค่าไป

5. เรียบร้อย ;-P

Graphic mode
1. เปิดโปรแกรม nautilus (Folder Explorer) > ไปที่ Home Folder

2. เปิดให้แสดงไฟล์ที่ซ่อนไว้ (hidden file) โดยการกดปุ่ม Ctrl+h

3. double click เพื่อเปิดไฟล์มาแก้ไข(ใช้ editor ตัวไหนก็ได้แล้วแต่ความถนัด ผมขอใช้ Gedit ที่มีมาให้อยู่แล้ว) เพิ่ม code ลงไปในไฟล์

4. บันทึก และปิด
5. เปิด Terminal ขึ้นมาใหม่ Alt+F2 พิมพ์ “gnome-terminal”
เรียบร้อย

Credit :
http://ubuntuforums.org/showthread.php?t=1793809
http://www.linuxquestions.org/questions/linux-software-2/gnome-terminal-show-only-current-directory-at-prompt-469772/

เปลี่ยนขนาอของตัวอักษรใน Notepad++

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

วิธีการในการปรับขนาดของตัวอักษร

หรือจะใช้วิธีที่รวดเร็วว่า ก็คือ

  • การกด Ctrl ค้างไว้แล้วกด + หรือ –
  • กด Ctrl แล้วหมุนเพื่อ Zoom เข้า/ออก

หรือจะวิธีการเลือกจาก option ของโปรแกรม

Solve บริการ windows installer ไม่สามารถปรับปรุงแฟ้ม windows ที่ถูกปกป้องได้

หลังจากได้ลองติดตั้ง Windows XP ผ่าน Flash drive/USB drive เรียบร้อยแล้วพร้อมทั้งติดตั้ง MS Office 2010 Student เรียบร้อย(สามารถใช้งานได้)  หลังจากนั้น Uninstall MS Office 2010 เพื่อที่จะติดตั้ง Office 2007 เข้าไปแทน แต่พบปัญหาในการติดตั้ง โดยข้อความเตือน(Error message) คือ

บริการ windows installer ไม่สามารถปรับปรุงแฟ้ม windows ที่ถูกปกป้องได้

จากนั้นก็ถามอากู๋(Google) ได้คำตอบว่า

ปัญหาเกิดจากไฟล์ fp4Autl.dll หายไปนั่นเองครับ วิธีแก้ไขก็แค่ copy ไฟล์ fp4Autl.dll ไปไว้ที่
Path “C:\Program files\common files\microsoft shared\web server extensions\40\bin”

หรือ

โหลดไฟล์นี้ไปแล้ว ดับเบิ้ลคลิก ครับ …

http://www.ziddu.com/download/6311186/fp4Autl.exe.htm
mirror
Download from 000driver

เท่านี้ก็จะสามารถแก้ปัญหาการติดตั้ง Microsoft Office 2007 ที่แสดงข้อความ Error “บริการ windows installer ไม่สามารถปรับปรุงแฟ้ม windows ที่ถูกปกป้องได้” ได้และสามารถใช้งาน MS Office ได้ตามปกติ

Credit:
zone-it.com
thaieasycom.blogspot.com
000driver

ลินุกซ์ การเพิ่มผู้ใช้ไปยังกรุ๊ป(Linux add user to group)


วิธีการเพิ่ม Linux User ไปยัง Group ในระบบปฏิบัติการลินุกซ์ 

คุณสามารถใช้คำสั่ง “useradd” หรือ “usermod” ในการเพิ่ม user ไปยัง Linux user group 

คำสั่ง “useradd” เป็นคำสั่งที่ใช้ในการสร้างหรือปรับปรุง(update) ข้อมูลเริ่มต้นของผู้ใช้ที่สร้างขึ้นใหม่

คำสั่ง “usermod” เป็นคำสั่งที่ใช้ในการเปลี่ยนแปลงบัญชีผู้ใช้ 

ตัวอย่างในการใช้คำสั่งนี้ได้ดีและเป็นประโยชน์มากคือการ เพิ่ม user ไปยัง group ที่มีอยู่แล้ว

Group มีอยู่สองแบบคือ กลุ่มแรกเป็น primary user group และกลุ่มที่สองใช้สำหรับเรียก group อื่นๆที่ไม่ใช่ primary group เรียกว่า secondary group

ข้อมูลทั่วไปของผู้ใช้ทั้งหมดจะถูกเก็บอยู่ในไฟล์

  /etc/passwd, /etc/shadow และ /etc/group 


ตัวอย่างการใช้คำสั่ง useradd : เพิ่มผู้ใช้ใหม่ไปยัง Secondary Group
เมื่อคุณต้องการสร้างผู้ใช้ใหม่และต้องการเพิ่มชื่อผู้ใช้นั้นไปยัง group ที่มีอยู่แล้ว 
syntax 

# useradd -G {group-name} username 

ตัวอย่างเช่น คุณต้องการสร้าง username “ikungolf” ไปยัง groupt “developers”

# useradd -G developers ikungolf

แต่ถ้าหากไม่แน่ใจว่า Group “developers” มีอยู่แล้วหรือไม่สามารถตรวจสอบได้ด้วยคำสั่งนี้

# grep developers /etc/group

*** หากมี group อยู่แล้วก็จะแสดงผลลัพออกมาเป็นชื่อ group “developers” ถ้าค้นหาแล้วปรากฏว่าไม่มี group นี้อยู่คุณสามารถสร้าง group ขึ้นมาด้วยคำสั่ง “groupadd

# groupadd developers

หลังจากนั้นก็รันคำสั่ง เพื่อเพิ่มผู้ใช้ใหม่ไปยัง developers group

# useradd -G developers ikungolf

ตั้งค่ารหัสผ่านให้กับ User ที่สร้างขึ้นใหม่ด้วยคำสั่ง

# passwd ikungolf

จากนั้นดูข้อมูลต่างๆของผู้ใช้ด้วยการรันคำสั่ง

# id username

 #id ikungolf

* หมายเหตุ option G ที่เป็นอักษรตัวใหญ่สามารถเพิ่มผู้ใช้ไปยัง group หลายๆ  group ด้วยการใช้ “,” คั่นระหว่าง group โดยไม่ต้องเว้นช่องว่าง
เช่น เพิ่ม ikungolf ไปยัง group admin, ftp, www-data และ developers ใช้คำสั่งต่อไปนี้

# useradd -G admin,ftp,www-data,developers ikungolf

ก่อนหน้านี้ได้พูดถึงการสร้าง User ใหม่และเพิ่มไปยัง Group ที่มีอยู่แล้ว ที่นี้หากต้องการเพิ่ม User ที่มีอยู่แล้วไปยัง Group ที่มีอยู่แล้วล่ะจะต้องทำยังไง 
ก็ไม่ยากครับ คำสั่งจะคล้ายกัน แตกต่างกันตรง option ที่ตัว g จะเป็นตัวพิมพ์เล็กและการใช้ -g จะหมายถึงการเพิ่ม Group นี้เป็นการเพิ่ม Group แบบ Primary group

# useradd -g developers redc0de

*** ในที่ให้ redc0de เป็นชื่อผู้ใช้ที่มีอยู่ในเครื่องแล้ว
ดูข้อมูลของ redc0de

# id redc0de



ต่อไปจะเป็นการใช้คำสั่ง usermod : เพิ่ม User ที่มีอยู่แล้วไปยัง Group ที่มีอยู่แล้ว

ตัวอย่างจะเป็นการเพิ่ม user ikungolf ไปยัง ftp group โดยให้เป็น group แบบ secondary group โดยการใช้คำสั่ง usermod option -a -G โดย “-G” เป็นการบอกว่าให้เพิ่ม Group แบบ secondary group

# usermod -a -G ftp ikungolf

การเปลี่ยน Primary group ของ User ที่มีอยู่แล้วในระบบไปยัง group ต่างๆ

# usermod -g {group-name} username

ตัวอย่าง ต้องการเปลี่ยน primary group ของ ikungolf เป็น developers

# usermod -g developers ikungolf


Tomcat 6 on Fedora Linux

Installing Tomcat 6 on Fedora, Red Hat or CentOS

Install Tomcat using yum

# yum install tomcat6-webapps

Tomcat will get installed across the following directories

/etc/tomcat6             conf files    $CATALINA_HOME/conf
/usr/share/java/tomcat6  libs           $CATALINA_HOME/lib
/usr/share/tomcat6/bin   executables    $CATALINA_HOME/bin
/var/log/tomcat6         logs           $CATALINA_HOME/logs
/var/cache/tomcat6/temp  temp files     $CATALINA_HOME/temp
/usr/share/tomcat6       home directory $CATALINA_HOME
/var/lib/tomcat6/webapps web apps   $CATALINA_HOME/webapps
/var/cache/tomcat6/work  compiled stuff $CATALINA_HOME/work

Set CATALINA_HOME in /etc/profile

export CATALINE_HOME=/usr/share/tomcat6

Tomcat can be stopped, started and restarted using the following commands

# service tomcat6 stop
# service tomcat6 start
# service tomcat6 restart

Credit :: http://serverfault.com/questions/194159/how-to-setup-tomcat-on-fedora 

วิธีการดึง Record สุดท้ายของการบันทึกในฐานข้อมูลอ้างอิงจากตาราง

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

วันนี้จะขอเสนอแนวทางการใช้ SQL เพื่อดึงข้อมูล record สุดท้ายออกมา

แนวทางที่ 1

  • ให้เลือกข้อมูลโดยการเรียงลำดับจากมากไปน้อยก่อน จากนั้นใช้ฟังก์ชั่น limit เข้ามาช่วยในการตัดตััวที่เหลือออกไปเอาแค่ record แรกที่ผ่านการเรียงลำดับจากมากไปน้อยแล้วออกมา

SELECT RECORD_TIME
FROM TABLE1

ORDER BY RECORD_TIME DESC

LIMIT 1
 

แนวทางที่ 2

  •  เป็นการใช้คำสั่ง Max() เพื่อหาค่าสูงสุดออกมาก่อน จากนั้นใช้คำสั่งดึงข้อมูลปกติตามด้วย where ค่า Max() ที่ดึงออกมา

SELECT RECORD_TIME, CUSTOMER_ID
FROM TABLE1
WHERE RECORD_TIME = (SELECT MAX(RECORD_TIME) FROM TABLE1 WHERE CUSTOMER_ID = ‘customer_id’)

ปล. หากท่านใดมีแนวทางอื่นก็ลองมาแชร์กันดูนะครับ