<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Professional Novice</title>
	<atom:link href="http://champjss.in.th/feed/" rel="self" type="application/rss+xml" />
	<link>http://champjss.in.th</link>
	<description>Another blog of champjss</description>
	<lastBuildDate>Sun, 28 Feb 2010 14:10:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Profiles system in Drupal</title>
		<link>http://champjss.in.th/2010/02/profiles-system-in-drupal/</link>
		<comments>http://champjss.in.th/2010/02/profiles-system-in-drupal/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 13:53:54 +0000</pubDate>
		<dc:creator>champjss</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://champjss.in.th/?p=103</guid>
		<description><![CDATA[ช่วงนี้จะเรียนจบแล้ว เพื่อนๆ ก็จะทำหนังสือรุ่นกัน ส่วนสำคัญของหนังสือรุ่นก็คือข้อมูลของเพื่อนร่วมรุ่น ซึ่งปกติที่เราเห็นกันก็คือเอาข้อมูลทั่วไปมาใส่ แล้วก็ใส่คำบรรยายลงไปหน่อย จะมากจะน้อยก็แล้วแต่ว่าคนทำหนังสือรู้จักคนนั้นแค่ไหน
เพื่อให้หนังสือรุ่นเราเป็นหนังสือรุ่นที่ 2.0 มากขึ้นหน่อย ก็เลยต้องมีระบบมาเก็บข้อมูลที่แยกเป็นสองส่วน

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

และแล้วก็ต้องทำไอ้ระบบนี่ให้เสร็จในหนึ่งวัน, ก็คิดถึง Drupal ก่อนทันที เพราะมีระบบสมาชิก จัดการสิทธิ์ จัดการข้อมูลเสร็จสรรพ (เก็บเป็น revision ได้ด้วย) เอามาประยุกต์ใช้ได้เลยโดยสร้าง content type สองอันสำหรับข้อมูลทั่วไป กับข้อมูลเกรียนแยกกัน แล้วกำหนดสิทธิ์ให้โดยถือว่าเจ้าของข้อมูลคือคนสร้าง node เท่านี้ก็เรียบร้อย แต่ถึกหน่อยตอนสร้าง node ให้เพื่อนๆ ทุกคน
ปัญหาก็มีอยู่แค่ ระบบ permission ที่พิลึกพิลั่นนี่เอง (คงไม่มีเว็บปกติที่ไหนห้ามแก้เนื้อหาที่ตัวเองสร้างขึ้น แต่แก้ของคนอื่นได้) ซึ่งการกำหนดสิทธิ์ให้แก้ไขเนื้อหาใน Drupal สามารถกำหนดได้ว่า

แก้ของตัวเอง ได้หรือไม่
แก้ของใครก็ได้ ได้หรือไม่

ดูเหมือนมันจะเตรียมพร้อมไว้แล้ว แต่พอลองใช้แล้วไม่เป็นอย่างที่คิด คือถ้ากำหนดสิทธิ์ให้ [...]]]></description>
			<content:encoded><![CDATA[<p>ช่วงนี้จะเรียนจบแล้ว เพื่อนๆ ก็จะทำหนังสือรุ่นกัน ส่วนสำคัญของหนังสือรุ่นก็คือข้อมูลของเพื่อนร่วมรุ่น ซึ่งปกติที่เราเห็นกันก็คือเอาข้อมูลทั่วไปมาใส่ แล้วก็ใส่คำบรรยายลงไปหน่อย จะมากจะน้อยก็แล้วแต่ว่าคนทำหนังสือรู้จักคนนั้นแค่ไหน</p>
<p><span id="more-103"></span>เพื่อให้หนังสือรุ่นเราเป็นหนังสือรุ่นที่ 2.0 มากขึ้นหน่อย ก็เลยต้องมีระบบมาเก็บข้อมูลที่แยกเป็นสองส่วน</p>
<ul>
<li>ข้อมูลทั่วไป เช่นพวกอีเมล เบอร์โทรศัพท์ อันนี้ให้เจ้าของแก้เอง เพื่อนๆ คนอื่นเขียนไม่ได้</li>
<li>ข้อมูลเกรียนๆ มีแท็ก คำนิยาม คำทำนายอนาคต อันนี้กลับกัน คือเพื่อนๆ ทุกคนช่วยกันเขียนได้หมด ยกเว้นเจ้าของได้แต่นั่งมองตาปริบๆ</li>
</ul>
<p>และแล้วก็ต้องทำไอ้ระบบนี่ให้เสร็จในหนึ่งวัน, ก็คิดถึง Drupal ก่อนทันที เพราะมีระบบสมาชิก จัดการสิทธิ์ จัดการข้อมูลเสร็จสรรพ (เก็บเป็น revision ได้ด้วย) เอามาประยุกต์ใช้ได้เลยโดยสร้าง content type สองอันสำหรับข้อมูลทั่วไป กับข้อมูลเกรียนแยกกัน แล้วกำหนดสิทธิ์ให้โดยถือว่าเจ้าของข้อมูลคือคนสร้าง node เท่านี้ก็เรียบร้อย แต่ถึกหน่อยตอนสร้าง node ให้เพื่อนๆ ทุกคน</p>
<p>ปัญหาก็มีอยู่แค่ ระบบ permission ที่พิลึกพิลั่นนี่เอง (คงไม่มีเว็บปกติที่ไหนห้ามแก้เนื้อหาที่ตัวเองสร้างขึ้น แต่แก้ของคนอื่นได้) ซึ่งการกำหนดสิทธิ์ให้แก้ไขเนื้อหาใน Drupal สามารถกำหนดได้ว่า</p>
<ul>
<li>แก้ของตัวเอง ได้หรือไม่</li>
<li>แก้ของใครก็ได้ ได้หรือไม่</li>
</ul>
<p>ดูเหมือนมันจะเตรียมพร้อมไว้แล้ว แต่พอลองใช้แล้วไม่เป็นอย่างที่คิด คือถ้ากำหนดสิทธิ์ให้ &#8220;แก้ของใครก็ได้&#8221; แล้ว ก็จะแก้ของตัวเองได้เลยไม่ว่าจะเลือกตัวเลือกแรกไว้ยังไง</p>
<p>หลังจากพยายามหาโมดูลซักพักแล้วไม่เจอ ก็ต้องแก้เอาเอง มั่วจนได้ที่อยู่พักใหญ่ๆ ก็เจอส่วนที่ตัดสินใจเรื่องนี้ อยู่ใน</p>
<ul>
<li>โมดูล node
<ul>
<li>ไฟล์ node.module
<ul>
<li>ฟังก์ชัน node_content_access</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>แล้วก็แก้ (คนที่คิดว่าจะต้องแก้โค้ดคงแก้ได้อยู่แล้ว ขอไม่ลงโค้ดในเอนทรีนะครับ ^^)</p>
<p>ตั้งท่าว่าจะเขียนเป็นโมดูล แต่สุดท้ายก็แก้โค้ดสดๆ เลย เสร็จ! ใช้งานได้แล้วที่ <a href="http://cpsk.champjss.in.th/profiles/">http://cpsk.champjss.in.th/profiles/</a> (แต่ไม่อาจเปิดให้สาธารณะชนเห็นได้ :P)</p>
<p>ปล. ข้อเสียของท่าแบบนี้คือสุดท้ายแล้วผมกับ <a href="http://twitter.com/risingp">@risingp</a> ต้องมานั่งสร้าง user แล้วก็สร้าง node ของแต่ละคนให้เอง ยังดีที่มีแค่ 70 คน ถึกซักสองชั่วโมงก็เสร็จ</p>
]]></content:encoded>
			<wfw:commentRss>http://champjss.in.th/2010/02/profiles-system-in-drupal/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ยูเอสบีจ๋า มาหานะเธอ</title>
		<link>http://champjss.in.th/2009/12/usb-virtualbox-ubuntu/</link>
		<comments>http://champjss.in.th/2009/12/usb-virtualbox-ubuntu/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 16:42:42 +0000</pubDate>
		<dc:creator>champjss</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[usb]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://champjss.in.th/?p=94</guid>
		<description><![CDATA[เวลาใช้ VirtualBox ใน Ubuntu แล้วอยากใช้อุปกรณ์ยูเอสบีนั้นสะดวกมากๆ เพราะเราไม่จำเป็นต้องลงไดรเวอร์ในเครื่องหลักเพื่อให้เครื่องเสมือนเราใช้อุปกรณ์นั้นได้ แต่มันจะต่อเข้าไปที่เครื่องเสมือนตรงๆ ได้เลย
ยกเว้นอยู่อย่างเดียวคือเราไม่มีสิทธิ์ใช้อุปกรณ์ยูเอสบี ดังนั้นเราต้องออกแรงนิดหน่อย เพื่อให้โปรแกรม VirtualBox มีสิทธิ์เข้ามาปู้ยี่ปู้ยำกับอุปกรณ์ยูเอสบีของเราได้


แอบดูหมายเลขของกลุ่ม vboxusers ก่อนด้วยคำสั่ง:
cat /etc/group &#124; grep vboxusers

เปิดไฟล์ /etc/fstab ด้วยโปรแกรมแก้ไขไฟล์ข้อความที่ถนัด แน่นอนว่าต้องเปิดด้วยสิทธิ์ root ด้วย
เพิ่มบรรทัดนี้ลงไป แก้ ??? ให้เป็นหมายเลขกลุ่มที่ดูจากขั้นแรก เพื่อให้ผู้ใช้ในกลุ่ม vboxusers ได้สิทธิ์อ่านและเขียนอุปกรณ์ยูเอสบีได้:
# USB for vbox
none /proc/bus/usb usbfs devgid=???,devmode=664 0 0

เพิ่มผู้ใช้ที่จะใช้โปรแกรม VirtualBox เข้ากลุ่มด้วยคำสั่ง
usermod -G vboxusers username
ระวังว่า -G ตัวจีเป็นตัวพิมพ์ใหญ่เท่านั้น ไม่งั้นจะเกิดความเศร้าในชีวิต
เปิดโปรแกรม VirtualBox ก็ใช้ได้แล้ว โดยไปจิ้มๆ ที่ตัวยูเอสบีที่มุมขวาล่างของหน้าต่างเครื่องเสมือนเลย

หวังว่าผมคงเขียนไม่ช้าไปนะครับ คุณซีเคียว
]]></description>
			<content:encoded><![CDATA[<p>เวลาใช้ VirtualBox ใน Ubuntu แล้วอยากใช้อุปกรณ์ยูเอสบีนั้นสะดวกมากๆ เพราะเราไม่จำเป็นต้องลงไดรเวอร์ในเครื่องหลักเพื่อให้เครื่องเสมือนเราใช้อุปกรณ์นั้นได้ แต่มันจะต่อเข้าไปที่เครื่องเสมือนตรงๆ ได้เลย</p>
<p>ยกเว้นอยู่อย่างเดียวคือเราไม่มีสิทธิ์ใช้อุปกรณ์ยูเอสบี ดังนั้นเราต้องออกแรงนิดหน่อย เพื่อให้โปรแกรม VirtualBox มีสิทธิ์เข้ามาปู้ยี่ปู้ยำกับอุปกรณ์ยูเอสบีของเราได้</p>
<p><span id="more-94"></span></p>
<ol>
<li>แอบดูหมายเลขของกลุ่ม vboxusers ก่อนด้วยคำสั่ง:
<pre>cat /etc/group | grep vboxusers</pre>
</li>
<li>เปิดไฟล์ /etc/fstab ด้วยโปรแกรมแก้ไขไฟล์ข้อความที่ถนัด แน่นอนว่าต้องเปิดด้วยสิทธิ์ root ด้วย</li>
<li>เพิ่มบรรทัดนี้ลงไป แก้ ??? ให้เป็นหมายเลขกลุ่มที่ดูจากขั้นแรก เพื่อให้ผู้ใช้ในกลุ่ม vboxusers ได้สิทธิ์อ่านและเขียนอุปกรณ์ยูเอสบีได้:
<pre># USB for vbox
none /proc/bus/usb usbfs devgid=???,devmode=664 0 0</pre>
</li>
<li>เพิ่มผู้ใช้ที่จะใช้โปรแกรม VirtualBox เข้ากลุ่มด้วยคำสั่ง
<pre>usermod -G vboxusers username</pre>
<p>ระวังว่า -G ตัวจีเป็นตัวพิมพ์ใหญ่เท่านั้น ไม่งั้นจะเกิดความเศร้าในชีวิต</li>
<li>เปิดโปรแกรม VirtualBox ก็ใช้ได้แล้ว โดยไปจิ้มๆ ที่ตัวยูเอสบีที่มุมขวาล่างของหน้าต่างเครื่องเสมือนเลย</li>
</ol>
<p>หวังว่าผมคงเขียนไม่ช้าไปนะครับ คุณซีเคียว</p>
]]></content:encoded>
			<wfw:commentRss>http://champjss.in.th/2009/12/usb-virtualbox-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>เมื่อเธอไม่อยู่</title>
		<link>http://champjss.in.th/2009/11/repositories/</link>
		<comments>http://champjss.in.th/2009/11/repositories/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 09:11:07 +0000</pubDate>
		<dc:creator>champjss</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[repository]]></category>

		<guid isPermaLink="false">http://champjss.in.th/?p=89</guid>
		<description><![CDATA[กาลครั้งหนึ่งเมื่อสองวันก่อน ผมกับ @kidsdev และ อ.มะนาว มาปั่นระบบรับสมัครรับตรงของคณะกันยามดึก แต่ละคนก็มีงานของตัวเองต้องทำ อ.มะนาวก็แก้บั๊กและเติมฟีเจอร์ต่างๆ เข้าไป คุณคิดส์เดฟก็หาท่าส่งอีเมลยืนยันให้เข้า hotmail ให้จงได้ (โดเมนเกษตรถูก hotmail จับลงบัญชีดำว่าเป็นสแปม ส่งเมลแล้วส่งไม่เข้า)
ส่วนผม อ.มะนาวให้จัดการเรื่องหาท่าจัดการ apache ให้มีชีวิตรอดอยู่ได้ถ้ามีโหลดหนักๆ เข้ามา หลังจากตอนหัวค่ำคุณคิดส์เดฟยิง load test จนเว็บร่วงไปสองรอบแล้ว หึหึ ไม่เคยทำหรอก แต่ก็ต้องลุยละ
ก็มั่วกันไปเรื่อยๆ&#8230;
ทีนี้ก็จะลง monit เพื่อให้มันช่วย monitor สถานการณ์บนเซิฟเวอร์ให้ ถ้าเกิดโหลดมากไป หรือติดต่อเว็บไหนไม่ได้ เราก็สั่งให้มันเมลมาบอกเรา ให้มันปิดเปิดเซอร์วิสใหม่ หรือให้มันรันคำสั่งที่เราอยากให้รันอัตโนมัติเลยก็ได้
บน Ubuntu มีโปรแกรมนี้ใน repository อยู่แล้ว ก็สบาย sudo apt-get install กันไป แต่&#8230; วันนั้น mirror1.ku ไม่อยู่ ไปพักผ่อน ก็ลงไม่ได้ ผมก็ไปแก้ไฟล์ repository sources ใหม่ [...]]]></description>
			<content:encoded><![CDATA[<p>กาลครั้งหนึ่งเมื่อสองวันก่อน ผมกับ @kidsdev และ อ.มะนาว มาปั่นระบบรับสมัครรับตรงของคณะกันยามดึก แต่ละคนก็มีงานของตัวเองต้องทำ อ.มะนาวก็แก้บั๊กและเติมฟีเจอร์ต่างๆ เข้าไป คุณคิดส์เดฟก็หาท่าส่งอีเมลยืนยันให้เข้า hotmail ให้จงได้ (โดเมนเกษตรถูก hotmail จับลงบัญชีดำว่าเป็นสแปม ส่งเมลแล้วส่งไม่เข้า)</p>
<p>ส่วนผม อ.มะนาวให้จัดการเรื่องหาท่าจัดการ apache ให้มีชีวิตรอดอยู่ได้ถ้ามีโหลดหนักๆ เข้ามา หลังจากตอนหัวค่ำคุณคิดส์เดฟยิง load test จนเว็บร่วงไปสองรอบแล้ว หึหึ ไม่เคยทำหรอก แต่ก็ต้องลุยละ</p>
<p>ก็มั่วกันไปเรื่อยๆ&#8230;</p>
<p><span id="more-89"></span>ทีนี้ก็จะลง monit เพื่อให้มันช่วย monitor สถานการณ์บนเซิฟเวอร์ให้ ถ้าเกิดโหลดมากไป หรือติดต่อเว็บไหนไม่ได้ เราก็สั่งให้มันเมลมาบอกเรา ให้มันปิดเปิดเซอร์วิสใหม่ หรือให้มันรันคำสั่งที่เราอยากให้รันอัตโนมัติเลยก็ได้</p>
<p>บน Ubuntu มีโปรแกรมนี้ใน repository อยู่แล้ว ก็สบาย sudo apt-get install กันไป แต่&#8230; วันนั้น mirror1.ku ไม่อยู่ ไปพักผ่อน ก็ลงไม่ได้ ผมก็ไปแก้ไฟล์ repository sources ใหม่ สั่งอัพเดท แล้วก็ลง เสร็จ!</p>
<p>แล้วเราก็ คอนฟิก คอนฟิก คอนฟิก&#8230; ตอนคอนฟิกก็รู้สึกแปลกๆ อยู่ เวลาที่เค้าให้แก้คอนฟิก แต่ของเราดันไม่มีอะไรให้แก้ มีแต่ความว่างเปล่า&#8230; ไม่เป็นไร เราก็พิมพ์ใหม่ให้หมดเลยแล้วกัน</p>
<p>แล้วก็ สั่ง start! เงียบสนิท แปลกๆ แฮะ แสดงว่าที่คอนฟิกไปไม่ผิด?</p>
<p>&#8220;เฮ้ย แก่ง ยิงเลย!&#8221; ผลปรากฎ เงียบสนิท มันไม่ทำตามที่คอนฟิกซะงั้น</p>
<p>ลองแก้คอนฟิกแล้วก็ยังเฉย รู้สึกงงๆ ก็เลยลองสั่งคำสั่งอื่นกับ monit ดู ผลปรากฎ เงียบหมด&#8230; พอสั่ง man monit ดูผลปรากฎว่า ได้หน้าว่าง! ไม่มีคำอธิบายซะงั้น มีงี้ด้วยเรอะ</p>
<p>ลางไม่ดี เหมือนมันจะเน่าๆ แล้ว ถอนทิ้งเลยแล้วกัน&#8230; purge ทิ้งให้หมด เดี๋ยวค่อยลงใหม่ แต่ผลปรากฎว่าถอนไม่ออกครับ โดน apt-get ด่ากลับมาว่า</p>
<blockquote><p>monit subprocess post-installation script returned error exit status 2</p></blockquote>
<p>&#8230;</p>
<p>อึ้งครับอึ้ง ทำอะไรไม่ถูกเลยทีนี้ จนสุดท้าย อ.มะนาว ต้องเข้ามาตีด้วยว่ามันเกิดอะไรขึ้น รายละเอียดการสืบว่าใช้คำสั่งอะไรสืบ ไว้จำได้แล้วจะมาเขียนใหม่ แต่ไล่ไปไล่มาสุดท้ายรู้ว่า มันติดตั้งได้ไม่สมบูรณ์ หลายๆ ไฟล์จึงไม่มีเนื้อหาอยู่ รวมถึงไฟล์เรียกเซอร์วิสใน /etc/init.d ก็ว่างเปล่าด้วย พอสั่งรันโปรแกรมแล้วมันก็เลยเงียบ</p>
<p>ไฟล์สคริปต์ถอนการติดตั้งที่ถูกเก็บอยู่ที่ /var/lib/dpkg/info ก็ว่างด้วยเหมือนกัน พอสั่งถอนการติดตั้งปุ๊บก็เลยเจ๊ง เพราะสคริปต์มันไม่สมบูรณ์ เลยแก้ด้วยการไปลอกเนื้อหาไฟล์นั้นจากเครื่องอื่น แล้วค่อยสั่งถอนถึงถอนออก</p>
<p>ทีนี้ก็ลงใหม่ ก่อนลงใหม่ไปดูไฟล์ repository sources ที่แก้ไว้แต่แรก แล้วก็พบกับ&#8230;</p>
<blockquote><p>deb http://mirror.in.th/osarchive/ubuntu/ karmic main universe restricted multiverse<br />
deb http://mirror.in.th/osarchive/ubuntu/ karmic-updates main universe restricted multiverse</p></blockquote>
<p>ลอกมาจากเครื่องตัวเอง แต่ลืมว่าเครื่องเซิร์ฟเวอร์มัน juanty ไม่ใช่ karmic! ต่อไปคงต้องไปวิ่งควายแล้ว&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://champjss.in.th/2009/11/repositories/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ฟอนต์สำหรับงานเอกสาร</title>
		<link>http://champjss.in.th/2009/09/fonts-for-documents/</link>
		<comments>http://champjss.in.th/2009/09/fonts-for-documents/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 05:50:53 +0000</pubDate>
		<dc:creator>champjss</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://champjss.in.th/?p=68</guid>
		<description><![CDATA[บางคนคงเบื่อๆ ฟอนต์ตระกูล Angsana, Cordia กัน จริงๆ แล้วฟอนต์พวกนี้จะใช้ได้ก็ต่อเมื่อเรามีลิขสิทธิ์วินโดวส์หรือไมโครซอฟต์ออฟฟิศในครอบครอง (อันนี้ไม่แน่ใจเท่าไหร่ ถ้าผิดช่วยท้วงหน่อยครับ) เวลาที่ผู้รับเอกสารบังคับให้คนส่งต้องใช้ฟอนต์พวกนี้ ก็จะทำให้คนที่ไม่ได้ใช้วินโดวส์ต้องละเมิดลิขสิทธิ์ฟอนต์ไปด้วย

จริงๆ มีฟอนต์ไทยหลายตัวที่ใช้ในงานเอกสารได้สวยงาม และใช้กับงานทั่วไปได้ฟรีๆ ก็ลองเอาไปใช้ดูนะ
ฟอนต์จากชมรมการจัดพิมพ์อิเล็กทรอนิกไทย (TEPC)

รายชื่อฟอนต์

Aksaramatee
Californian FB
ChulaNarak
CmPrasanmit
DC-Palamongkol
Himmaparnt
Kaniga
Nakaracha
PskSmart
SR Fahmai


ดูตัวอย่างและดาวน์โหลด

ฟอนต์แห่งชาติของ NECTEC

รายชื่อฟอนต์

Garuda
Loma
Kinnari
Norasi


ดูตัวอย่างและดาวน์โหลด

ฟอนต์จากสำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ (SIPA)

รายชื่อฟอนต์

TH Charmonman (จามรมาน)
TH Krub (ครับ)
TH Srisakdi (ศรีศักดิ์)
TH Niramit AS (นิรมิตร)
TH Charm of AU (ชาร์ม ออฟ เอยู)
TH Kodchasan (คชสาร)
TH Sarabun PSK (สารบรรณ)
TH K2D July8 (8 กรกฏา)
TH Mali Grade 6 (ด.ญ. มะลิ ป.6)
TH Chakra Petch (จักรเพชร)
TH Bai Jamjuree CP [...]]]></description>
			<content:encoded><![CDATA[<p>บางคนคงเบื่อๆ ฟอนต์ตระกูล Angsana, Cordia กัน จริงๆ แล้วฟอนต์พวกนี้จะใช้ได้ก็ต่อเมื่อเรามีลิขสิทธิ์วินโดวส์หรือไมโครซอฟต์ออฟฟิศในครอบครอง (อันนี้ไม่แน่ใจเท่าไหร่ ถ้าผิดช่วยท้วงหน่อยครับ) เวลาที่ผู้รับเอกสารบังคับให้คนส่งต้องใช้ฟอนต์พวกนี้ ก็จะทำให้คนที่ไม่ได้ใช้วินโดวส์ต้องละเมิดลิขสิทธิ์ฟอนต์ไปด้วย</p>
<p><span id="more-68"></span></p>
<p>จริงๆ มีฟอนต์ไทยหลายตัวที่ใช้ในงานเอกสารได้สวยงาม และใช้กับงานทั่วไปได้ฟรีๆ ก็ลองเอาไปใช้ดูนะ</p>
<h3>ฟอนต์จากชมรมการจัดพิมพ์อิเล็กทรอนิกไทย (TEPC)</h3>
<ul>
<li>รายชื่อฟอนต์
<ul>
<li>Aksaramatee</li>
<li>Californian FB</li>
<li>ChulaNarak</li>
<li>CmPrasanmit</li>
<li>DC-Palamongkol</li>
<li>Himmaparnt</li>
<li>Kaniga</li>
<li>Nakaracha</li>
<li>PskSmart</li>
<li>SR Fahmai</li>
</ul>
</li>
<li><a href="http://lanta.giti.nectec.or.th/drupal/?q=node/233">ดูตัวอย่างและดาวน์โหลด</a></li>
</ul>
<h3>ฟอนต์แห่งชาติของ NECTEC</h3>
<ul>
<li>รายชื่อฟอนต์
<ul>
<li>Garuda</li>
<li>Loma</li>
<li>Kinnari</li>
<li>Norasi</li>
</ul>
</li>
<li><a href="http://lanta.giti.nectec.or.th/drupal/?q=node/232">ดูตัวอย่างและดาวน์โหลด</a></li>
</ul>
<h3>ฟอนต์จากสำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ (SIPA)</h3>
<ul>
<li>รายชื่อฟอนต์
<ul>
<li>TH Charmonman (จามรมาน)</li>
<li>TH Krub (ครับ)</li>
<li>TH Srisakdi (ศรีศักดิ์)</li>
<li>TH Niramit AS (นิรมิตร)</li>
<li>TH Charm of AU (ชาร์ม ออฟ เอยู)</li>
<li>TH Kodchasan (คชสาร)</li>
<li>TH Sarabun PSK (สารบรรณ)</li>
<li>TH K2D July8 (8 กรกฏา)</li>
<li>TH Mali Grade 6 (ด.ญ. มะลิ ป.6)</li>
<li>TH Chakra Petch (จักรเพชร)</li>
<li>TH Bai Jamjuree CP (ใบจามจุรี)</li>
<li>TH Typomo (ไทโปโม)</li>
<li>TH Fah Kwang (ฟ้ากว้าง)</li>
</ul>
</li>
<li><a href="http://www.f0nt.com/release/13-free-fonts-from-sipa/">ดูตัวอย่างและดาวน์โหลด</a></li>
<li><a href="http://lanta.giti.nectec.or.th/drupal/?q=node/234">ดาวน์โหลดทั้งชุด</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://champjss.in.th/2009/09/fonts-for-documents/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ต่อสองจอใน Ubuntu</title>
		<link>http://champjss.in.th/2009/08/multiple-monitors-ubuntu/</link>
		<comments>http://champjss.in.th/2009/08/multiple-monitors-ubuntu/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 12:29:46 +0000</pubDate>
		<dc:creator>champjss</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[extend]]></category>
		<category><![CDATA[monitor]]></category>

		<guid isPermaLink="false">http://champjss.in.th/?p=53</guid>
		<description><![CDATA[ช่วงนี้เพื่อนๆ ภาคคอมซื้อจอกันหลายคน เห็นแล้วต้องพยายามลดความอยากเอาไว้ (จริงๆ ไม่ต้องลดก็ไม่มีเงินซื้อหรอก) ทีนี้มีจอแล้วก็ต้องต่อ แล้วอยู่บน Ubuntu จะต่อยังไง
หลังจากลองมั่วๆ แล้วก็เขียนบล็อกไว้หน่อย อันนี้ยังถือว่ามือใหม่ ถ้ามีวิธีดีๆ ก็บอกกันบ้างนะครับ

เลเวลหนึ่ง: ปรับง่ายๆ
ลองปรับผ่านหน้าจอปกติก่อนโดย

เข้าไปที่เมนู System &#62; Preferences &#62; Display
ลองลากๆ จอต่างๆ ดู

ถ้าจะให้สองจอออกเหมือนกัน ให้ทำเครื่องหมายถูกหน้าคำว่า Mirror Screens
ถ้าจะให้สองจอต่อกัน เอาเครื่องหมายถูกหน้า Mirror Screens ออก แล้วลากจอให้ต่อกันตามลำดับที่อยากให้มันเรียง



ลอง Apply ดู
เลเวลสอง: ปรับพื้นที่ Virtual Monitor
Virtual Monitor?
Virtual Monitor เรียกง่ายๆ เหมือนผ้าใบที่ให้เราเอาจอต่างๆ มาวางเรียงต่อกันได้ เวลาเราต้องการใช้จอหลายๆ จอต่อกัน แบบรูปข้างล่าง

ทีนี้ถ้าขนาด Virtual Monitor น้อย เราก็จะปรับความละเอียดของจอได้ไม่สุด เพราะว่ามันล้นออกไปจากพื้นที่ Virtual Monitor ที่มีให้ เราก็ต้องไปขยายมันให้ใหญ่ขึ้นก่อน
1. ดูขนาด Virtual Monitor ปัจจุบัน
สั่งคำสั่งนี้
xrandr [...]]]></description>
			<content:encoded><![CDATA[<p>ช่วงนี้เพื่อนๆ ภาคคอมซื้อจอกันหลายคน เห็นแล้วต้องพยายามลดความอยากเอาไว้ (จริงๆ ไม่ต้องลดก็ไม่มีเงินซื้อหรอก) ทีนี้มีจอแล้วก็ต้องต่อ แล้วอยู่บน Ubuntu จะต่อยังไง</p>
<p>หลังจากลองมั่วๆ แล้วก็เขียนบล็อกไว้หน่อย อันนี้ยังถือว่ามือใหม่ ถ้ามีวิธีดีๆ ก็บอกกันบ้างนะครับ</p>
<p><span id="more-53"></span></p>
<h3>เลเวลหนึ่ง: ปรับง่ายๆ</h3>
<p>ลองปรับผ่านหน้าจอปกติก่อนโดย</p>
<ol>
<li>เข้าไปที่เมนู <em>System</em> &gt; <em>Preferences</em> &gt; <em>Display</em></li>
<li>ลองลากๆ จอต่างๆ ดู
<ul>
<li>ถ้าจะให้สองจอออกเหมือนกัน ให้ทำเครื่องหมายถูกหน้าคำว่า <em>Mirror Screens</em></li>
<li>ถ้าจะให้สองจอต่อกัน เอาเครื่องหมายถูกหน้า <em>Mirror Screens</em> ออก แล้วลากจอให้ต่อกันตามลำดับที่อยากให้มันเรียง</li>
</ul>
</li>
</ol>
<p>ลอง Apply ดู</p>
<h3>เลเวลสอง: ปรับพื้นที่ Virtual Monitor</h3>
<h4>Virtual Monitor?</h4>
<p>Virtual Monitor เรียกง่ายๆ เหมือนผ้าใบที่ให้เราเอาจอต่างๆ มาวางเรียงต่อกันได้ เวลาเราต้องการใช้จอหลายๆ จอต่อกัน แบบรูปข้างล่าง</p>
<p><img class="alignnone size-full wp-image-58" title="XOrg Monitor Concept" src="http://champjss.in.th/wp-content/uploads/2009/08/xorg-monitor-concept.png" alt="XOrg Monitor Concept" width="300" height="200" /></p>
<p>ทีนี้ถ้าขนาด Virtual Monitor น้อย เราก็จะปรับความละเอียดของจอได้ไม่สุด เพราะว่ามันล้นออกไปจากพื้นที่ Virtual Monitor ที่มีให้ เราก็ต้องไปขยายมันให้ใหญ่ขึ้นก่อน</p>
<h4>1. ดูขนาด Virtual Monitor ปัจจุบัน</h4>
<p>สั่งคำสั่งนี้</p>
<p><code>xrandr -q</code></p>
<p>ตอนนี้ไม่ต้องสนใจบรรทัดอื่น ดูที่บรรทัดแรกสุดที่คำว่า <em>maximum</em> ตรงนั้นคือขนาด Virtual Monitor ตอนนี้ของเรา อย่างเช่น</p>
<p><code>Screen 0: minimum 320 x 200, current 1280 x 800, maximum 2560 x 1824</code></p>
<p>แปลว่าขนาด Virtual Monitor ตอนนี้คือ 2560&#215;1824</p>
<h4>2. คำนวณเนื้อที่ที่ต้องใช้</h4>
<p>เราต้องนั่งคำนวณดูว่ามันพอหรือเปล่า เช่น ถ้าเราจะเอาจอ 1920&#215;1080 ไว้ซ้าย แล้วต่อจอ 1280&#215;800 ไว้ขวามือ ก็แปลว่าเราต้องใช้พื้นที่ Virtual Monitor แนวนอนอย่างน้อย 1920 + 1280 = 3200 และแนวตั้ง 1080 ถึงจะพอ</p>
<p>ถ้าไม่พอ ก็ทำขั้นต่อไป</p>
<h4>3. เปลี่ยนขนาด Virtual Monitor</h4>
<p>เริ่มจากเปิดไฟล์ /etc/X11/xorg.conf ด้วยเทกซ์อีดิเตอร์ที่ชอบ อย่าลืมเปิดด้วยสิทธิ์ root นะ</p>
<p>เสร็จแล้วหาบรรทัดที่หน้าตาแบบนี้</p>
<p><code>SubSection "Display"<br />
Virtual 2560 1824<br />
EndSubSection</code></p>
<p>แก้ตัวเลขสองตัวนั้นตามที่คำนวณไว้เมื่อกี้นี้ ตัวแรกคือขนาดแนวนอน ตัวหลังคือขนาดแนวตั้ง เสร็จแล้วเซฟไฟล์ (ไม่แน่ใจว่าขั้นนี้ต้องล็อกเอาต์ก่อนแล้วล็อกอินเข้ามาใหม่หรือเปล่า)</p>
<h4>4. ลองใหม่</h4>
<p>กลับไปลองปรับตามเลเวลหนึ่งใหม่อีกที ถ้าโชคดีพอจะมีความละเอียดที่สูงขึ้นให้เลือก แต่ถ้าโชคไม่ดี คงต้องลงลึกไปเลเวลต่อไป</p>
<h3>เลเวลสาม: คอมมานด์ไลน์!</h3>
<p>ถ้าสิ้นหวังแล้วซึ่งวิธีทั้งปวง ก็ต้องใช้คอมมานด์ไลน์ทำมือแล้ว</p>
<p>วิธีการ เปิดเทอร์มินัลแล้วทำตามนี้</p>
<h4>1. ดูขนาดที่ตั้งได้</h4>
<p>สั่งคำสั่งนี้</p>
<p><code>xrandr -q</code></p>
<p>แล้วมันจะบอกมาว่า เรามีจอชื่ออะไรบ้าง แต่ละจอต่ออยู่หรือเปล่า แล้วปรับเป็นขนาดเท่าไหร่ ความถี่เท่าไหร่ได้บ้าง</p>
<h4>2. ตั้งค่าแสดงหน้าจอ</h4>
<p>ให้สั่ง</p>
<p><code>xrandr --output ชื่อจอ --mode ขนาดแนวนอนxขนาดแนวตั้ง --pos ตำแหน่งแนวนอนxตำแหน่งแนวตั้ง</code></p>
<ul>
<li>ชื่อจอดูได้จากคำสั่ง xrandr -q เมื่อกี้ ปกติจอโน๊ตบุ๊คจะชื่อ <em>LDVS</em> ส่วนจอนอกจะชื่อ <em>VGA</em> ไม่ก็ <em>VGA-1</em> (แล้วแต่ไดรเวอร์)</li>
<li>ตำแหน่งของจอนับจากบนซ้ายเป็นตำแหน่ง 0,0</li>
<li>จะสั่งหลายๆ จอพร้อมกันเลยก็ได้ อย่างเช่นคำสั่งข้างล่างนี่คือการต่อจอ VGA-1 ขนาด 1920&#215;1080 ไว้ซ้ายสุด ต่อด้วยจอ LDVS ขนาด 1280&#215;800 ไว้ทางขวาของ VGA-1</li>
</ul>
<p><code>xrandr --output VGA-1 --mode 1920x1080 --pos 0x0 --output LDVS --mode 1280x800 --pos 1920x0</code></p>
<h4>3. เลิกใช้จอ</h4>
<p>ถ้าจะปิดจอไหนก็ก็สั่ง</p>
<p><code>xrandr --output ชื่อจอ --off</code></p>
<h3>วัตถุดิบ</h3>
<p><a href="http://www.thinkwiki.org/wiki/Xorg_RandR_1.2">thinkwiki.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://champjss.in.th/2009/08/multiple-monitors-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pidgin ในพาเนลของ Ubuntu 9.04</title>
		<link>http://champjss.in.th/2009/08/pidgin-ubuntu-904-taskbar/</link>
		<comments>http://champjss.in.th/2009/08/pidgin-ubuntu-904-taskbar/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 16:54:25 +0000</pubDate>
		<dc:creator>champjss</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[pidgin]]></category>

		<guid isPermaLink="false">http://champjss.in.th/?p=47</guid>
		<description><![CDATA[ใครใช้ Ubuntu 9.04 (Jaunty) จะเห็นว่ามันเพิ่มไอเทม Indicator Applet เข้ามาในพาเนล ดูแล้วก็ไม่รู้ว่ามันต่างกับ Notification Area ตรงไหน
ที่สำคัญคือมันยุ่งยากมากโดยเฉพาะเวลาใช้ Pidgin มันจะโผล่เป็นรูปจดหมายขึ้นมาแทนที่จะเป็นไอคอนโปรแกรมตามปกติ เวลาจะเปิดหน้าต่างหลักของ Pidgin ก็ต้องกดทีนึงก่อนให้มีชื่อเมลขึ้นมา แล้วไปกดที่ชื่อเมลอีกที แถมคลิกขวาแล้วเลือก Quit เพื่อปิดโปรแกรม ก็ทำไม่ได้อีก ต้องเปิดหน้าต่างหลักมาเลือกเมนู Quit เอง น่าเบื่อมาก

วันก่อนลองกดมั่วๆ ก็เจอวิธีทำให้มันเหมือนเดิมได้ ทำตามนี้

เอา Indicator Applet ออกไปก่อนเลย. โดยปกติไอเทมนี้จะซ่อนๆ ตัวอยู่เงียบๆ จนกว่าจะมีไอคอนที่จะใช้มันขึ้นมา ดังนั้นเราต้องเปิด Pidgin ขึ้นมาล่อก่อน แล้วค่อยเอา Indicator Applet ออกไปโดยคลิกขวาที่มันแล้วกด Remove from panel
ทีนี้จะเกิดความซวย เพราะไม่มีไอคอนที่พาเนลให้กดเลย ก็ไม่ต้องตกใจไป ทำตามนี้

จากหน้าต่างหลักของ Pidgin ให้เลือกเมนู Tool &#62; Preferences
เลือกแท็บ Interface
อันแรกสุดเลย Show system [...]]]></description>
			<content:encoded><![CDATA[<p>ใครใช้ Ubuntu 9.04 (Jaunty) จะเห็นว่ามันเพิ่มไอเทม Indicator Applet เข้ามาในพาเนล ดูแล้วก็ไม่รู้ว่ามันต่างกับ Notification Area ตรงไหน</p>
<p>ที่สำคัญคือมันยุ่งยากมากโดยเฉพาะเวลาใช้ Pidgin มันจะโผล่เป็นรูปจดหมายขึ้นมาแทนที่จะเป็นไอคอนโปรแกรมตามปกติ เวลาจะเปิดหน้าต่างหลักของ Pidgin ก็ต้องกดทีนึงก่อนให้มีชื่อเมลขึ้นมา แล้วไปกดที่ชื่อเมลอีกที แถมคลิกขวาแล้วเลือก Quit เพื่อปิดโปรแกรม ก็ทำไม่ได้อีก ต้องเปิดหน้าต่างหลักมาเลือกเมนู Quit เอง น่าเบื่อมาก</p>
<p><span id="more-47"></span></p>
<p>วันก่อนลองกดมั่วๆ ก็เจอวิธีทำให้มันเหมือนเดิมได้ ทำตามนี้</p>
<ol>
<li>เอา Indicator Applet ออกไปก่อนเลย. โดยปกติไอเทมนี้จะซ่อนๆ ตัวอยู่เงียบๆ จนกว่าจะมีไอคอนที่จะใช้มันขึ้นมา ดังนั้นเราต้องเปิด Pidgin ขึ้นมาล่อก่อน แล้วค่อยเอา Indicator Applet ออกไปโดยคลิกขวาที่มันแล้วกด <em>Remove from panel</em></li>
<li>ทีนี้จะเกิดความซวย เพราะไม่มีไอคอนที่พาเนลให้กดเลย ก็ไม่ต้องตกใจไป ทำตามนี้
<ol>
<li>จากหน้าต่างหลักของ Pidgin ให้เลือกเมนู <em>Tool</em> &gt; <em>Preferences</em></li>
<li>เลือกแท็บ <em>Interface</em></li>
<li>อันแรกสุดเลย <em>Show system tray icon</em> ให้เลือก <em>Always</em></li>
</ol>
</li>
</ol>
<p>จบภารกิจ เราจะได้ไอคอนโปรแกรม Pidgin ขึ้นมาที่ Notification Area เลย</p>
<p><em>(ไม่ต้องถามว่าโปรแกรมอื่นตั้งค่าตรงไหนนะครับ ไม่เคยใช้ :P)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://champjss.in.th/2009/08/pidgin-ubuntu-904-taskbar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New line</title>
		<link>http://champjss.in.th/2009/08/new-line/</link>
		<comments>http://champjss.in.th/2009/08/new-line/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 18:03:38 +0000</pubDate>
		<dc:creator>champjss</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[command-line]]></category>

		<guid isPermaLink="false">http://champjss.in.th/?p=32</guid>
		<description><![CDATA[
champjss@vinciztor:~$ files=`ls -l`
champjss@vinciztor:~$ echo $files
total 24 drwxr-xr-x 2 champjss champjss 4096 2009-08-03 15:41 Desktop lrwxrwxrwx 1 champjss champjss 30 2009-08-03 15:49 Documents -&#62; /media/Data/champjss/Documents lrwxrwxrwx 1 champjss champjss 30 2009-08-03 15:49 Downloads -&#62; /media/Data/champjss/Downloads -rw-r--r-- 1 champjss champjss 13498 2009-08-03 18:04 howtovirtualbox.txt lrwxrwxrwx 1 champjss champjss 26 2009-08-03 15:49 Music -&#62; /media/Data/champjss/Music lrwxrwxrwx 1 champjss [...]]]></description>
			<content:encoded><![CDATA[<p><span id="more-32"></span><br />
<code><strong>champjss@vinciztor:~$ files=`ls -l`</strong><br />
<strong>champjss@vinciztor:~$ echo $files</strong><br />
total 24 drwxr-xr-x 2 champjss champjss 4096 2009-08-03 15:41 Desktop lrwxrwxrwx 1 champjss champjss 30 2009-08-03 15:49 Documents -&gt; /media/Data/champjss/Documents lrwxrwxrwx 1 champjss champjss 30 2009-08-03 15:49 Downloads -&gt; /media/Data/champjss/Downloads -rw-r--r-- 1 champjss champjss 13498 2009-08-03 18:04 howtovirtualbox.txt lrwxrwxrwx 1 champjss champjss 26 2009-08-03 15:49 Music -&gt; /media/Data/champjss/Music lrwxrwxrwx 1 champjss champjss 29 2009-08-03 15:49 Pictures -&gt; /media/Data/champjss/Pictures -rw-r--r-- 1 champjss champjss 557 2009-08-03 18:26 sudoers lrwxrwxrwx 1 champjss champjss 27 2009-08-03 15:49 Videos -&gt; /media/Data/champjss/Videos<br />
<strong>champjss@vinciztor:~$ echo "$files"</strong><br />
total 24<br />
drwxr-xr-x 2 champjss champjss  4096 2009-08-03 15:41 Desktop<br />
lrwxrwxrwx 1 champjss champjss    30 2009-08-03 15:49 Documents -&gt; /media/Data/champjss/Documents<br />
lrwxrwxrwx 1 champjss champjss    30 2009-08-03 15:49 Downloads -&gt; /media/Data/champjss/Downloads<br />
-rw-r--r-- 1 champjss champjss 13498 2009-08-03 18:04 howtovirtualbox.txt<br />
lrwxrwxrwx 1 champjss champjss    26 2009-08-03 15:49 Music -&gt; /media/Data/champjss/Music<br />
lrwxrwxrwx 1 champjss champjss    29 2009-08-03 15:49 Pictures -&gt; /media/Data/champjss/Pictures<br />
-rw-r--r-- 1 champjss champjss   557 2009-08-03 18:26 sudoers<br />
lrwxrwxrwx 1 champjss champjss    27 2009-08-03 15:49 Videos -&gt; /media/Data/champjss/Videos</code></p>
]]></content:encoded>
			<wfw:commentRss>http://champjss.in.th/2009/08/new-line/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Users in Ubuntu</title>
		<link>http://champjss.in.th/2009/08/users-in-ubuntu/</link>
		<comments>http://champjss.in.th/2009/08/users-in-ubuntu/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 11:30:42 +0000</pubDate>
		<dc:creator>champjss</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[command-line]]></category>
		<category><![CDATA[user]]></category>

		<guid isPermaLink="false">http://champjss.in.th/?p=29</guid>
		<description><![CDATA[วันนี้มีงานเข้า เพราะว่าจะลอง Lotus Symphony ใน Ubuntu แล้วผลปรากฎว่าโปรแกรมมันเปิดไม่ได้ เท่านั้นยังไม่พอ พี่แกล่อกิน Bookmark ในเครื่องไปด้วย พอรีบูทเครื่องไปทีนึงยิ่งไปกันใหญ่ แอปเพล็ตต่างๆ ในพาเนลที่เคยตั้งค่าไว้ มันดีดกลับไปเป็นเหมือนตอนแรกใหม่ เมนูโปรแกรมต่างๆ หายไปหมด แถมเข้าไปแก้เมนูไม่ได้อีกต่างหาก
เท่าที่ดูๆ คาดว่าตัวผู้ใช้ (User) นี้น่าจะมีปัญหาแน่ๆ แล้ว ขี้เกียจหาวิธีแก้ ลบทิ้ง สร้างใหม่โลด!

การลบผู้ใช้

เพราะว่าเครื่องนี้มันมีผู้ใช้แค่คนเดียว (ไม่นับ root) เราก็เลยลบตอนที่เราล็อกอินแล้วไม่ได้ ต้องปิดไปก่อน จากนั้นเข้า Root Shell โดยเลือก Recovery Mode ตอนบูต
คำสั่งที่ใช้ลบไม่มีอะไรมากกว่านี้

deluser [username] &#8211;remove-home
ไม่มีอะไรน่าปวดหัว ที่จะงงหน่อยก็คือต่อจากนี้ (ถ้าไม่อยากอ่านการผจญภัย ทำตามเฉพาะรอบที่ 4 รอบเดียว)
การเพิ่มผู้ใช้
รอบที่ 1
ใช้คำสั่งนี้
adduser [username]
ก็เหมือนไม่มีอะไร แต่พอไปล็อกอินปั๊บ ใช้ได้อย่างเดียว จัดการอะไรกับระบบไม่ได้ เพราะไม่มีสิทธิ์สั่งด้วยผู้ใช้ root เลยต้องปิดเครื่อง เข้า Shell แล้วลบผู้ใช้ทิ้ง
รอบที่ 2
คราวนี้ลอง [...]]]></description>
			<content:encoded><![CDATA[<p>วันนี้มีงานเข้า เพราะว่าจะลอง Lotus Symphony ใน Ubuntu แล้วผลปรากฎว่าโปรแกรมมันเปิดไม่ได้ เท่านั้นยังไม่พอ พี่แกล่อกิน Bookmark ในเครื่องไปด้วย พอรีบูทเครื่องไปทีนึงยิ่งไปกันใหญ่ แอปเพล็ตต่างๆ ในพาเนลที่เคยตั้งค่าไว้ มันดีดกลับไปเป็นเหมือนตอนแรกใหม่ เมนูโปรแกรมต่างๆ หายไปหมด แถมเข้าไปแก้เมนูไม่ได้อีกต่างหาก</p>
<p>เท่าที่ดูๆ คาดว่าตัวผู้ใช้ (User) นี้น่าจะมีปัญหาแน่ๆ แล้ว ขี้เกียจหาวิธีแก้ ลบทิ้ง สร้างใหม่โลด!</p>
<p><span id="more-29"></span></p>
<h3>การลบผู้ใช้</h3>
<ol>
<li>เพราะว่าเครื่องนี้มันมีผู้ใช้แค่คนเดียว (ไม่นับ root) เราก็เลยลบตอนที่เราล็อกอินแล้วไม่ได้ ต้องปิดไปก่อน จากนั้นเข้า Root Shell โดยเลือก Recovery Mode ตอนบูต</li>
<li>คำสั่งที่ใช้ลบไม่มีอะไรมากกว่านี้</li>
</ol>
<blockquote><p>deluser <em>[username]</em> &#8211;remove-home</p></blockquote>
<p>ไม่มีอะไรน่าปวดหัว ที่จะงงหน่อยก็คือต่อจากนี้ (ถ้าไม่อยากอ่านการผจญภัย ทำตามเฉพาะรอบที่ 4 รอบเดียว)</p>
<h3>การเพิ่มผู้ใช้</h3>
<h4>รอบที่ 1</h4>
<p>ใช้คำสั่งนี้</p>
<blockquote><p>adduser <em>[username]</em></p></blockquote>
<p>ก็เหมือนไม่มีอะไร แต่พอไปล็อกอินปั๊บ ใช้ได้อย่างเดียว จัดการอะไรกับระบบไม่ได้ เพราะไม่มีสิทธิ์สั่งด้วยผู้ใช้ root เลยต้องปิดเครื่อง เข้า Shell แล้วลบผู้ใช้ทิ้ง</p>
<h4>รอบที่ 2</h4>
<p>คราวนี้ลอง man ดูแล้วมั่วไปแบบนี้</p>
<blockquote><p>adduser <em>[username]</em> &#8211;system</p></blockquote>
<p>ผลปรากฎมันแสดงให้เห็นเลยว่าผู้ใช้นี้อยู่ในกลุ่ม nogroup ไม่ได้สร้างกลุ่มให้เหมือนเมื่อกี้ ลบทิ้งอีกที</p>
<h4>รอบที่ 3</h4>
<p>คราวนี้ลอง man อีกทีแล้วก็</p>
<blockquote><p>adduser <em>[username]</em> &#8211;system &#8211;group</p></blockquote>
<p>รอบนี้มันสร้างกลุ่มชื่อเดียวกับชื่อผู้ใช้ให้อัตโนมัติ เหมือนจะดีแล้ว แต่พอไปล็อกอินแบบ GUI มันไม่ยอมให้ล็อกอิน ปิดเครื่อง เข้า Shell แล้วลบผู้ใช้ทิ้งอีกที</p>
<h4>รอบที่ 4</h4>
<p>แสดงว่าตัวเลือก system ไม่ใช่คำตอบ ก็กลับมาสู่สามัญ คือสั่ง</p>
<blockquote><p>adduser <em>[username]</em></p></blockquote>
<p>เหมือนเดิม แล้วคงต้องไปแก้ที่อื่นเพื่อให้ผู้ใช้นี้มีสิทธิ์แอดมินอีกที ตอนนี้เลยโทรไปขอคำใบ้จาก @rtsp ได้ความว่า /etc/sudoers ก็ลองเอาไฟล์มันมาดูกัน หน้าตาประมาณนี้</p>
<blockquote><p># /etc/sudoers<br />
#<br />
# This file MUST be edited with the &#8216;visudo&#8217; command as root.<br />
#<br />
# See the man page for details on how to write a sudoers file.<br />
#</p>
<p>Defaults    env_reset</p>
<p># Host alias specification</p>
<p># User alias specification</p>
<p># Cmnd alias specification</p>
<p># User privilege specification<br />
root    ALL=(ALL) ALL</p>
<p># Uncomment to allow members of group sudo to not need a password<br />
# (Note that later entries override this, so you might need to move<br />
# it further down)<br />
# %sudo ALL=NOPASSWD: ALL</p>
<p><strong># Members of the admin group may gain root privileges<br />
%admin ALL=(ALL) ALL</strong></p></blockquote>
<p>สังเกตสองบรรทัดสุดท้าย คอมเมนต์มันบอกชัดๆ ว่าผู้ใช้จะขอสิทธิ์สั่งเป็นผู้ใช้ root ได้ถ้าอยู่ในกลุ่ม admin ดังนั้นเราก็ไม่ต้องแก้ไฟล์นี้แล้ว แค่เพิ่มให้ผู้ใช้ที่เราสร้างใหม่อยู่ในกลุ่ม admin ด้วยซะแบบนี้</p>
<blockquote><p>usermod <em>[username]</em> &#8211;groups admin</p></blockquote>
<p>ล็อกอินได้ แก้ไขระบบได้ จบซีรีย์ในที่สุด</p>
]]></content:encoded>
			<wfw:commentRss>http://champjss.in.th/2009/08/users-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>&#8220;Open as Administrator&#8221; and &#8220;Open in Terminal&#8221; in Ubuntu</title>
		<link>http://champjss.in.th/2009/08/nautilus-packages/</link>
		<comments>http://champjss.in.th/2009/08/nautilus-packages/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 12:29:44 +0000</pubDate>
		<dc:creator>champjss</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[nautilus]]></category>

		<guid isPermaLink="false">http://champjss.in.th/?p=19</guid>
		<description><![CDATA[(เอนทรีนี้ไม่จำเป็นสำหรับคนที่ใช้แต่เทอร์มินัล)
เราจะมาเพิ่มเมนูคลิกขวาในโปรแกรมเรียกดูไฟล์ (Nautilus) ใน Ubuntu ให้มีเมนู

Open as Administrator เพื่อเปิดดูโฟลเดอร์หรือเปิดไฟล์ด้วยสิทธิ์แอดมินได้ทันที
Open in Terminal เพื่อเปิดเทอร์มินัลไปที่แฟ้มนั้นให้ทันที


เลือกทำวิธีนึงข้างล่างนี้
GUI

เลือกเมนู System &#62; Administration &#62; Synaptic Package Manager
กด Ctrl+F ค้นด้วยคำว่า nautilus
เลือกแพ็กเกจ nautilus-gksu และ nautilus-open-terminal
แล้วกด Apply เพื่อติดตั้งซะ

Command Line
sudo apt-get install nautilus-gksu nautilus-open-terminal
ที่มา: ทวีตของพี่แมว (@nopparat)
]]></description>
			<content:encoded><![CDATA[<p><em>(เอนทรีนี้ไม่จำเป็นสำหรับคนที่ใช้แต่เทอร์มินัล)</em></p>
<p>เราจะมาเพิ่มเมนูคลิกขวาในโปรแกรมเรียกดูไฟล์ (Nautilus) ใน Ubuntu ให้มีเมนู</p>
<ul>
<li>Open as Administrator เพื่อเปิดดูโฟลเดอร์หรือเปิดไฟล์ด้วยสิทธิ์แอดมินได้ทันที</li>
<li>Open in Terminal เพื่อเปิดเทอร์มินัลไปที่แฟ้มนั้นให้ทันที</li>
</ul>
<p><span id="more-19"></span></p>
<p>เลือกทำวิธีนึงข้างล่างนี้</p>
<h3>GUI</h3>
<ul>
<li>เลือกเมนู System &gt; Administration &gt; Synaptic Package Manager</li>
<li>กด Ctrl+F ค้นด้วยคำว่า <em>nautilus</em></li>
<li>เลือกแพ็กเกจ <em>nautilus-gksu</em> และ <em>nautilus-open-terminal</em></li>
<li>แล้วกด Apply เพื่อติดตั้งซะ</li>
</ul>
<h3>Command Line</h3>
<blockquote><p>sudo apt-get install nautilus-gksu nautilus-open-terminal</p></blockquote>
<p><strong>ที่มา:</strong> <a href="http://twitter.com/nopparat/status/2867949381">ทวีตของพี่แมว</a> (<a href="http://twitter.com/nopparat">@nopparat</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://champjss.in.th/2009/08/nautilus-packages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello champjss!</title>
		<link>http://champjss.in.th/2009/08/hello-champjss/</link>
		<comments>http://champjss.in.th/2009/08/hello-champjss/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 20:48:10 +0000</pubDate>
		<dc:creator>champjss</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">http://champjss.in.th/?p=4</guid>
		<description><![CDATA[สวัสดีกับบล็อกใหม่ น่าจะเป็นบล็อกที่สามแล้วสำหรับยี่ห้อ Wordpress, แต่คราวนี้มีโดเมนและโฮสต์เป็นหลักเป็นแหล่ง ไม่น่าจะต้องย้ายไปไหนอีก

ขอบคุณ THNIC ที่แจกโดเมนนี้ให้ใช้ฟรี 1 ปี ขอให้ปีหน้าราคาโดเมนถูกๆ นะครับ
และขอบคุณพี่ต้น (@tonac119) มากๆ ครับสำหรับโฮสต์ที่ P&#38;T Hosting โฮสต์คุณภาพสูง วางที่ CAT-IDC มีราคาทุกระดับให้คุณเลือก ต่ำสุดแค่ปีละ 99 บาท พร้อม InW Installer ตัวช่วยติดตั้งเว็บแบบเทพๆ (ชื่อในหน้า CP เขียนไว้อย่างนี้จริงๆ นะ :P)
บล็อกนี้ยังคงคอนเซ็ปต์เขียนเรื่องคอมพิวเตอร์ที่คนทั่วไปไม่ค่อยอ่านกันเหมือนเดิม แต่ว่าไม่มีเอนทรีจากบล็อกเก่า เพราะเอนทรีเก่าส่วนใหญ่ไม่มีสาระพอจะย้ายมันออกมา ส่วนเรื่องมีสาระจะยกมาเขียนต่อเติมอีกทีนึง
เรื่องอื่นๆ ทั่วไปอ่านได้จากอีกบล็อกที่ Exteen ซึ่งก็ย้ายเหมือนกัน ถ้าใครอ่านบล็อกนี้ผ่านอุปกรณ์อ่าน Feed, เลือกรับ Feed อันนี้ (สร้างจาก Yahoo! Pipes) เพื่ออัพเดตเอนทรีจากทุกบล็อกของผม (ทั้งสองที่ในตอนนี้ และที่อื่นๆ ในอนาคต) พร้อมกันได้ครับ
ยังไงก็ยินดีต้อนรับสู่บล็อก Professional Novice ครับ
]]></description>
			<content:encoded><![CDATA[<p>สวัสดีกับบล็อกใหม่ น่าจะเป็นบล็อกที่สามแล้วสำหรับยี่ห้อ <a title="Wordpress" href="http://wordpress.org/">Wordpress</a>, แต่คราวนี้มีโดเมนและโฮสต์เป็นหลักเป็นแหล่ง ไม่น่าจะต้องย้ายไปไหนอีก</p>
<p><span id="more-4"></span></p>
<p>ขอบคุณ <a title="THNIC" href="http://www.thnic.co.th/">THNIC </a>ที่แจกโดเมนนี้ให้ใช้ฟรี 1 ปี ขอให้ปีหน้าราคาโดเมนถูกๆ นะครับ</p>
<p>และขอบคุณ<a title="@tonac119" href="http://twitter.com/tonac119">พี่ต้น (@tonac119)</a> มากๆ ครับสำหรับโฮสต์ที่ <a title="P&amp;T Hosting" href="http://www.pathosting.co.th/">P&amp;T Hosting</a> โฮสต์คุณภาพสูง วางที่ CAT-IDC มีราคาทุกระดับให้คุณเลือก ต่ำสุดแค่ปีละ 99 บาท พร้อม InW Installer ตัวช่วยติดตั้งเว็บแบบเทพๆ (ชื่อในหน้า CP เขียนไว้อย่างนี้จริงๆ นะ :P)<a style="font-weight: bold;" href="http://cp.champjss.in.th/CMD_PLUGINS/lnw_DA_installer?domain=champjss.in.th"></a></p>
<p>บล็อกนี้ยังคงคอนเซ็ปต์เขียนเรื่องคอมพิวเตอร์ที่คนทั่วไปไม่ค่อยอ่านกันเหมือนเดิม แต่ว่าไม่มีเอนทรีจาก<a title="champjss's old technical blog" href="http://garnet.cpe.ku.ac.th/~b4905092/">บล็อกเก่า</a> เพราะเอนทรีเก่าส่วนใหญ่ไม่มีสาระพอจะย้ายมันออกมา ส่วนเรื่องมีสาระจะยกมาเขียนต่อเติมอีกทีนึง</p>
<p>เรื่องอื่นๆ ทั่วไปอ่านได้จาก<a title="champjss's Endless Epilogue" href="http://champjss.exteen.com/">อีกบล็อกที่ Exteen</a> ซึ่งก็ย้ายเหมือนกัน ถ้าใครอ่านบล็อกนี้ผ่านอุปกรณ์อ่าน Feed, เลือกรับ <a href="http://pipes.yahoo.com/pipes/pipe.run?_id=Ul5CxCl23hGbe_Gh5P4uug&amp;_render=rss">Feed อันนี้</a> (สร้างจาก <a title="Yahoo! Pipes" href="http://pipes.yahoo.com/">Yahoo! Pipes</a>) เพื่ออัพเดตเอนทรีจากทุกบล็อกของผม (ทั้งสองที่ในตอนนี้ และที่อื่นๆ ในอนาคต) พร้อมกันได้ครับ</p>
<p>ยังไงก็ยินดีต้อนรับสู่บล็อก Professional Novice ครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://champjss.in.th/2009/08/hello-champjss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
