<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The Long Road</title>
	<atom:link href="http://lilylnx.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lilylnx.wordpress.com</link>
	<description>Tien Nguyen&#039;s Wiki - Khái niệm Công Nghệ &#38; Thông Tin</description>
	<lastBuildDate>Fri, 23 Dec 2011 16:19:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='lilylnx.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>The Long Road</title>
		<link>http://lilylnx.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://lilylnx.wordpress.com/osd.xml" title="The Long Road" />
	<atom:link rel='hub' href='http://lilylnx.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Những con số thống kê thường gặp trong các dịch vụ</title>
		<link>http://lilylnx.wordpress.com/2011/12/09/nhung-con-so-thong-ke-thuong-gap-trong-cac-dich-vu/</link>
		<comments>http://lilylnx.wordpress.com/2011/12/09/nhung-con-so-thong-ke-thuong-gap-trong-cac-dich-vu/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 13:59:50 +0000</pubDate>
		<dc:creator>Tien Nguyen</dc:creator>
				<category><![CDATA[Wiki]]></category>

		<guid isPermaLink="false">http://lilylnx.wordpress.com/?p=843</guid>
		<description><![CDATA[Mình nhận thấy bài viết nói lên tính tổng quát và tầm quan trọng của việc thống kê cho các dịch vụ nói chung. Mặc dù chưa xin phép tác giả bài viết nhưng cũng mạn phép rinh về đây. Thường lập trình viên bị sa đà vào việc viết code, tưởng code được trang [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=843&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p><em>Mình nhận thấy bài viết nói lên tính tổng quát và tầm quan trọng của việc thống kê cho các dịch vụ nói chung. Mặc dù chưa xin phép tác giả bài viết nhưng cũng mạn phép rinh về đây.</em></p></blockquote>
<p>Thường lập trình viên bị sa đà vào việc viết code, tưởng code được trang web hay game online thú vị nào đó, release xong là có được một dịch vụ trực tuyến thành công về mặt thương mại. Tuy nhiên, code chỉ là một yếu tố, còn nhiều yếu tố khác, trong đó có việc <strong>thường xuyên</strong> quan sát và đánh giá tình trạng của dịch vụ (không chỉ là tình trạng về mặt kĩ thuật), rồi tìm cách cải tiến.</p>
<p>Mấu chốt là phải cụ thể hoá quan sát đó thành những con số thống kê, hiển thị hoá chúng một cách dễ hiểu (thành biểu đồ chẳng hạn), tiếp đó đưa ra được <a href="http://en.wikipedia.org/wiki/Key_performance_indicator" target="_blank">KPI</a> để có tiêu chí định hướng cho thành công, cho tương lai phát triển của dịch vụ. Bài viết này bàn về 2 vấn đề này, hi vọng góp ý được về mặt <strong>quản lí và hoạch định chiến lược</strong> cho những ai muốn mở dịch vụ.<br />
<span id="more-843"></span></p>
<h3><strong>Những con số thống kê thường gặp</strong></h3>
<p>Người không biết mình đang ở đâu sẽ chẳng đi đến đâu. Người lái máy bay, tàu thủy, ô tô v.v.. đều phải liên tục cập nhật vị trí phương tiện của mình, lèo lái một dịch vụ cũng vậy. Cần đưa ra các con số rồi hiển thị hóa (visualize) tình hình dịch vụ thành biểu đồ trực quan để nhìn cho rõ.</p>
<p>Những con số thường gặp:</p>
<ul>
<li>Số user hàng ngày (DAU = Daily Access Users).</li>
<li>Trong DAU, bao nhiêu người trả tiền lần đầu, bao nhiêu người đã từng trả tiền (ít nhất 1 lần), chiếm tỉ lệ bao nhiêu %.</li>
<li>Số user đăng kí mới hàng ngày</li>
<li><a href="http://en.wikipedia.org/wiki/Retention_rate" target="_blank">Retention rate</a> (tỉ lệ user dùng lại dịch vụ) trong 1, 3, 7, 14, 30, 90 ngày v.v. Con số này rất quan trọng vì nói lên khả năng giữ khách của dịch vụ. Bỏ bao công sức quảng cáo tiếp thị mà khách một đi không trở lại thì rõ ràng dịch vụ rất có vấn đề. Ví dụ ngày 1 tháng 5 có 1000 user đăng kí mới, nếu tỉ lệ là 20% cho 7 ngày, có nghĩa trong 1000 người này có 200 người sử dụng dịch vụ vào ngày 8 tháng 5.</li>
<li>Hàng ngày user login in (hay bật chương trình lên) để sử dụng bao nhiêu lần. Trung bình mỗi lần bao nhiêu lâu. Hàng ngày có bao nhiêu người dùng dịch vụ trong 5 phút, 10 phút, 20 phút v.v..</li>
<li>Số tiền (có thể là tiền ảo) thu được hàng ngày.</li>
<li>Số tiền được trả lần đầu tiên.</li>
<li>Số tiền thu được trên mỗi user (ARPU = Average Revenue Per User), <a href="http://www.businessinsider.com/chart-of-the-day-revenue-per-unique-visitor-2010-3" target="_blank">so sánh</a> thử với các đại gia Google Facebook.</li>
<li>Số tiền thu được trên mỗi user đã trả tiền (ARPPU).</li>
</ul>
<p>Đó là tính theo thời gian từng ngày. Cần tính thêm theo tuần, tháng, năm, thậm chí tùy dịch vụ mà cần cả theo giờ. Dĩ nhiên cần tính cả tổng số từ lúc dịch vụ ra mắt cho đến hiện tại.</p>
<p>Ngoài ra còn cần những con số khác tùy theo đặc điểm riêng của dịch vụ. Ví dụ nếu là dịch vụ game có bán item, thì cần thống kê xem thường người ta mua vào thời điểm nào trong ngày, thời điểm nào trong game v.v..</p>
<p>Nếu dịch vụ hỗ trợ nhiều loại media (feature phone, smartphone, PC v.v..) thì lại cần phân ra thêm theo từng loại. Mở rộng khái niệm sẽ thành các kênh bán hàng v.v.. nhưng tựu chung lại thì cần xác định khách hàng đến với ta bằng phương tiện nào, môi giới trung gian nào. Ví dụ mở quán phở thì hãy để ý xem khách đến ăn bằng xe máy xe đạp ô tô hay đi bộ v.v.. Họ ăn ở quán hay mua về nhà v.v..</p>
<p>Một số dịch vụ như <a href="http://www.google.com/analytics/" target="_blank">Google Analytics</a> (dùng cho web) và <a href="http://www.flurry.com/" target="_blank">Flurry</a> (smartphone) giúp bạn tính khá nhiều con số, nhưng nhiều cái bạn phải tự tính.</p>
<h3><strong>KPI</strong></h3>
<p>Lắm thầy nhiều ma. Xe có quá nhiều đồng hồ sắp xếp không hợp lí thì cũng chỉ để làm cảnh chứ chẳng tác dụng gì. Do đó tuỳ dịch vụ mà trong các con số trên cần chọn ra vài cái có ý nghĩa nhất, giúp phản ánh tình trạng hiện tại và định hướng cho tương lai. Tập hợp những con số đó gọi là <a href="http://en.wikipedia.org/wiki/Key_performance_indicator" target="_blank">KPI</a>. Chúng thường có đặc điểm:</p>
<ul>
<li>Không phải là tiền, tiền chỉ là hệ quả.</li>
<li>Thực tế, thực dụng, có mục tiêu.</li>
</ul>
<p>Ví dụ, đối với game online có thể dùng vài con số như:</p>
<ul>
<li>Retetion rate trong 3 ngày là 35%.</li>
<li>Hàng ngày user một khi đã chơi thì sẽ chơi ít nhất 2 lần.</li>
<li>Qua được ít nhất 5 màn.</li>
<li>Dành được ít nhất 2 huy chương.</li>
</ul>
<h3><strong>Chuẩn hóa các dịch vụ trong công ty của bạn</strong></h3>
<p>Mỗi dịch vụ đều phải có product manager, đội phát triển, đội vận hành v.v. Khi phát triển thì từ đầu nên đưa ra các tiêu chí như hàng ngày phải có những con số thống kê nào, KPI là gì. Khi vận hành thấy rõ các con số như vậy thì cần tinh chỉnh như thế nào, cải tiến như thế nào, đề ra chiến lược sẽ đưa dịch vụ đi về đâu v.v..</p>
<p>Đưa được cái đó thành văn hoá công ty, tất cả dịch vụ đều đạt chuẩn như vậy, thì mọi thứ đều rõ ràng minh bạch, mọi nhân viên đều thấy rõ dịch vụ đang ở đâu, sẽ phải làm gì để đưa dịch vụ đến đâu. Làm được như vậy thì bạn chẳng phải lo công ty không cất cánh.</p>
<h3><strong>Đọc thêm</strong></h3>
<ul>
<li><a href="http://www.slideshare.net/dennis.mortensen/the-difference-between-a-kpi-and-a-metric" target="_blank">The difference between a KPI and a metric</a></li>
<li><a href="http://www.slideshare.net/mgaewsj/agile-kpis-5853270" target="_blank">Agile KPIs</a></li>
<li><a href="http://www.quora.com/Does-a-Product-manager-job-position-need-an-MBA" target="_blank">Does a Product manager job position need an MBA?</a></li>
</ul>
<p><strong>Nguồn: Blog CNTT (<a href="http://cntt.tv/nodes/show/582" target="_blank">cntt.tv</a>)</strong></p>
<br />Filed under: <a href='http://lilylnx.wordpress.com/category/wiki/'>Wiki</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lilylnx.wordpress.com/843/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lilylnx.wordpress.com/843/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lilylnx.wordpress.com/843/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lilylnx.wordpress.com/843/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lilylnx.wordpress.com/843/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lilylnx.wordpress.com/843/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lilylnx.wordpress.com/843/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lilylnx.wordpress.com/843/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lilylnx.wordpress.com/843/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lilylnx.wordpress.com/843/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lilylnx.wordpress.com/843/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lilylnx.wordpress.com/843/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lilylnx.wordpress.com/843/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lilylnx.wordpress.com/843/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=843&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lilylnx.wordpress.com/2011/12/09/nhung-con-so-thong-ke-thuong-gap-trong-cac-dich-vu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>10.794208 106.654518</georss:point>
		<geo:lat>10.794208</geo:lat>
		<geo:long>106.654518</geo:long>
		<media:content url="http://1.gravatar.com/avatar/19f5f46e314898d0a27cb990197197fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lilylnx</media:title>
		</media:content>
	</item>
		<item>
		<title>[How to] Kết nối đến Database Engine sử dụng sqlcmd.exe</title>
		<link>http://lilylnx.wordpress.com/2011/10/30/how-to-ket-noi-den-database-engine-su-dung-sqlcmd-exe/</link>
		<comments>http://lilylnx.wordpress.com/2011/10/30/how-to-ket-noi-den-database-engine-su-dung-sqlcmd-exe/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 19:58:35 +0000</pubDate>
		<dc:creator>Tien Nguyen</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://lilylnx.wordpress.com/?p=824</guid>
		<description><![CDATA[SQL Server hỗ trợ việc client kết nối đến thông qua giao thức TCP/IP (mặc định). Ngoài ra còn cung cấp thêm một số giao thức khác như: Named Pipes Protocol, VIA Protocol, Shared Memory Protocol. Lưu ý: để tạo kết nối sử dụng Shared Memory Protocol, máy client của bạn phải đang liên kết [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=824&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>SQL Server hỗ trợ việc client kết nối đến thông qua giao thức TCP/IP (mặc định). Ngoài ra còn cung cấp thêm một số giao thức khác như: <strong>Named Pipes Protocol</strong>, <strong>VIA Protocol</strong>, <strong>Shared Memory Protocol</strong>.</p>
<blockquote><p><strong>Lưu ý:</strong> để tạo kết nối sử dụng Shared Memory Protocol, máy client của bạn phải đang liên kết với một instance của Database Engine trên cùng 1 máy. Nói cách khác, phần client và server phải nằm trên một máy tính mới có thể giao tiếp qua giao thức này.</p></blockquote>
<blockquote><p><strong>Lưu ý quan trọng:</strong> Giao thức VIA Protocol đã bị &#8216;deprecated&#8217;. Và sẽ không có mặt trong phiên bản SQL Server kế tiếp (sau bản 2008). Nên tránh dùng giao thức này khi phát triển mới một ứng dụng, và cũng nên thay đổi giao thức kết nối của các ứng dụng cũ đang sử dụng giao thức này.</p></blockquote>
<p>Bài viết hướng dẫn dưới đây sẽ kết nối đến &#8216;default instance&#8217; của Database Engine trên cổng 1433, và &#8216;named instance&#8217; của Database Engine trên cổng 1691. Một số ví dụ sử dụng IP 127.0.0.1 (đây là IP loopback của adapter mặc định trên mọi máy tính).<br />
<span id="more-824"></span></p>
<p><strong>Kết nối đến Database Engine với &#8216;instance name&#8217;:</strong></p>
<p><code>sqlcmd -S ComputerA<br />
sqlcmd -S ComputerA\instanceB</code></p>
<p><strong>Kết nối đến Database Engine với địa chỉ IP:</strong></p>
<p><code>sqlcmd -S 127.0.0.1<br />
sqlcmd -S 127.0.0.1\instanceB</code></p>
<p><strong>Kết nối đến Database Engine với &#8216;port number&#8217; của TCP/IP:</strong></p>
<p><code>sqlcmd -S ComputerA,1433<br />
sqlcmd -S ComputerA,1691<br />
sqlcmd -S 127.0.0.1,1433<br />
sqlcmd -S 127.0.0.1,1691</code></p>
<p>&#8212;<br />
<strong>KẾT NỐI SỬ DỤNG TCP/IP:</strong></p>
<blockquote><p>Kết nối với cú pháp chung như sau:<br />
<code>sqlcmd -S tcp:&lt;computer name&gt;,&lt;port number&gt;</code></p></blockquote>
<p>Với default instance:<br />
<code>sqlcmd -S tcp:ComputerA,1433<br />
sqlcmd -S tcp:127.0.0.1,1433</code></p>
<p>Với named instance:<br />
<code>sqlcmd -S tcp:ComputerA,1691<br />
sqlcmd -S tcp:127.0.0.1,1691</code></p>
<p><strong>KẾT NỐI SỬ DỤNG NAMED PIPES:</strong></p>
<blockquote><p>Cú pháp chung:<br />
<code>sqlcmd -S np:\\&lt;computer name&gt;\&lt;pipe name&gt;</code></p></blockquote>
<p>Với default instance:<br />
<code>sqlcmd -S np:\\ComputerA\pipe\sql\query<br />
sqlcmd -S np:\\127.0.0.1\pipe\sql\query</code></p>
<p>Với named instance:<br />
<code>sqlcmd -S np:\\ComputerA\pipe\MSSQL$\sql\query<br />
sqlcmd -S np:\\127.0.0.1\pipe\MSSQL$\sql\query</code></p>
<p><strong>KẾT NỐI SỬ DỤNG SHARED MEMORY (còn gọi là Local Procedure Call):</strong></p>
<blockquote><p>Cú pháp chung:<br />
<code>sqlcmd -S lpc:&lt;computer name&gt;</code></p></blockquote>
<p>Với default instance:<br />
<code>sqlcmd -S lpc:ComputerA</code></p>
<p>Với named instance:<br />
<code>sqlcmd -S lpc:ComputerA\&lt;instancename&gt;</code></p>
<p><strong>KẾT NỐI SỬ DỤNG VIA PROTOCOL:</strong></p>
<blockquote><p><code>sqlcmd -S via:&lt;computer name&gt;,&lt;port number&gt;,&lt;NIC number&gt;</code></p></blockquote>
<p>Với default instance:<br />
<code>sqlcmd -S via:ComputerA,1433,0</code></p>
<p>Với named instance:<br />
<code>sqlcmd -S via:ComputerA,1691,0</code></p>
<p>&#8212;<br />
Với tiện ích <strong>sqlcmd</strong>, mình có thể thực hiện hầu hết các kết nối.<br />
Mình cũng lưu ý, nhận mạnh thêm rằng, nên enable giao thức nào mình muốn sử dụng và disable những giao thức/cổng không dùng đến trong cấu hình kết nối.</p>
<br />Filed under: <a href='http://lilylnx.wordpress.com/category/tips-tricks/'>Tips &amp; Tricks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lilylnx.wordpress.com/824/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lilylnx.wordpress.com/824/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lilylnx.wordpress.com/824/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lilylnx.wordpress.com/824/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lilylnx.wordpress.com/824/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lilylnx.wordpress.com/824/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lilylnx.wordpress.com/824/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lilylnx.wordpress.com/824/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lilylnx.wordpress.com/824/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lilylnx.wordpress.com/824/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lilylnx.wordpress.com/824/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lilylnx.wordpress.com/824/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lilylnx.wordpress.com/824/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lilylnx.wordpress.com/824/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=824&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lilylnx.wordpress.com/2011/10/30/how-to-ket-noi-den-database-engine-su-dung-sqlcmd-exe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<georss:point>10.794208 106.654518</georss:point>
		<geo:lat>10.794208</geo:lat>
		<geo:long>106.654518</geo:long>
		<media:content url="http://1.gravatar.com/avatar/19f5f46e314898d0a27cb990197197fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lilylnx</media:title>
		</media:content>
	</item>
		<item>
		<title>[How To] Giải pháp cho người không thích SQL Server Management Studio</title>
		<link>http://lilylnx.wordpress.com/2011/10/30/how-to-giai-phap-cho-nguoi-khong-thich-sqlserver-management-studio/</link>
		<comments>http://lilylnx.wordpress.com/2011/10/30/how-to-giai-phap-cho-nguoi-khong-thich-sqlserver-management-studio/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 18:47:39 +0000</pubDate>
		<dc:creator>Tien Nguyen</dc:creator>
				<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[navicat]]></category>
		<category><![CDATA[sqlserver]]></category>

		<guid isPermaLink="false">http://lilylnx.wordpress.com/?p=777</guid>
		<description><![CDATA[MSSQL Server Management Studio là công cụ mà ai cũng biết. Nó được đính kèm khi cài đặt SQL Server trong hầu hết các phiên bản. Dĩ nhiên, nếu không thích công cụ này thì vẫn có tùy chọn để loại bỏ khi cài đặt. Với SQL Server 2008 Express, bạn có thể tải về [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=777&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/SQL_Server_Management_Studio">MSSQL Server Management Studio</a> là công cụ mà ai cũng biết. Nó được đính kèm khi cài đặt SQL Server trong hầu hết các phiên bản. Dĩ nhiên, nếu không thích công cụ này thì vẫn có tùy chọn để loại bỏ khi cài đặt.</p>
<p>Với SQL Server 2008 Express, bạn có thể tải về mà không đính kèm công cụ này <a href="http://www.microsoft.com/download/en/details.aspx?id=3743">tại đây</a>. Dung lượng rất nhẹ, chỉ chứa Database Engine <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Lưu ý, có 3 lựa chọn:<br />
<strong>SQLEXPR_x64_ENU.exe:</strong> chỉ sử dụng gói này để cài đặt trên HĐH 64-bit.<br />
<strong>
<td>SQLEXPR_x86_ENU.exe:</strong> gói này để cài đặt SQL Express 32bit trên HĐH 64-bit trong môi trường WoW.<br />
<strong>SQLEXPR32_x86_ENU.exe:</strong> sử dụng gói này để cài đặt trên HĐH 32-bit.</p>
<p><em>Vậy khi cài đặt xong thì làm thế nào để sử dụng?</em> Dĩ nhiên giải pháp ở đây là sử dụng một công cụ khác thay thế cho SQL Management Studio, đơn cử một công cụ đó là: <strong>Navicat </strong>của PremiumSoft (<a href="http://www.navicat.com/">trang chủ</a>).<br />
Sử dụng khá đơn giản và nhẹ nhàng <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Hiện Navicat có 6 phiên bản dành cho 6 hệ quản trị CSDL. Mình sẽ chọn &#8220;Navicat for SQL Server&#8221;; tuy nhiên, tham lam một chút bạn có thể cài hẳn bản Premium 6 trong 1 và đằng nào cũng phải trả phí hoặc cr* tùy ý.<br />
<span id="more-777"></span></p>
<p>&#8212;<br />
Nhưng đảm bảo thế nào khi bạn sử dụng cũng sẽ gặp trục trặc <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> , đó là sẽ không truy vập được vào tài khoản <strong>[sa]</strong> (đa số các LTV thích xài account này).<br />
Khi cài đặt SQL, nếu bạn không đặt password cho sa và kích hoạt chế độ <strong>Mixed Mode (SQL Server authentication and Windows authentication)</strong> thì có lẽ bạn phải đọc tiếp phần bên dưới <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>&#8212;<br />
Có 3 cách có thể giải quyết vấn đề này:</p>
<p><strong>1.</strong> Nếu có sẵn SQL Management Studio, bạn có thể dễ dàng đặt password và kích hoạt chế độ Mixed Mode để có thể truy vập vào sa. Bằng cách dùng quyền Windows authencation để giải quyết.<br />
<strong>2.</strong> Sử dụng Navicat và tạo kết nối sử dụng quyền Windows authentication và ta enable tài khoản sa ở phần User &gt; Login.<br />
<strong>3.</strong> Ở hai cách trên, có thể dễ dàng thao tác thông qua giao diện đồ họa. Còn thích chơi command line (CLI) thì cũng sẵn sàng chiều ý. Bên dưới sẽ hướng dẫn cách kích hoạt sa và Mixed Mode <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Trọng tâm bài viết là chỗ này đây. Từng bước như sau (nhớ là start dịch vụ MSSQLServer):</p>
<p>Mở command line:</p>
<p><strong>- Truy cập SQL với quyền Windows, nhập lệnh sau:</strong></p>
<blockquote><p><code>sqlcmd -S &lt;server name&gt;</code></p></blockquote>
<p>Ví dụ, server name của mình là CERN, nhập : <code>sqlcmd -S CERN</code><br />
Đăng nhập lệnh thành công, màn hình hiển thị<br />
1&gt;<br />
tiếp tục&#8230;</p>
<p><strong>- Enable tài khoản sa bằng 2 dòng lệnh sau:</strong></p>
<blockquote><p><code>ALTER LOGIN sa ENABLE;<br />
GO</code></p></blockquote>
<p>Thực thi không lỗi là kích hoạt xong, bạn có thể đặt password cho sa bằng lệnh:</p>
<blockquote><p><code>ALTER LOGIN sa WITH PASSWORD = 'daylapasswordcuaban';<br />
GO<br />
EXIT</code></p></blockquote>
<p><strong>- Kích hoạt chế độ Mixed Mode (SQL Server authentication and Windows authentication):</strong><br />
Thay đổi giá trị <strong>LoginMode</strong> thành <strong>2</strong> trong registry tại đường dẫn:</p>
<blockquote><p><code>HKEY_LOCAL_MACHINE\<br />
SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQLServer</code></p></blockquote>
<p>Lưu ý: đường dẫn trên có thể khác bắt đầu từ chỗ \MSSQL10_50.SQLEXPRESS\&#8230;<br />
Vì mình xài SQL Express 2008, đã đặt <strong>named instance</strong> khi cài đặt là SQLExpress nên đường dẫn như trên. Ăn thua ở chỗ bạn phải hiểu named instance trong SQL là gì, bạn đang chạy SQL trên instance nào thì chỉnh sửa LoginMode của instance đó cho phù hợp.</p>
<p>Bạn có thể sửa giá trị LoginMode thành 2 bằng cmd như sau (thực thi với quyền administrator):</p>
<blockquote><p><strong><code>REG ADD "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQLSERVER" /v LoginMode /t REG_DWORD /d 2</code></strong></p></blockquote>
<p>Cuối cùng bạn restart dịch vụ MSSQLServer là xong. (Nhớ là restart lại)</p>
<p>&#8212;<br />
<strong>Bonus thêm vài thao tác SQL bằng cách dùng sqlcmd.exe</strong></p>
<p><strong>1. Attach database bằng 1 trong 2 lệnh sau:</strong></p>
<blockquote><p><code>CREATE DATABASE [database_name] ON<br />
&nbsp;&nbsp;&nbsp;&nbsp;(FILENAME = N'Đường dẫn tới tập tin .mdf'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;(FILENAME = N'Đường dẫn tới tập tin .ldf')<br />
FOR ATTACH;<br />
GO</code></p></blockquote>
<p>hoặc, dùng store procedure:</p>
<blockquote><p><code>EXEC sp_attach_db @dbname = N'Tên_database',<br />
&nbsp;&nbsp;&nbsp;&nbsp;@filename1 = N'Đường_dẫn_tới_file_mdf',<br />
&nbsp;&nbsp;&nbsp;&nbsp;@filename2 = N'Đường_dẫn_tới_file_ldf'<br />
</code></p></blockquote>
<p>Có thể viết gọn như sau, ví dụ:<br />
<code>EXEC sp_attach_db N'Tên_database', N'Đường_dẫn_tới_file_mdf', N'Đường_dẫn_tới_file_ldf'</code></p>
<p><strong>2. Detach database:</strong></p>
<blockquote><p><code>EXEC sp_detach_db N'Tên_database'</code></p></blockquote>
<p>&#8212;<br />
Hãy tham khảo thêm:<br />
<a href="http://lilylnx.wordpress.com/2011/10/30/how-to-ket-noi-den-database-engine-su-dung-sqlcmd-exe/">Các phương pháp kết nối đến Database Engine bằng sqlcmd.exe</a></p>
<br />Filed under: <a href='http://lilylnx.wordpress.com/category/tips-tricks/'>Tips &amp; Tricks</a> Tagged: <a href='http://lilylnx.wordpress.com/tag/navicat/'>navicat</a>, <a href='http://lilylnx.wordpress.com/tag/sqlserver/'>sqlserver</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lilylnx.wordpress.com/777/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lilylnx.wordpress.com/777/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lilylnx.wordpress.com/777/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lilylnx.wordpress.com/777/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lilylnx.wordpress.com/777/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lilylnx.wordpress.com/777/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lilylnx.wordpress.com/777/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lilylnx.wordpress.com/777/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lilylnx.wordpress.com/777/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lilylnx.wordpress.com/777/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lilylnx.wordpress.com/777/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lilylnx.wordpress.com/777/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lilylnx.wordpress.com/777/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lilylnx.wordpress.com/777/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=777&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lilylnx.wordpress.com/2011/10/30/how-to-giai-phap-cho-nguoi-khong-thich-sqlserver-management-studio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>10.794208 106.654518</georss:point>
		<geo:lat>10.794208</geo:lat>
		<geo:long>106.654518</geo:long>
		<media:content url="http://1.gravatar.com/avatar/19f5f46e314898d0a27cb990197197fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lilylnx</media:title>
		</media:content>
	</item>
		<item>
		<title>[FAQ] Tại sao Nhân Linux viết bằng C mà không phải là C++?</title>
		<link>http://lilylnx.wordpress.com/2011/07/24/tai-sao-nhan-linux-viet-bang-c/</link>
		<comments>http://lilylnx.wordpress.com/2011/07/24/tai-sao-nhan-linux-viet-bang-c/#comments</comments>
		<pubDate>Sun, 24 Jul 2011 04:14:48 +0000</pubDate>
		<dc:creator>Tien Nguyen</dc:creator>
				<category><![CDATA[FAQ]]></category>

		<guid isPermaLink="false">http://lilylnx.wordpress.com/?p=692</guid>
		<description><![CDATA[Câu hỏi và câu trả lời tại đây! HỎI: Những lý do nào về nhân Linux (nói chung cả Unix, bao gồm Solaris) được viết bằng C mà không phải là C++. Trong khi C++ là một ngôn ngữ tốt hơn C về các khái niệm hướng đối tượng. Tại sao kernel hay hầu hết [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=692&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:right;"><em>Câu hỏi và câu trả lời </em><a href="http://answers.google.com/answers/threadview/id/718661.html" target="_blank"><em>tại đây</em></a><em>!</em></p>
<p><strong>HỎI:</strong> Những lý do nào về nhân Linux (nói chung cả Unix, bao gồm Solaris) được viết bằng C mà không phải là C++. Trong khi C++ là một ngôn ngữ tốt hơn C về các khái niệm hướng đối tượng. Tại sao kernel hay hầu hết các hệ thống CSDL phổ biến được viết bằng ngôn ngữ C thay vì bằng C++. (rkalyankumar)</p>
<p><strong>TRẢ LỜI:</strong></p>
<p><strong>(maniac)</strong><br />Những lý do cụ thể về Linux đã được giải thích chi tiết trong Linux Kernel Mailing List (LKML) Frequently Asked Questions (FAQ) tại:<br />&#160; <a href="http://www.tux.org/lkml/" target="_blank">http://www.tux.org/lkml/</a></p>
<p><span id="more-692"></span></p>
<p>Ở Section 15 (tiêu đề Programming Religion), giải thích tổng quát như sau:</p>
<p>&#160; &#8211; Linus đã bắt đầu với với chiếc máy 386, hệ điều hành Minix, và trình biên dịch gcc.<br />&#160; &#8211; C được dùng để thay thế Assembly bởi nhiều lý do như khả năng bảo trì mã, khả năng đọc, tính hiệu quả…<br />&#160; &#8211; Cách đây nhiều năm, những nhà phát triển kernel đã cố gắng dùng g++ để biên dịch nhân Linux và thấy rằng kernel chạy chậm hơn so với khi được biên dịch bằng gcc (nhiều người đã nghĩ rằng tốc độ sẽ là như nhau); và rồi họ chẳng muốn thực hiện điều này một lần nào nữa.<br />&#160; &#8211; Cuối cùng Linus đã quyết định sẽ gắn bó với C. Ngoài ra còn có một số lời giải thích khác tại:<br />&#160; <a href="http://kerneltrap.org/node/2067" target="_blank">http://kerneltrap.org/node/2067</a><br />trong đó mô tả nỗ lực của một người trong việc xây dựng một số mã C++ thích hợp để kết hợp vào một module của kernel.</p>
<p>Về bối cảnh lịch sử, Thompson và Ritchie đã phát triển UNIX bằng cách sử dụng một số khái niệm từ Multics và CTSS.<br />&#160; <a title="http://www.multicians.org/unix.html" href="http://www.multicians.org/unix.html" target="_blank">http://www.multicians.org/unix.html</a><br />bao gồm việc thực hiện hầu hết các hoạt động bằng một ngôn ngữ bậc cao hơn (Unix – C, Multics – PL/I), đặt tên các command thông thường, v.v.. Bạn hãy tham khảo:<br />&#160; <a title="http://cm.bell-labs.com/cm/cs/who/dmr/hist.html" href="http://cm.bell-labs.com/cm/cs/who/dmr/hist.html" target="_blank">http://cm.bell-labs.com/cm/cs/who/dmr/hist.html</a><br />trong đó mô tả sự phát triển SỚM của UNIX bao gồm việc chuyển đổi từ Assembly trên PDP-7 thành C trên PDP-11. (gần cuối trang)</p>
<p>Xây dựng từ những cơ sở đó, UNIX từ AT&amp;T đã mở rộng việc phân phối và được tiến hành bởi hàng ngàn người là một hệ điều hành dựa trên C. Trong những năm 1970 và 1980, một sự thay thế cho việc phân phối của AT&amp;T đã được phát triển tại UC Berkeley. Xem:<br />&#160; <a title="http://en.wikipedia.org/wiki/Berkeley_Software_Distribution" href="http://en.wikipedia.org/wiki/Berkeley_Software_Distribution" target="_blank">http://en.wikipedia.org/wiki/Berkeley_Software_Distribution</a><br />cho một lời giải thích ngắn liên quan tới sự phát triển của BSD. Các phiên bản cuối cùng của BSD đã không sử dụng bất kỳ cơ sở mã nguồn nào của AT&amp;T, ngoại trừ việc thực hiện chúng bằng C. Cuối bài viết là danh sách một vài hậu duệ của BSD bao gồm cả SunOS (hiện nay là Solaris).</p>
<p>Điều đó không phải để nói rằng ứng dụng được thực hiện tốt hơn bằng ngôn ngữ hướng đối tượng như là C++. Nhưng có một số giao diện người dùng đồ họa (GUI) chẳng hạn như KDE thì được viết bằng C++. Tuy nhiên, có những ứng dụng thì phù hợp hơn với ngôn ngữ hướng thủ tục, về điểm này thì hệ điều hành cũng nằm trong loại đó.</p>
<br />Filed under: <a href='http://lilylnx.wordpress.com/category/faq/'>FAQ</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lilylnx.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lilylnx.wordpress.com/692/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lilylnx.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lilylnx.wordpress.com/692/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lilylnx.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lilylnx.wordpress.com/692/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lilylnx.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lilylnx.wordpress.com/692/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lilylnx.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lilylnx.wordpress.com/692/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lilylnx.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lilylnx.wordpress.com/692/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lilylnx.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lilylnx.wordpress.com/692/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=692&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lilylnx.wordpress.com/2011/07/24/tai-sao-nhan-linux-viet-bang-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>10.794208 106.654518</georss:point>
		<geo:lat>10.794208</geo:lat>
		<geo:long>106.654518</geo:long>
		<media:content url="http://1.gravatar.com/avatar/19f5f46e314898d0a27cb990197197fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lilylnx</media:title>
		</media:content>
	</item>
		<item>
		<title>[FAQ] Tại sao Linux không lưu trữ thời gian tạo tập tin?</title>
		<link>http://lilylnx.wordpress.com/2011/07/17/tai-sao-linux-khong-luu-tru-thoi-gian-tao-tap-tin/</link>
		<comments>http://lilylnx.wordpress.com/2011/07/17/tai-sao-linux-khong-luu-tru-thoi-gian-tao-tap-tin/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 12:26:02 +0000</pubDate>
		<dc:creator>Tien Nguyen</dc:creator>
				<category><![CDATA[FAQ]]></category>

		<guid isPermaLink="false">http://lilylnx.wordpress.com/?p=672</guid>
		<description><![CDATA[Hầu hết các hệ điều hành tương tự Unix không lưu trữ về thời gian tạo (creation time – crtime) tập tin. Đây thực sự không phải là một tính năng hữu ích cho hầu hết mọi người. - Nếu tập tin chưa bao giờ được chỉnh sửa, thì creation time của nó sẽ bằng [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=672&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hầu hết các hệ điều hành tương tự Unix không lưu trữ về thời gian tạo (creation time – crtime) tập tin. Đây thực sự không phải là một tính năng hữu ích cho hầu hết mọi người.</p>
<p>- Nếu tập tin chưa bao giờ được chỉnh sửa, thì <strong>creation time</strong> của nó sẽ bằng <strong>last modification time</strong> (mtime).<br />
- Nếu tập tin được tự động tạo ra bởi một chương trình hoặc khi hệ thống được cài đặt, thì thời gian của một số tập tin có thể là như nhau, điều này không hữu ích cho tổ chức.<br />
- Nếu bạn import các tập tin từ <em>một file system khác mà không có lưu trữ creation time hoặc thời gian hệ thống không đúng</em>, thì thời gian của tập tin trên hệ thống của bạn cũng sẽ sai và do đó không hữu ích.</p>
<p>Một vài hệ thống tập tin của Linux (chẳng hạn như Ext4..) có khả năng kỹ thuật để lưu trữ crtime, nhưng rất ít công cụ và thư viện được cập nhật cho việc sử dụng nó, vì:<br />
  1. Đó không phải là tiêu chuẩn hoặc không phổ biến.<br />
  2. Crtime thực sự không hữu ích và do đó không phải là một ưu tiên cao để đưa vào sử dụng.</p>
<p>Tóm lại, Linux không lưu trữ thời gian tạo tập tin, vì đó không phải là việc của nó. Theo dõi thuộc tính các tập tin là trách nhiệm của một hệ thống tập tin. Hầu hết các hệ thống tập tin không lưu trữ thời gian tạo, vì như trên đã nói, <strong>khi các tập tin được sửa đổi thường quan trọng hơn nhiều so với khi nó được tạo ra</strong>.</p>
<br />Filed under: <a href='http://lilylnx.wordpress.com/category/faq/'>FAQ</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lilylnx.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lilylnx.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lilylnx.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lilylnx.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lilylnx.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lilylnx.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lilylnx.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lilylnx.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lilylnx.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lilylnx.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lilylnx.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lilylnx.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lilylnx.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lilylnx.wordpress.com/672/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=672&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lilylnx.wordpress.com/2011/07/17/tai-sao-linux-khong-luu-tru-thoi-gian-tao-tap-tin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>10.794208 106.654518</georss:point>
		<geo:lat>10.794208</geo:lat>
		<geo:long>106.654518</geo:long>
		<media:content url="http://1.gravatar.com/avatar/19f5f46e314898d0a27cb990197197fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lilylnx</media:title>
		</media:content>
	</item>
		<item>
		<title>Nhận invite Google Plus</title>
		<link>http://lilylnx.wordpress.com/2011/07/17/nhan-invite-google-plus/</link>
		<comments>http://lilylnx.wordpress.com/2011/07/17/nhan-invite-google-plus/#comments</comments>
		<pubDate>Sat, 16 Jul 2011 17:15:32 +0000</pubDate>
		<dc:creator>Tien Nguyen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lilylnx.wordpress.com/?p=664</guid>
		<description><![CDATA[Hãy để email tại đây mình sẽ invite. Hoặc, để tham gia trực tiếp Google+ chỉ với một LIÊN KẾT duy nhất. Google+ invitation! Leave your email address here. Or you can join by clicking this LINK (provided by Google) . Profile: gplus.to/tiennguyen &#124;&#124; plus.ly/tiennguyen Invite Google+, Google Plus Filed under: Uncategorized<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=664&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hãy để email tại đây mình sẽ invite.<br />
Hoặc, để tham gia trực tiếp Google+ chỉ với một <a href="https://plus.google.com/_/notifications/ngemlink?path=%2F%3Fgpinv%3DpucWltWLYrk%3A56bepz21Y_c" target="_blank">LIÊN KẾT</a> duy nhất.</p>
<p>Google+ invitation! Leave your email address here.<br />
Or you can join by clicking this <a href="https://plus.google.com/_/notifications/ngemlink?path=%2F%3Fgpinv%3DpucWltWLYrk%3A56bepz21Y_c" target="_blank">LINK</a> (provided by Google) <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Profile: <a href="http://gplus.to/tiennguyen" target="_blank">gplus.to/tiennguyen</a> || <a href="http://plus.ly/tiennguyen" target="_blank">plus.ly/tiennguyen</a></p>
<p><span style="color:#ddd;">Invite Google+, Google Plus</span></p>
<br />Filed under: <a href='http://lilylnx.wordpress.com/category/uncategorized/'>Uncategorized</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lilylnx.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lilylnx.wordpress.com/664/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lilylnx.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lilylnx.wordpress.com/664/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lilylnx.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lilylnx.wordpress.com/664/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lilylnx.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lilylnx.wordpress.com/664/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lilylnx.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lilylnx.wordpress.com/664/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lilylnx.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lilylnx.wordpress.com/664/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lilylnx.wordpress.com/664/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lilylnx.wordpress.com/664/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=664&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lilylnx.wordpress.com/2011/07/17/nhan-invite-google-plus/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		<georss:point>10.794208 106.654518</georss:point>
		<geo:lat>10.794208</geo:lat>
		<geo:long>106.654518</geo:long>
		<media:content url="http://1.gravatar.com/avatar/19f5f46e314898d0a27cb990197197fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lilylnx</media:title>
		</media:content>
	</item>
		<item>
		<title>[BUG] Khắc phục sự cố Eclipse Helios trên Fedora 15</title>
		<link>http://lilylnx.wordpress.com/2011/07/08/bug-khac-phuc-su-co-eclipse-helios-tren-fedora-15/</link>
		<comments>http://lilylnx.wordpress.com/2011/07/08/bug-khac-phuc-su-co-eclipse-helios-tren-fedora-15/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 19:29:38 +0000</pubDate>
		<dc:creator>Tien Nguyen</dc:creator>
				<category><![CDATA[BUG]]></category>

		<guid isPermaLink="false">http://lilylnx.wordpress.com/?p=648</guid>
		<description><![CDATA[Fedora 15 phát hành vào ngày thứ 3 24/5/2011, giao diện được thay đổi thành GNOME 3 hào nhoáng và có thêm một số công cụ mới khác. Như thường lệ, bản phân phối Fedora mới bao gồm phiên bản mới của các thư viện hệ thống, bao gồm cả version 2 của XULRunner. Không [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=648&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Fedora 15 phát hành vào ngày thứ 3 24/5/2011, giao diện được thay đổi thành GNOME 3 hào nhoáng và có thêm một số công cụ mới khác. Như thường lệ, bản phân phối Fedora mới bao gồm phiên bản mới của các thư viện hệ thống, bao gồm cả version 2 của XULRunner. Không may là Eclipse Helios chỉ hỗ trợ XULRunner version 1.8.x &#8211; 1.9.2.x nên không thể tương thích tốt với version 2.</p>
<p>Eclipse khởi động lên thì OK và hầu hết các tính năng làm việc mà không có vấn đề gì. Nhưng mỗi khi sử dụng content-assist thì bị treo và sau đó Eclipse tự động tắt. Không chỉ thế khi bạn vào menu Window &gt; Web Browser, thế là boom <img src='http://s0.wp.com/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> .</p>
<p>May mắn là sự cố có thể được khắc phục bằng cách làm theo bên dưới:</p>
<p>1. Trong GNOME 3, tên của webkit library được thay đổi thành <em>libwebkitgtk</em>, bạn cần phải tạo một symbolic link như sau:</p>
<p><code><strong># ln -s /usr/lib/libwebkitgtk-1.0.so.0 /usr/lib/libwebkit-1.0.so.2</strong></code></p>
<p>2. Thêm <code><strong>-Dorg.eclipse.swt.browser.UseWebKitGTK=true</strong></code> vào eclipse.ini</p>
<p>Sau khi thực hiện xong 2 bước trên, content-assist và internal browser sẽ làm việc bình thường.</p>
<p style="text-align:right;">Dịch từ: korri.net</p>
<br />Filed under: <a href='http://lilylnx.wordpress.com/category/bug/'>BUG</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lilylnx.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lilylnx.wordpress.com/648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lilylnx.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lilylnx.wordpress.com/648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lilylnx.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lilylnx.wordpress.com/648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lilylnx.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lilylnx.wordpress.com/648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lilylnx.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lilylnx.wordpress.com/648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lilylnx.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lilylnx.wordpress.com/648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lilylnx.wordpress.com/648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lilylnx.wordpress.com/648/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=648&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lilylnx.wordpress.com/2011/07/08/bug-khac-phuc-su-co-eclipse-helios-tren-fedora-15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>10.794208 106.654518</georss:point>
		<geo:lat>10.794208</geo:lat>
		<geo:long>106.654518</geo:long>
		<media:content url="http://1.gravatar.com/avatar/19f5f46e314898d0a27cb990197197fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lilylnx</media:title>
		</media:content>
	</item>
		<item>
		<title>Fedora 15 chính thức phát hành</title>
		<link>http://lilylnx.wordpress.com/2011/05/25/fedora-15-chinh-thuc-phat-hanh/</link>
		<comments>http://lilylnx.wordpress.com/2011/05/25/fedora-15-chinh-thuc-phat-hanh/#comments</comments>
		<pubDate>Tue, 24 May 2011 20:06:49 +0000</pubDate>
		<dc:creator>Tien Nguyen</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://lilylnx.wordpress.com/?p=633</guid>
		<description><![CDATA[Hôm nay 24/05/2011, Fedora 15 đã chính thức phát hành&#8230; Bên dưới là bài viết của Trương Anh Tuấn thay mặt cho Fedora Project tại Việt Nam. Cuối cùng, sau 6 tháng phát triển, đúng lịch trình, Fedora 15, phiên bản tiếp theo, tên mã Lovelock, đã chính thức phát hành. Fedora 15 đánh dấu [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=633&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hôm nay 24/05/2011, Fedora 15 đã chính thức phát hành&#8230;<br />
Bên dưới là bài viết của Trương Anh Tuấn thay mặt cho Fedora Project tại Việt Nam.</p>
<blockquote><p>Cuối cùng, sau 6 tháng phát triển, đúng lịch trình, Fedora 15, phiên bản tiếp theo, tên mã <strong>Lovelock</strong>, đã chính thức phát hành.</p>
<p>Fedora 15 đánh dấu những nỗ lực không biết mệt mỏi của cộng đồng Fedora. Trong đó, đặc biệt, cộng đồng Fedora tại Việt Nam cũng đã có những đóng góp đầu tiên, dù còn rất khiêm tốn, nhưng rất đáng ghi nhận, hòa chung vào dòng chảy của cộng đồng Fedora nói riêng và cộng đồng phần mềm tự do nguồn mở nói chung trên toàn thế giới.</p>
<p>Để chào mừng sự kiện ra mắt Fedora 15, cộng đồng Fedora, LUGs và phần mềm tự do nguồn mở tại Việt Nam, với sự hỗ trợ của Dự án Fedora, cùng nhau tổ chức loạt sự kiện Fedora 15 Release Party (tạm dịch: tiệc chào mừng Fedora 15 chính thức phát hành) ở cả 3 miền: <a href="https://fedoraproject.org/wiki/Release_Party_F15_Hanoi" target="_blank">Bắc (tại Hà Nội)</a> – <a href="https://fedoraproject.org/wiki/Release_Party_F15_Hue" target="_blank">Trung (tại Huế)</a> – <a href="https://fedoraproject.org/wiki/Release_Party_F15_HCMC" target="_blank">Nam (tại Thành phố Hồ Chí Minh)</a>. Mời bạn hãy đến và tham gia sự kiện chào mừng cùng chúng tôi để cùng bàn luận, trao đổi về Fedora 15, nhận đĩa LiveCD Fedora 15 và những phần quà vui nhộn.</p>
<p>Xem danh sách các sự kiện chào mừng Fedora 15 lớn được tổ chức trên toàn thế giới tại đây:<br />
<a href="https://fedoraproject.org/wiki/F15_release_events" target="_blank">https://fedoraproject.org/wiki/F15_release_events</a></p>
<p>Bạn cũng có thể bắt đầu tìm hiểu nhanh về Fedora 15 (đặc biệt là những tính năng, công nghệ mới) tại:<br />
<a href="http://fedoraproject.org/wiki/Fedora_15_talking_points" target="_blank">http://fedoraproject.org/wiki/Fedora_15_talking_points</a></p>
<p>Xem thông báo phát hành đầy đủ tại:<br />
<a href="http://docs.fedoraproject.org/en-US/Fedora/15/html/Release_Notes/" target="_blank">http://docs.fedoraproject.org/en-US/Fedora/15/html/Release_Notes/</a></p>
<p>Và hãy nhanh tay tải về từ FedoraProject và các mirror trên toàn thế giới:<br />
<a href="https://fedoraproject.org/en/get-fedora" target="_blank">https://fedoraproject.org/en/get-fedora</a></p>
<p style="text-align:right;">Thay mặt Fedora Project<br />
Fedora Ambassador Vietnam<br />
<strong>Trương Anh Tuấn</strong></p>
<p>Thông tin về Fedora: <a href="https://fedoraproject.org/en/about-fedora" target="_blank">https://fedoraproject.org/en/about-fedora</a><br />
Tham gia dự án/cộng đồng Fedora: <a href="https://fedoraproject.org/en/join-fedora" target="_blank">https://fedoraproject.org/en/join-fedora</a>
</p></blockquote>
<p>Liên kết gốc: <a href="http://vn.fedoracommunity.org/2011/05/24/fedora-15-chinh-thuc-phat-hanh/" target="_blank">http://vn.fedoracommunity.org/2011/05/24/fedora-15-chinh-thuc-phat-hanh/</a></p>
<br />Filed under: <a href='http://lilylnx.wordpress.com/category/news/'>News</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lilylnx.wordpress.com/633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lilylnx.wordpress.com/633/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lilylnx.wordpress.com/633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lilylnx.wordpress.com/633/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lilylnx.wordpress.com/633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lilylnx.wordpress.com/633/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lilylnx.wordpress.com/633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lilylnx.wordpress.com/633/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lilylnx.wordpress.com/633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lilylnx.wordpress.com/633/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lilylnx.wordpress.com/633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lilylnx.wordpress.com/633/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lilylnx.wordpress.com/633/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lilylnx.wordpress.com/633/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=633&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lilylnx.wordpress.com/2011/05/25/fedora-15-chinh-thuc-phat-hanh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>10.794208 106.654518</georss:point>
		<geo:lat>10.794208</geo:lat>
		<geo:long>106.654518</geo:long>
		<media:content url="http://1.gravatar.com/avatar/19f5f46e314898d0a27cb990197197fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lilylnx</media:title>
		</media:content>
	</item>
		<item>
		<title>Bash Shell: Chuyển hướng nhập/xuất trong Linux</title>
		<link>http://lilylnx.wordpress.com/2011/03/11/bash-shell-chuyen-huong-nhap-xuat-trong-linux/</link>
		<comments>http://lilylnx.wordpress.com/2011/03/11/bash-shell-chuyen-huong-nhap-xuat-trong-linux/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 07:37:11 +0000</pubDate>
		<dc:creator>Tien Nguyen</dc:creator>
				<category><![CDATA[Bash Shell]]></category>

		<guid isPermaLink="false">http://lilylnx.wordpress.com/?p=582</guid>
		<description><![CDATA[Bài viết đăng tại Diễn đàn Fotech của thành viên Nguyễn Việt Cường (OSG ColTech). Hôm nay nhân chuyện có người hỏi về làm thế nào để chạy một lệnh một cách &#8220;âm thầm&#8221; tức là không in cái gì ra màn hình cả, mình viết một cái tut nhỏ về chuyện này. Ví dụ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=582&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:right;"><em>Bài viết <a href="//www.fotech.org/forum/index.php?showtopic=15541”" target="“_blank”">đăng tại Diễn đàn Fotech</a> của thành viên Nguyễn Việt Cường (OSG ColTech).</em></p>
<p>Hôm nay nhân chuyện có người hỏi về làm thế nào để chạy một lệnh một cách &#8220;âm thầm&#8221; tức là không in cái gì ra màn hình cả, mình viết một cái tut nhỏ về chuyện này. Ví dụ đưa ra ở đây là lệnh <strong>curl</strong>, chi tiết về cú pháp lệnh thì sử dụng &#8220;<code><strong>man curl</strong></code>&#8221; trên Linux hoặc trên Google.</p>
<p>Trước hết, ta sẽ đi thẳng vào vấn đề rồi sau đó mới giải thích. Để một lệnh chạy trong chế độ &#8220;âm thầm&#8221; như vậy thì ta thêm đoạn sau vào đuôi lệnh:</p>
<pre><code>    &gt; /dev/null 2&gt;&amp;1</code></pre>
</p>
<p>Mà cụ thể nếu ta muốn làm công việc đó với lệnh curl thì như sau:</p>
<pre><code>    $ curl http://osg.vnu.edu.vn/ &gt; /dev/null 2&gt;&amp;1</code></pre>
</p>
<p>Vì sao lại làm thế? Dấu &#8220;&gt;&#8221; có ý nghĩa gì? &#8220;<code><strong>/dev/null</strong></code>&#8221; là cái gì mà ghê gớm thế? &#8220;<code><strong>2&gt;&amp;1</strong></code>&#8221; là cái gì mà trông kì lạ thế? Đó cũng là những thắc mắc của mình khi bước vào thế giới Unix/Linux.<br />
<span id="more-582"></span></p>
<h3>1. Giới thiệu</h3>
<p>Trên hầu hết các hệ điều hành nói chung và Unix/Linux nói riêng thì có 3 dòng nhập/xuất chuẩn (I/O) là <strong>STDIN</strong>, <strong>STDOUT</strong> và <strong>STDERR</strong> mà chức năng tương ứng là dòng nhập chuẩn, dòng xuất chuẩn và dòng xuất lỗi chuẩn. Chúng được gọi là các <em>open file</em> và hệ thống gán cho mỗi file này một con số gọi là <em>file descriptor</em>. Ba con số tương ứng với 3 dòng xuất nhập chuẩn ở trên là 0, 1 và 2. Cụ thể:</p>
<blockquote><p>standard input &#8211;&gt; stdin &#8211;&gt; 0&lt;<br />
standard output &#8211;&gt; stdout &#8211;&gt; 1&gt;<br />
standard error &#8211;&gt; stderr &#8211;&gt; 2&gt;</p></blockquote>
<p>Trong C++ thì 3 dòng xuất nhập chuẩn này tương ứng với 3 đối tượng <em>cin</em>, <em>cout</em> và <em>cerr</em>.</p>
<p><em>Chú ý: Trong bài tut này thì mình sử dụng <strong>Bourne Shell</strong> trong đó dấu $ thể hiện user bình thường và # thể hiện user root. Tuy nhiên hầu hết nội dung trong bài này có thể áp dụng với một số loại shell khác như sh, csh, tcsh&#8230; Với C chell (csh, tcsh) thì không sử dụng được các con số (file descriptor).</em></p>
<h3>2. Nhập/Xuất</h3>
<p>Trong chế độ command line của hầu hết các hệ điều hành thì &#8220;&lt;&#8221; dùng cho chuyển hướng nhập và &#8220;&gt;&#8221; dùng cho chuyển hướng xuất. Vì sao phải chuyển hướng? Vì có nhiều lúc ta muốn kết quả xuất ra màn hình được lưu lại vào một file và dữ liệu nhập vào thay vì từ bàn phím thì lại từ một file.</p>
<p><strong>*** STDIN</strong></p>
<p>STDIN chỉ các dòng nhập chuẩn nói chung và nó thường là từ bàn phím. Khi chúng ta gõ bàn phím tức là chúng ta đang nhập vào STDIN. Để dữ liệu đầu vào là một file thì ta dùng dấu &#8220;&lt;&#8221;. Ví dụ, nếu ta dùng lệnh cat mà không có tham số thì khi ta gõ gì nó sẽ hiển thị ra cái đó, hay nói đúng hơn sẽ hiển thị lại những gì ta nhập vào từ input chuẩn. Vậy thì giả dụ ta cần hiển thị file /etc/passwd thì ngoài cách truyền thống là:</p>
<pre><code>    $ cat /etc/passwd</code></pre>
</p>
<p>thì ta có thể sử dụng:</p>
<pre><code>    $ cat &lt; /etc/passwd</code></pre>
</p>
<p>hoặc:</p>
<pre><code>    $ cat 0&lt; /etc/passwd</code></pre>
</p>
<p>Tại sao lại có thể bỏ số 0 mà chức năng vẫn tương tự? Đó là vì mỗi khi khởi tạo một process thì hệ thống đã gắn một dòng nhập chuẩn cho process đó mà ở đây là STDIN hay 0.</p>
<p><strong>*** STDOUT</strong></p>
<p>STDOUT là các dòng xuất chuẩn nói chung và nó thường là xuất ra màn hình, ra cửa sổ console hoặc terminal. Để dữ liệu đầu ra được ghi vào một file thì ta sử dụng dấu &#8220;&gt;&#8221;. Ví dụ ta muốn danh sách các file trong một thư mục được ghi vào file <em>dir.txt</em> thì ta sử dụng lệnh sau:</p>
<pre><code>    $ ls -al &gt; dir.txt</code></pre>
</p>
<p>hoặc:</p>
<pre><code>    $ ls -al 1&gt; dir.txt</code></pre>
</p>
<p>Lí do vì sao có thể bỏ số 1 đi tương tự như với STDIN, tức là khi khởi tạo một process thì hệ thống đã gắn một dòng xuất chuẩn cho process đó mà ở đây là STDOUT hay 1.</p>
<p>Đến đây ta có thể kết hợp sử dụng song song STDIN và STDOUT để làm thao tác copy file. Ví dụ ta muốn backup file /etc/passwd thì ta có thể làm như sau:</p>
<pre><code>    $ cat &lt; /etc/passwd &gt; ~/passwd.bak</code></pre>
</p>
<p>Lệnh này tương đương với lệnh:</p>
<pre><code>    $ cp /etc/passwd ~/passwd.bak</code></pre>
</p>
<p>Có một ứng dụng cực kì có ích của việc kết hợp này là chuyển đổi file text giữa Windows và Unix. Như các bạn đều biết thì trong file text của Windows, việc xuống dòng được thể hiện bằng cặp kí tự \r\n còn trong Unix/Linux thì chỉ là \n. Ai phải code trên cả hai môi trường đều thấy sự bất tiện của việc chuyển đổi đó. Giải pháp đưa ra ở đây là sử dụng lệnh <strong>tr</strong>, cụ thể như sau:</p>
<pre><code>    $ tr -d '\r' unix.cpp</code></pre>
</p>
<p>Lệnh này sẽ nhận dòng nhập chuẩn sau đó xoá các kí tự \r rồi ghi ra dòng xuất chuẩn. Dòng nhập và dòng xuất ở đây được định hướng lại để đến từ một file và ghi ra một file.</p>
<p>Tuy nhiên nếu dùng &#8220;&gt;&#8221; thì nội dung của file sẽ bị xoá trước khi ghi nội dung mới. Nếu ta muốn nội dung mới sẽ được ghi nối tiếp vào file thì ta sử dụng 2 dấu lớn hơn, tức là &#8220;&gt;&gt;&#8221;. Ví dụ nếu bạn muốn nối nội dung của thư mục /home vào cuối file passwd.bak ở trên thì bạn làm như sau:</p>
<pre><code>    $ ls /home &gt;&gt; ~/passwd.bak</code></pre>
</p>
<pre><code>    $ curl http://osg.vnu.edu.vn/ &gt; osg.html</code></pre>
</p>
<p>Thực hiện lệnh trên các bạn có thấy gì lạ không? Mặc dù mã HTML thay vì xuất ra màn hình mà được đưa vào file osg.html nhưng vẫn có các thông tin thể hiện trạng thái download hiển thị trên màn hình. Làm thế nào mà lại được như thế? Làm thế nào để lệnh curl câm lặng hoàn toàn? Hồi sau sẽ rõ <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p><strong>*** STDERR</strong></p>
<p>STDERR là dòng xuất lỗi chuẩn nói chung và nó cũng thường xuất trực tiếp ra màn hình, console hay terminal. Cú pháp tương tự như STDOUT, tức là sử dụng &#8220;&gt;&#8221; để xuất ra file và &#8220;&gt;&gt;&#8221; để nối vào một file đã có (chưa có thì hệ thống sẽ tự tạo ra). Tuy nhiên điểm khác biệt là bạn phải chỉ rõ số 2, tức là &#8220;<strong>2&gt;</strong>&#8221; hoặc &#8220;<strong>2&gt;&gt;</strong>&#8220;. Lí do là vì chỉ có 1 dòng xuất chuẩn và 1 dòng nhập chuẩn cho mỗi process mà thông thường hệ thống chỉ định là STDOUT và STDIN.</p>
<p>Vậy trong trường hợp của lệnh curl ở trên, nếu ta muốn ghi cả 2 loại output đó ra file thì ta làm như sau:</p>
<pre><code>    $ curl http://osg.vnu.edu.vn/ &gt; osg.html 2&gt; osg.log</code></pre>
</p>
<p>Không có cái gì xuất ra màn hình hết đúng không? Vì nội dung trang web đã được lưu vào file <em>osg.html</em> còn các dòng lưu trạng thái download đã được ghi vào file <em>osg.log</em>.</p>
<p>Nhưng thế thì tốn dung lượng đĩa và có nguy cơ gây hỏng đĩa vì phải ghi file mà. Con người quả thật quá tham lam <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Vậy thì phải sáng tạo ra cái gì đó như kiểu cái thùng không đáy hay gọi mĩ miều hơn thì nó là &#8220;lỗ đen&#8221; hay &#8220;black hole&#8221;, tức là một nơi mà cho cái gì vào cũng mất hút luôn. Unix/Linux có cái đó cho bạn, đó là <strong>/dev/null</strong>.</p>
<p><strong>*** /dev/null</strong></p>
<p>Theo <a href="//en.wikipedia.org/wiki//dev/null”" target="“_blank”">định nghĩa trên Wikipedia</a> của /dev/null:</p>
<blockquote><p>In Unix-like operating systems, /dev/null or the null device is a special file that discards all data written to it (but reports that the write operation succeeded), and provides no data to any process that reads from it (it returns EOF). In Unix programmer jargon, it may also be called the bit bucket or black hole.</p></blockquote>
<p>Tạm dịch là:</p>
<blockquote><p>Trong các hệ điều hành kiểu Unix, /dev/null hay thiết bị null là một tệp tin đặc biệt, nó bỏ qua mọi dữ liệu ghi lên nó (nhưng có báo cáo về việc ghi dữ liệu thành công) và không cung cấp bất kì dữ liệu gì khi đọc từ nó (trả về EOF). Trong biệt ngữ của các lập trình viên Unix, nó đuợc gọi là &#8220;bit bucket&#8221; hoặc &#8220;black hole&#8221;.</p></blockquote>
<p>Vậy thì đó chính là cái ta cần rồi. Như vậy câu lệnh curl ở trên có thể cho nó thực hiện câm lặng bằng cách:</p>
<pre><code>    $ curl http://osg.vnu.edu.vn/ &gt; /dev/null 2&gt; /dev/null</code></pre>
</p>
<p>Không có cái gì xuất ra màn hình cả, cũng không có cái gì được ghi lại cả. Nhưng&#8230; làm thế nào để cái lệnh trên ngắn gọn hơn, trông technical hơn, nói chung là để ai không biết thì sẽ không hiểu gì (đôi khi đó là cái thú của dân kĩ thuật). Ta sẽ dùng &#8220;<strong>2&gt;&amp;1</strong>&#8221; ở đây, tức là:</p>
<pre><code>    $ curl http://osg.vnu.edu.vn/ &gt; /dev/null 2&gt;&amp;1</code></pre>
</p>
<p>Câu lệnh trên tức là dòng xuất chuẩn sẽ bị đưa vào /dev/null và dòng lỗi chuẩn sẽ được đưa vào dòng xuất chuẩn mà ở đây là /dev/null.</p>
<p>Đặc biệt lưu ý là với cú pháp trên thì dấu &#8220;&amp;&#8221; và dấu &#8220;&gt;&#8221; phải đi liền nhau, không có khoảng cách.</p>
<p>Ngoài các file descriptor 0, 1, 2 ở trên thì còn có từ 3 đến 9 nữa. Tuy nhiên bài viết này chỉ dành cho mức độ newbie nên không để cập sâu, chi tiết các bạn có thể tự tìm hiểu thêm trên Internet hoặc trong các sách về lập trình shell.</p>
<h3>3. Pipe</h3>
<p>Như vậy chúng ta đã biết cách để chuyển hướng dòng nhập/xuất của một lệnh hay một process.</p>
<p>Bằng cách này ta có thể chuyển dữ liệu xuất của một lệnh thành dữ liệu nhập của một lệnh khác thông qua một file trung gian. Tuy nhiên ta không muốn ghi ra file trung gian đó, một phần vì việc ghi lên đĩa cứng, phần khác là do&#8230; tham.</p>
<p>Đó chính là vấn đề mà pipe giải quyết. Trong Linux, ta sử dụng dấu &#8220;|&#8221; để làm việc này.</p>
<p>Ví dụ khi ta muốn xem lại nội dung thư mục /etc nhưng kết quả của nó lại dài quá mà ta muốn xem lại thì ta làm như sau:</p>
<pre><code>    $ ls -al /etc | more</code></pre>
</p>
<p>hoặc:</p>
<pre><code>    $ ls -al /etc | less</code></pre>
</p>
<p>(thoát bằng phím q).</p>
<p>Hoặc ta muốn <em>đếm số user trong hệ thống</em> có sử dụng mặc định bash shell thì ta làm như sau:</p>
<pre><code>    $ cat /etc/passwd | grep "/bin/bash" | wc -l</code></pre>
</p>
<p>Lệnh này có nghĩa là đưa nội dung file /etc/passwd ra dòng xuất chuẩn; dòng xuất chuẩn này thành dòng nhập chuẩn của lệnh grep và lệnh này chỉ lọc ra các dòng có chưa xâu &#8220;/bin/bash&#8221; để đưa ra dòng xuất chuẩn; dòng xuất chuẩn này lại thành dòng nhập chuẩn của lệnh <code>wc -l</code> là lệnh đếm số dòng của dòng nhập chuẩn và đưa ra số dòng ra dòng xuất chuẩn; cuối cùng dòng xuất chuẩn này sẽ được đưa ra trực tiếp màn hình vì nó không thành dòng nhập chuẩn của lệnh nào nữa.</p>
<h3>Tham khảo thêm trên Internet “nhé” <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </h3>
<br />Filed under: <a href='http://lilylnx.wordpress.com/category/bash-shell/'>Bash Shell</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lilylnx.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lilylnx.wordpress.com/582/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lilylnx.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lilylnx.wordpress.com/582/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lilylnx.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lilylnx.wordpress.com/582/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lilylnx.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lilylnx.wordpress.com/582/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lilylnx.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lilylnx.wordpress.com/582/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lilylnx.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lilylnx.wordpress.com/582/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lilylnx.wordpress.com/582/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lilylnx.wordpress.com/582/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=582&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lilylnx.wordpress.com/2011/03/11/bash-shell-chuyen-huong-nhap-xuat-trong-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<georss:point>10.794208 106.654518</georss:point>
		<geo:lat>10.794208</geo:lat>
		<geo:long>106.654518</geo:long>
		<media:content url="http://1.gravatar.com/avatar/19f5f46e314898d0a27cb990197197fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lilylnx</media:title>
		</media:content>
	</item>
		<item>
		<title>Khái niệm về phân vùng đĩa cứng trong Linux</title>
		<link>http://lilylnx.wordpress.com/2011/02/23/khai-niem-phan-vung-dia-cung-trong-linux/</link>
		<comments>http://lilylnx.wordpress.com/2011/02/23/khai-niem-phan-vung-dia-cung-trong-linux/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 19:44:23 +0000</pubDate>
		<dc:creator>Tien Nguyen</dc:creator>
				<category><![CDATA[Concepts]]></category>

		<guid isPermaLink="false">http://lilylnx.wordpress.com/?p=565</guid>
		<description><![CDATA[1. Lý thuyết tổng quát - Quá trình khởi động: khi bật công tắc (Power), BIOS sẽ làm công việc đầu tiên là “chạy đôn chạy đáo” kiểm tra những phần cứng cơ bản (gồm ổ đĩa cứng, ổ đĩa mềm, bàn phím&#8230;) đã được nối vào máy tính. Những phần cứng này sẽ lần [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=565&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3><strong>1. Lý thuyết tổng quát</strong></h3>
<p><strong>- Quá trình khởi động:</strong> khi bật công tắc (Power), <span style="color:#0064c8;">BIOS</span> sẽ làm công việc đầu tiên là “chạy đôn chạy đáo” kiểm tra những <em>phần cứng cơ bản</em> (gồm ổ đĩa cứng, ổ đĩa mềm, bàn phím&#8230;) đã được nối vào máy tính. Những phần cứng này sẽ lần lượt được nạp driver (trình điều khiển – BIOS đã có sẵn driver rồi) để có thể sử dụng được ngay khi khởi động xong, đồng thời BIOS cũng đi tìm một đoạn chương trình bé xíu được đặt tại phần đầu của đĩa mềm (<span style="color:#0064c8;">Boot sector</span>), đĩa cứng (<span style="color:#0064c8;">MBR – Master Boot Record</span>) để “đùn đẩy trách nhiệm” khởi động tiếp.</p>
<p><img style="display:inline;margin-left:0;margin-right:0;" align="right" src="http://farm6.static.flickr.com/5180/5468434435_b24bd242bc.jpg" /> Riêng đối với đĩa cứng, ngoài MBR còn có thêm Boot sector nữa, Boot Sector này “tạm trú” ngay đầu của mỗi phân vùng <span style="color:#0064c8;">Primary</span> (sẽ nói sau) và Boot Sector của Primary đầu tiên sẽ nằm sau MBR. Tại đây, ta không nói đến đĩa mềm vì quá đơn giản, chỉ cần nạp xong Boot Sector là OK. Đĩa cứng thì phức tạp hơn, <span style="color:#0064c8;">MBR</span> không nạp ngay hệ điều hành mà còn “bận” phải xác định xem trong đĩa cứng hiện có bao nhiêu phân vùng và phân vùng nào sẽ được ưu tiên khởi động. Mỗi phân vùng Primary sẽ “cầm” một cái cờ tên là <span style="color:#0064c8;">Active</span>, trong một thời điểm khởi động chỉ có một Primary được phất cờ thôi, và khi MBR nhận ra được “em” nào phất thì tức khắc “tống” ngay tiến trình khởi động sang cho Boot Sector của Primary đó làm tiếp. Lúc này, Boot Sector mới tìm những tập tin khởi động của hệ điều hành (nếu có) để “chuyển giao công đoạn” và chấm dứt khởi động, phận ai người nấy lo mà.</p>
<p><span id="more-565"></span></p>
<p><img style="display:inline;margin-left:0;margin-right:0;" align="right" src="http://farm6.static.flickr.com/5093/5469028742_b4787e8ba3_m.jpg" /> <strong>- Số lượng phân vùng:</strong> đối với mỗi ổ đĩa cứng, có hai loại phân vùng là: Primary (phân vùng chính) và Extended (phân vùng mở rộng). Primary là phân vùng có khả năng khởi động (đã nói ở trên đó). Về mặt vật lý, ổ đĩa cứng chỉ có thể chia làm bốn phân vùng, tức là chỉ cài được tối đa bốn hệ điều hành trên một đĩa cứng mà thôi. Tuy nhiên, nếu không có “ham muốn” dùng nhiều hệ điều hành mà chỉ có “ý định” chia nhiều ổ đĩa thì có thể dùng phân vùng <span style="color:#0064c8;">Extended</span>, phân vùng này cho phép chia bên trong nó nhiều phân vùng con gọi là <span style="color:#0064c8;">Logical</span>.</p>
<h3><strong>2. Lý thuyết của DOS/Windows</strong></h3>
<p>Những đề cập bên dưới chỉ tập trung vào cấu trúc <span style="color:#0064c8;">Basic Disk</span> (tức là những gì ta thấy, hiểu và cảm nhận từ trước đến giờ trên nền DOS/Windows), còn <span style="color:#0064c8;">Dynamic Disk</span> của cơ chế RAID thì&#8230; miễn bàn.</p>
<p><img style="display:inline;margin-left:0;margin-right:0;" align="right" src="http://farm6.static.flickr.com/5215/5469028822_11dc173164_m.jpg" /> <strong>- Tên phân vùng:</strong> Hệ điều hành DOS/ Windows gọi phân vùng “phất” cờ Active là <span style="color:#0064c8;">C:</span>, các ký tự tiếp theo (D:, E:, F:&#8230;) lần lượt được gán cho các phân vùng Logical của phân vùng Extended đầu tiên, khi hết Extended đầu tiên sẽ chuyển qua Extended thứ hai (nếu có), và khi hết Extended mới “ân huệ” cho các phân vùng Primary tiếp theo, dù vị trí có nằm trước Extended đi chăng nữa.</p>
<p><strong>- Ẩn phân vùng Primary:</strong> DOS và Windows 9x không cho phép hai phân vùng Primary “chường mặt” ra đồng thời, tuy nhiên nếu cố “ép” thì vẫn được. Vì thế, nếu đã đặt Active cho một Primary thì các Primary khác sẽ tự động&#8230; “mất tích”.</p>
<h3><strong>3. Lý thuyết của Linux</strong></h3>
<p><img style="display:inline;margin-left:0;margin-right:0;" align="right" src="http://farm6.static.flickr.com/5140/5468434495_f1892d2297_m.jpg" /> <strong>- Tên phân vùng:</strong> Hạt nhân Linux/ Unix xây dựng cơ chế truy xuất tất cả các loại đĩa và thiết bị đều ở dạng tập tin. “Chú chim cánh cụt” đặt tên cho bé ổ đĩa mềm là <span style="color:#0064c8;">fd</span> (floppy disk), ổ đĩa mềm thứ nhất là <span style="color:#0064c8;">fd0</span>, ổ đĩa mềm thứ hai là <span style="color:#0064c8;">fd1</span> (hết rồi, chỉ có tối đa hai ổ đĩa mềm thôi). Tiếp đến là ổ đĩa cứng, nếu là ổ đĩa IDE thì có tên <span style="color:#0064c8;">hd</span> (hard disk), còn nếu là ổ đĩa SCSI thì có tên là <span style="color:#0064c8;">sd</span> (SCSI disk). Bây giờ bàn về ổ đĩa cứng IDE thôi nhé (ổ SCSI cũng tương tự). Ổ đĩa cứng vật lý thứ nhất “làm khai sinh” với tên <span style="color:#0064c8;">hda</span>, thứ hai là <span style="color:#0064c8;">hdb</span>, thứ ba là <span style="color:#0064c8;">hdc</span>, nếu còn nữa thì tiếp tục. Trên từng ổ đĩa cứng, mỗi phân vùng cũng có tên riêng, điển hình là bốn phân vùng “sếp” (Primary và Extended) chiếm lấy các tên từ <span style="color:#0064c8;">hda1</span> đến <span style="color:#0064c8;">hda4</span> (<span style="color:#0064c8;">hdgìgì</span> không nhất thiết chỉ có <span style="color:#0064c8;">a</span> đâu nhé, phải linh hoạt chứ, chỉ là ví dụ thôi). Các số từ 5 trở lên (như <span style="color:#0064c8;">hda5</span>, <span style="color:#0064c8;">hda6</span>&#8230;) được đặt cho các phân vùng Logical bên trong phân vùng Extended. Điều này khác với DOS/ Windows, vì trên DOS/Windows thì Extended không có tên, nhưng trên Linux thì Extended có tên hẳn hoi. Dù bạn không chia đủ 4 phân vùng “sếp” thì các “bé” Logical cũng vẫn đi từ 5 trở lên, không “bàn cãi trả giá” gì hết.</p>
<p><strong>- Phân vùng tráo đổi SWAP:</strong> Nếu Windows sử dụng tập tin tráo đổi <span style="color:#0064c8;">SWAP</span> để lưu tạm bộ nhớ thì Linux dùng ngay cả một phân vùng SWAP hẳn hoi để làm việc này (quá sang!), phân vùng SWAP phải nằm trên Extended tức là Logical í, và phải có kích thước gấp hai lần kích thước bộ nhớ RAM hiện có trên máy. Tuy vậy, đối với những máy có dung lượng bộ nhớ RAM từ 32MB trở lên thì Linux khuyến khích đặt kích thước phân vùng SWAP bằng với dung lượng RAM. Dù thế, bạn vẫn được toàn quyền đặt kích thước phân vùng SWAP mà.</p>
<p><strong>- Giải phân mảnh (Defragment):</strong> Khi dùng Windows, bạn phải thường xuyên làm công việc “dồn đĩa” giải phân mảnh để tăng tốc hệ thống. Thế nhưng ở Linux, ta không cần vì kiểu phân vùng <span style="color:#0064c8;">EXT2</span> (hoặc <span style="color:#0064c8;">EXT3</span>) đã có đoạn chương trình tự động chống phân mảnh trong khi làm việc. Đây là một đặc tính rất hay của Linux, nhưng bạn phải trả cho Linux với giá <span style="color:#0064c8;">10%</span> dung lượng phân vùng. Thật ra, đây là cái giá không cao, và bạn hưởng được tính ổn định và hiệu năng tối ưu.</p>
<p style="text-align:right;">Trần Anh Vũ (Báo e-CHÍP số 45, 18/11/2003)</p>
<br />Filed under: <a href='http://lilylnx.wordpress.com/category/concepts/'>Concepts</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lilylnx.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lilylnx.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lilylnx.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lilylnx.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lilylnx.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lilylnx.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lilylnx.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lilylnx.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lilylnx.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lilylnx.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lilylnx.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lilylnx.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lilylnx.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lilylnx.wordpress.com/565/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lilylnx.wordpress.com&amp;blog=12092869&amp;post=565&amp;subd=lilylnx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lilylnx.wordpress.com/2011/02/23/khai-niem-phan-vung-dia-cung-trong-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<georss:point>10.794208 106.654518</georss:point>
		<geo:lat>10.794208</geo:lat>
		<geo:long>106.654518</geo:long>
		<media:content url="http://1.gravatar.com/avatar/19f5f46e314898d0a27cb990197197fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lilylnx</media:title>
		</media:content>

		<media:content url="http://farm6.static.flickr.com/5180/5468434435_b24bd242bc.jpg" medium="image" />

		<media:content url="http://farm6.static.flickr.com/5093/5469028742_b4787e8ba3_m.jpg" medium="image" />

		<media:content url="http://farm6.static.flickr.com/5215/5469028822_11dc173164_m.jpg" medium="image" />

		<media:content url="http://farm6.static.flickr.com/5140/5468434495_f1892d2297_m.jpg" medium="image" />
	</item>
	</channel>
</rss>
