วันเสาร์ที่ 2 ตุลาคม พ.ศ. 2553

Installing BloGTK on ubuntu

Fist what is BloGTK
BloGTK is a client for weblog systems like Blogger, WordPress, and Movable Type. BloGTK makes managing blog posts easy, especially for people who have multiple blogs. BloGTK works with any blogging system that supports XML-RPC publishing. BloGTK will run on any system that supports the GNOME desktop environment.
from https://launchpad.net/blogtk/

to install it
open terminal (of course i'm command line addict) and follow the command
sudo apt-add-repository ppa:jayreding/ppa
sudo apt-get update
sudo apt-get install blogtk


FINISH!!!
have fun

วันศุกร์ที่ 14 พฤษภาคม พ.ศ. 2553

[ HOWTO] ลบ recovery mode และ memtest86+ ออกจากเมนู

คำเตือนกระทู้ไม่เหมาะกับผู้ใช้ที่มีอาการ command line phobia หรือผู้ใช้ที่สังกัดกลุ่ม anti command line



เวลาที่ลง linux หลายๆ ตัวเนี่ยมันจะรายการเมนูของ GRUB ให้เลือกมากมายเลยละ และครึ่งหนึ่ง เราไม่ค่อยมีโอกาสได้ใช้มัน

นั่นก็คือ recovery mode และ memtest86+

และถ้าเอาส่วนนี้ออกก็จะทำเราเลือกเข้า OS อื่นๆ ได้ง่ายขึ้น (สำหรับผมแล้วอย่างน้อยก็ประหยัดการจิ้มคีย์บอร์ดไป 2-3 ที )

ข้อควรระวัง เจ๊งขึ้นมาอย่าว่ากันนะ

เริ่มแรก เอาออก recovery mode ก่อน

ต้องการลบ recovery mode ของ linux ตัวใหนก็บูตเข้าตัวนั้น
เปิด terminal (เธอว์ไม่นอน) ขึ้นมาก่อน จากนั้น

sudo gedit /etc/default/grub

มองดูที่บันทัดสุดท้าย มันจะประมาณนี้

#GRUB_DISABLE_LINUX_RECOVERY="true"

ให้เรา uncomment ด้วยวิธีการลบ # ออก แล้วก็เซฟ แล้วก็ปิด gedit
จากนั้น

sudo update-grub

เป็นอันเสร็จสิ้นการลบ recovery mode ออกจากเมนูของ GRUB


แต่มันยังไม่จบ!!! ยังอยู่ใน terminal

sudo fdisk -l /dev/sda

ให้สังเกต * ว่าอยู่ที่ partition ใหนก็ให้เราบูตเข้าตัวนั้น
แล้วก็เปิด terminal อีกรอบนึงจากนั้น

sudo chmod -x /etc/grub.d/20_memtest86+
sudo update-grub

เป็นอันเสร็จสิ้น

โปรดฟังอีกครั้ง

เจ๊งขึ้นมาอย่าว่ากันนะ

วันจันทร์ที่ 10 พฤษภาคม พ.ศ. 2553

[HOWTO] แก้ปัญหาภาพ delay/lag เมื่อ activate การ์ดจอ ATI บน ubuntu

ปัญหาเดิมๆ สำหรับผู้ใช้ ATI ที่มีตั้งแต่ karmic (หรืออาจจะก่อนหน้านั้น) และยังตามมารังควาญใน lucid อีกนั้นคือ เมื่อเรา activate ไดรเวอร์การ์ดจอแล้วการตอบสนองของภาพจะช้าจนน่ารำคาญ

มาลองดูวิธีแก้กัน (ขอใช้ command line นะเธอแบบว่าคร้านอธิบายยาวๆ)
กดคีย์บอร์ด ALT+F2 แล้วก๊อปคำสั่งข้างล่างนี้ไปวางได้เลย

sudo apt-add-repository ppa:info-g-com/xserver-xorg-1.7.6-gc ; sudo apt-get update ; sudo apt-get upgrade

จากนั้นก็ Run
พิมพ์รหัสแป๊บนึงแล้วก็รอๆ

เสร็จแล้วอย่าลืมตามไปแก้แมงอีกตัวนึงที่เกิดจาก activte ไดร์เวอร์การ์ดจอตามนี้เลย http://forum.ubuntuclub.com/forum/topic,15449.0.html

สุดท้ายอย่าลืมกลับมาแจ้งผลลัพธ์ด้วยนะครับ

วันศุกร์ที่ 30 เมษายน พ.ศ. 2553

[HOWTO] ปิดใช้งาน swap เมื่อไม่จำเป็น !!!

ระหว่างรอรถกลับบ้านก็ขอเขียน howto เล็กๆ น้อยๆ แบ่งปันกัน

ช่วงนี้มีงานต้องใช้ ram มากๆ อยู่บ่อยครั้งและสังเกตว่า ubuntu เราจะใช้ swap ทั้งๆ ที่ ram ยังเหลืออีกมากพอสมควร ทำให้มีผลกระทบต่อประสิทธิภาพในการทำงาน

หลังจากค้นหาวิธีการไม่นานก็ได้วิธีแก้ปัญหา

1. ปิด swap เมื่อไม่จำเป็น ใช้คำสั่ง
sudo swapoff -a

2. เมื่อมีงานที่ต้องใช้หน่วยความจำมากๆ ก็เปิดใช้งาน swap ด้วยคำสั่ง
sudo swappon -a

วันพุธที่ 3 กุมภาพันธ์ พ.ศ. 2553

HOWTO: เร่งความเร็วให้ apt-get ด้วย apt-fast (อีกแล้ว)


คำเตือนกระทู้ไม่เหมาะกับผู้ใช้ที่มีอาการ command line phobia หรือผู้ใช้ที่สังกัดกลุ่ม anti command line

apt-fast เป็น script ที่ช่วยในการ install, upgrade, dist-upgrade ผ่านคอมมานด์ไลน์ได้เร็วขึ้น

ไม่ต้องมีคำอธิบายมาก เริ่มเลยดีกว่า
0. เปิด terminal ขึ้นมาก่อนเลย

1. ติดตั้ง axel

sudo apt-get install axel

2. จากนั้นก็โหลด apt-fast มาทำการสิงสถิตในเครื่องเรา

wget http://www.mattparnell.com/linux/apt-fast/apt-fast.sh -U ''

3. จัดให้มันเข้าทีนิดนึง

sudo mv apt-fast.sh /usr/bin/apt-fast

4. สุดท้ายอย่าลืมตั้งให้มันเป็น executable file

sudo chmod +x /usr/bin/apt-fast

5. จบ

exit

สรุป

sudo apt-get install axel
wget http://www.mattparnell.com/linux/apt-fast/apt-fast.sh -U ''
sudo mv apt-fast.sh /usr/bin/apt-fast
sudo chmod +x /usr/bin/apt-fast

วิธีใช้งานก็เหมือนใช้ apt-get เพียงแต่จะทำได้แค่ install, upgrade, dist-upgrade

sudo apt-fast upgrade

โอ้วซาร่า ด้วย apt-fast อันนี้คุณสามารถดาวน์ไฟล์เพื่อติดตั้งโปรแกรมได้เร็วขึ้น 2 เท่า!!!

ปล. เท่าที่ลองใช้มา apt-fast ไม่เหมาะกับการโหลดไฟล์เล็กๆ

ขอบคุณ http://www.webupd8.org/2010/01/new-apt-fast-version-now-with-full-full.html

เขียนตั้งครั้งแรกใน ubuntuclub

ว่าด้วยเรื่องจำนวนเฉพาะ (prime number)


เอามาที่เขียนเอาไว้ใน ฟอรั่มคณะ นานละ เอามาแก้ไขจุดพิมพ์ผิด ตกหล่น

แบ่งปันกันหน่อย สำหรับเพื่อนๆ ที่เรียน programming



เนื่องจากผมและเพื่อนๆ รหัส 52 มีโจทย์ฝึกเรื่องจำนวนเฉพาะ

เลยเอามาเขียนสักหน่อยเป็นการคลายเครียดหลังสอบเก็บคะแนน math2 T-T

จำนวนเฉพาะ (Prime Numbers)
คือจำนวนเต็มบวกที่ไม่มีเลขใดหารมันลงตัวนอกจาก 1 และตัวมันเอง และ 1 ไม่ใช่จำนวนเฉพาะ

วิธีการหาจำนวนเฉพาะ
แบบง่ายๆ
function is_prime(n)
for i=2 to i<n i=i+1
if n mod i = 0
return 0
return 1

วิธีการที่เร็วขึ้นมาอีก
function is_prime(n)
for i=2 to i<=sqrt(n) i=i+1
if n mod i = 0
return 0
return 1

วิธีนี้แทนที่เราจะเอาตัวเลขตั้งแต่ 2 ถึง n-1 มาลองหาร เราก็เอาแค่ 2 ถึง sqrt(n)
เหตุผลนั้น จำไม่ได้ -_- แต่สามารถอธิบายได้ด้วยคณิตศาสตร์

ปรับปรุงอัลกอฯ นิดหน่อย
function is_prime(n)
lim = sqrt(n)
for i=2 to i<=lim i=i+1
if n mod i = 0
return 0
return 1

เราหา sqrt(n) เก็บไว้ในตัวแปร จะทำให้เราไม่ต้องหา sqrt(n) ทุกรอบของ for

เปลี่ยนรูปของเงื่อนไข
function is_prime(n)
for i=2 to i*i<=n i=i+1
if n mod i = 0
return 0
return 1

วิธีนี้จะเร็วกว่าการวิธีการก่อนหน้านี้นิดนึง

ตรวจสอบจำนวนคู่
function is_prime(n)
if n = 2
return 1
if n mod 2 = 0
return 0
for i=3 to i<=sqrt(n) i=i+2
if n mod i = 0
return 0
return 1

เพราะเรารู้อยู่แล้วว่าจำนวนคู่ทุกตัวยกเว้นสองนั้นไม่ใช่จำนวนเฉพาะ
ง่ายๆ แค่นี้ ทำให้การหาจำนวนเฉพาะนั้นเร็วขึ้น


ยังเร็วไม่พอ?

มีความจริงอยู่ข้อหนึ่ง n จะเป็นจำนวนเฉพาะถ้าไม่มีจำนวนเฉพาะใดที่ต่ำกว่า sqrt(n) หาร n ลงตัว

ทำยังไงละ

*สมมุติว่าค่า n สูงสุดที่เราต้องการทราบว่าเป็นจำนวนเฉพาะหรือไม่คือ 2^31-1 (2,147,483,647) = ค่าสูงสุดของ int 32bit
*สร้าง array ของจำนวนเฉพาะที่น้อยกว่า sqrt ของค่าสูงสุด (ประมาณ 46340.95) จะได้จำนวนเฉพาะทั้งหมด 479 ตัว
*จากนั้นนำจำนวนเฉพาะที่น้อยกว่าหรือเท่ากับค่า sqrt ของจำนวนที่ต้องทราบไปหาร ถ้าหารลงตัวแสดงว่าไม่ใช่จำนวนเฉพาะ

ไม่เข้าใจ?

สมมุติว่าค่าสูงสุดที่เราต้องการทราบคือ 100
function is_prime(n)
pre_prime = [2,3,5,7]        # sqrt(100) = 10 เราจึงหาจำนวนเฉพาะที่น้อยกว่า 10
lim = sqrt(n)
i = 0
while i<4 and pre_prime<=lim
if n mod pre_prime = 0
return 0
i = i+1
return 1

จะเห็นว่าวิธีการนี้เร็วมาก แต่แลกด้วยกับการใช้หน่วยความจำที่มากขึ้น

อ้างอิงจากหนังสือ Art Of Programming Contest เขียนโดย Ahmed Shamsul Arefin
จาก http://www.darun29.com/b2/(prime-number)/