<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4671653795147985053</atom:id><lastBuildDate>Sun, 04 Dec 2011 20:10:42 +0000</lastBuildDate><category>Wireless</category><category>Printing</category><category>Sport</category><category>Scanning</category><category>SANE</category><category>My Vietnam</category><category>HP 2133</category><category>Debian</category><category>LaserJet 1018</category><category>VirtualBox</category><category>Photos</category><category>Chromatography</category><category>GRUB2</category><category>Russian</category><category>Idiom</category><category>SweetFamily</category><category>Movie</category><category>Google</category><category>FreeNAS</category><category>USB</category><category>OSS</category><category>BitTorrent</category><category>Vim</category><category>Games</category><category>CUPS</category><category>Linux</category><category>Sound</category><category>Conference</category><category>Draw</category><category>Certificate</category><category>Oscar</category><category>TV interview</category><category>Netbook</category><category>Hardware</category><category>Chemistry</category><category>2-Cent Tips</category><category>Video Editing</category><category>Publications</category><category>Ubuntu</category><category>OCR</category><category>Hotplug</category><title>Phan's blog</title><description>Don't Worry, Be Happy.
               -- Meher Baba</description><link>http://phanvinhthinh.blogspot.com/</link><managingEditor>noreply@blogger.com (Phan Vinh Thinh)</managingEditor><generator>Blogger</generator><openSearch:totalResults>59</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/blogspot/phanvinhthinh" /><feedburner:info uri="blogspot/phanvinhthinh" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-7428217082681882480</guid><pubDate>Fri, 29 Apr 2011 06:49:00 +0000</pubDate><atom:updated>2011-04-29T10:49:01.369+04:00</atom:updated><title>My article about FreeNAS is now online</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The article is avaiable at PCWorld Vietnam's website [1] since May 2010 and has been voted as almost 10/10. Thank you all readers.&lt;br /&gt;
&lt;br /&gt;
[1]&amp;nbsp;&lt;a href="http://www.pcworld.com.vn/articles/cong-nghe/ung-dung/2010/05/1219106/tu-tao-nas-tu-may-tinh-cu/"&gt;http://www.pcworld.com.vn/articles/cong-nghe/ung-dung/2010/05/1219106/tu-tao-nas-tu-may-tinh-cu/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-7428217082681882480?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2011/04/my-article-about-freenas-is-now-online.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-8342649721957438088</guid><pubDate>Fri, 17 Sep 2010 20:21:00 +0000</pubDate><atom:updated>2010-09-18T00:21:37.833+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">2-Cent Tips</category><category domain="http://www.blogger.com/atom/ns#">OSS</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Some crontab usages</title><description>&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;1. Run a command at boot time&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
In &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/etc/crontab&lt;/span&gt; add:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;@reboot&lt;/span&gt; &lt;span class="Apple-style-span" style="color: #bf9000;"&gt;root command&lt;/span&gt;&lt;command&gt;&lt;/command&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Replace &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;root&lt;/span&gt;&lt;/span&gt; with username to run as regular user:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: magenta;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;@reboot&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #bf9000;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;phan vnc4server :1 -geometry 1200x800 &amp;amp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;2. Run GUI programs&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
To run a GUI program by &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cron&lt;/span&gt;, we have to tell what display should be used by:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: #bf9000;"&gt;DISPLAY=:0&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;or&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt; &lt;span class="Apple-style-span" style="color: #bf9000;"&gt;export DISPLAY=:0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
For example, to change fluxbox background automatically twice per hour, at 0 and 30 minute, run &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;crontab -e&lt;/span&gt;, then add the following line:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;0,30&lt;/span&gt; &lt;span class="Apple-style-span" style="color: blue;"&gt;*&lt;/span&gt; &lt;span class="Apple-style-span" style="color: lime;"&gt;*&lt;/span&gt; &lt;span class="Apple-style-span" style="color: magenta;"&gt;*&lt;/span&gt; &lt;span class="Apple-style-span" style="color: blue;"&gt;*&lt;/span&gt; &lt;span class="Apple-style-span" style="color: #bf9000;"&gt;DISPLAY=:0 fbsetbg -f -r $HOME/.fluxbox/backgrounds/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;Change display number if needed, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;:0&lt;/span&gt; will be right for most cases.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;3. Daily backup to Dropbox at midnight&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
Run &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;crontab -e&lt;/span&gt;, then add:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: #3d85c6;"&gt;# run five minutes before midnight, every day&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: magenta;"&gt;55&lt;/span&gt; &lt;span class="Apple-style-span" style="color: blue;"&gt;23&lt;/span&gt; &lt;span class="Apple-style-span" style="color: lime;"&gt;*&lt;/span&gt; &lt;span class="Apple-style-span" style="color: magenta;"&gt;*&lt;/span&gt; &lt;span class="Apple-style-span" style="color: blue;"&gt;*&lt;/span&gt; &lt;span class="Apple-style-span" style="color: #bf9000;"&gt;$HOME/Dropbox/bin/b2d.daily &amp;amp;&amp;amp; $HOME/out 2&amp;amp;&amp;gt;1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
b2d.daily is a shell script:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ cat $HOME/Dropbox/bin/b2d.daily&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;tar czvf $HOME/Dropbox/My-Dir-`date +%F`.tar.gz \&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$HOME/My-Dir &amp;amp;&amp;amp; DISPLAY=:0 dropbox start&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Here we see another way to run GUI programs by cron. Of course, you can use 2 continuous cron&amp;nbsp;jobs, first — run &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;tar&lt;/span&gt;, second — &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;dropbox&lt;/span&gt;, instead of using&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;b2d.daily&lt;/span&gt; script.&lt;br /&gt;
&lt;br /&gt;
P.S. share your cron usages, if there're no top secrets.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-8342649721957438088?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/09/some-crontab-usages.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-3101647109849944129</guid><pubDate>Sun, 12 Sep 2010 15:50:00 +0000</pubDate><atom:updated>2010-09-12T19:51:27.748+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Russian</category><category domain="http://www.blogger.com/atom/ns#">2-Cent Tips</category><category domain="http://www.blogger.com/atom/ns#">OSS</category><title>2-Cent Tip: Russian Keyboard Layout in Fluxbox</title><description>Russian Keyboard Layout in Fluxbox:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ cat $HOME/.fluxbox/startup | grep kb&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;fbxkb &amp;amp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;setxkbmap -layout "us,ru(winkeys)" -option "grp:caps_toggle" -option "grp_led:scroll"&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
By using &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;winkeys&lt;/span&gt; variant we have all keyboard shorcuts (Ctrl+C, Ctrl+V, etc) work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-3101647109849944129?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/09/2-cent-tip-russian-keyboard-layout-in.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-3445779986555660967</guid><pubDate>Sat, 11 Sep 2010 18:48:00 +0000</pubDate><atom:updated>2010-09-11T22:50:00.783+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Chemistry</category><category domain="http://www.blogger.com/atom/ns#">OSS</category><category domain="http://www.blogger.com/atom/ns#">Draw</category><title>Combination of XDrawChem and Inkscape as an open-source molecular editor</title><description>&lt;div style="text-align: justify;"&gt;There are dozen molecular editor for chemistry and biology [1], but very few of them are open source (or even free for education), and the lasts are feature-limited. Thus, XDrawChem [2] can draw quiet complicated molecules, but draws them not very beautifully. In the other side, this open source program can export images in SVG format, used as default in Inkscape [3], a famous vector editor, which is used to produce very beautiful drawings.&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Our action is:&lt;/b&gt;&lt;br /&gt;
First, draw the molecule (or parts of it) in XDrawChem, then export the image in SVG format:&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_HXuKv2YS8fM/TIvMulmqPGI/AAAAAAAAATE/8MszF6qvTZg/s1600/xdrawchem.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_HXuKv2YS8fM/TIvMulmqPGI/AAAAAAAAATE/8MszF6qvTZg/s320/xdrawchem.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Draw part of the future molecule (Tinuvin 320) in XDrawChem&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Open and edit the SVG file in Inkscape, and don't forget to convert text to path, if you want to edit the file in other system:&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HXuKv2YS8fM/TIvMzFPjRsI/AAAAAAAAATM/FZHNLZgaD-k/s1600/inkscape.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_HXuKv2YS8fM/TIvMzFPjRsI/AAAAAAAAATM/FZHNLZgaD-k/s320/inkscape.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Tinuvin 320 (antioxidant)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Finally, save as pdf to use in a LaTeX document, or export to PNG to use in OpenOffice.org.&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style_(chemistry)/Structure_drawing"&gt;http://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style_(chemistry)/Structure_drawing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://xdrawchem.sourceforge.net/"&gt;http://xdrawchem.sourceforge.net/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.inkscape.org/"&gt;http://www.inkscape.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-3445779986555660967?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/09/combination-of-xdrawchem-and-inkscape.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_HXuKv2YS8fM/TIvMulmqPGI/AAAAAAAAATE/8MszF6qvTZg/s72-c/xdrawchem.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-6320197967966002720</guid><pubDate>Fri, 10 Sep 2010 18:40:00 +0000</pubDate><atom:updated>2010-09-11T22:50:00.786+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">OSS</category><category domain="http://www.blogger.com/atom/ns#">Draw</category><title>A workaround for OpenOffice.org Draw selection export to PDF</title><description>&lt;div style="text-align: justify;"&gt;In the current version of OpenOffice.org 3.2, there is still a problem with selection export to PDF in Draw program — the result pdfs always have page dimension of the drawing (A4 or letter) as its paper size (fig. 1). For printing, this is fine, but annoying if you want, for example, include the graphic in a LaTeX document.&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HXuKv2YS8fM/TIp5sLykqOI/AAAAAAAAASo/EZDk18t3RuI/s1600/selection-fail.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_HXuKv2YS8fM/TIp5sLykqOI/AAAAAAAAASo/EZDk18t3RuI/s320/selection-fail.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;Fig. 1.&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Selection export to PDF bug.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;To workaround this problem, change the drawing's page paper to the selection's size in menu &lt;b&gt;Format&lt;/b&gt; / &lt;b&gt;Page...&lt;/b&gt;&amp;nbsp;then export. The selection's size can be found in the status bar (fig. 2).&lt;/div&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HXuKv2YS8fM/TIp5_x9Zp0I/AAAAAAAAASw/Qq_mytPDmsk/s1600/selection-size.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_HXuKv2YS8fM/TIp5_x9Zp0I/AAAAAAAAASw/Qq_mytPDmsk/s320/selection-size.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;Fig. 2.&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Selection's size in status bar (red stroke).&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;The result is fig. 3.&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_HXuKv2YS8fM/TIp6OvafamI/AAAAAAAAAS4/QA8_Pr-Oii8/s1600/selection-workaround.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_HXuKv2YS8fM/TIp6OvafamI/AAAAAAAAAS4/QA8_Pr-Oii8/s320/selection-workaround.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;Fig. 3.&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;PDF file by workaround.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;b&gt;P.S. &lt;/b&gt;Just one more tip: to export OpenOffice.org Calc chart to PDF, copy it to Draw, then...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-6320197967966002720?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/09/workaround-for-openofficeorg-draw.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_HXuKv2YS8fM/TIp5sLykqOI/AAAAAAAAASo/EZDk18t3RuI/s72-c/selection-fail.png" height="72" width="72" /><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-4228903251191108897</guid><pubDate>Thu, 02 Sep 2010 11:32:00 +0000</pubDate><atom:updated>2010-09-03T14:53:17.908+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeNAS</category><category domain="http://www.blogger.com/atom/ns#">OSS</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">VirtualBox</category><title>Setup a FreeNAS virtual machine in Linux by VirtualBox</title><description>&lt;div style="text-align: justify;"&gt;We will consider two VirtualBox features — raw hard disk access and VBoxHeadless, to create and run a FreeNAS server "in background" (as a Linux service). It takes us 3 steps.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;b&gt;Step 1.&lt;/b&gt; Create and setup (install) a FreeNAS virtual machine with a small hard disk in VirtualBox, network interface is "bridged". The easiest way is using VirtualBox graphical interface. We are not going into details. Just be aware to use so-called "embedded" FreeNAS if you have much of RAM (FreeNAS 0.7.1 requires minimum 192MB). Otherwise install "full version" of FreeNAS and use swap, because the host (Linux) system needs RAM, too.&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Step 2&lt;/b&gt;. Add raw disk to virtual machine [1].&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 3.&lt;/b&gt; Use VBoxHeadless to run FreeNAS virtual machine without GUI:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ VBoxHeadless --startvm FreeNAS --vrdp=off &amp;gt;&amp;gt; $HOME/VBoxHeadless.out 2&amp;gt;&amp;amp;1&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Read more about VBoxHeadless in VirtualBox documentation [2]. In the command above FreeNAS is the name of created virtual machine, we turn vrdp server off, as FreeNAS has a very powerful Web interface at &lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;a href="http://192.168.1.250/"&gt;http://192.168.1.250&lt;/a&gt;&lt;/span&gt;&amp;nbsp;by default [3].&lt;/div&gt;&lt;div style="text-align: justify;"&gt;You may want to run the virtual machine automatically during boot process. Be aware to run it after &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vboxdrv&lt;/span&gt; service. For this purpose the most&amp;nbsp;convenient&amp;nbsp;solution is &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/etc/init.d/rc.local&lt;/span&gt;. This script run last, but run as root, thus &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo&lt;/span&gt; command is used:&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ cat /etc/rc.local&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#!/bin/sh -e&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# rc.local&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# This script is executed at the end of each multiuser runlevel.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# Make sure that the script will "exit 0" on success or any other&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# value on error.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# In order to enable or disable this script just change the execution&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# bits.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# By default this script does nothing.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo -H -u phan VBoxHeadless --startvm FreeNAS --vrdp=off &amp;gt;&amp;gt; $HOME/VBoxHeadless.out 2&amp;gt;&amp;amp;1&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;exit 0&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Change &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;phan&lt;/span&gt; to your username. The &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-H&lt;/span&gt; option is important, it tell &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo&lt;/span&gt; to set &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;HOME&lt;/span&gt; environment variable to the home directory of the target user, where VBoxHeadless will find the virtual machine with "FreeNAS" name.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;P.S. don't forget to turn off FreeNAS virtual machine before shutdown Linux.&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://phanvinhthinh.blogspot.com/2010/08/note-about-permissions-in-virtualbox.html"&gt;Physical hard disk usage in VirtualBox&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.virtualbox.org/manual/ch07.html#vboxheadless"&gt;VBoxHeadless&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://freenas.org/documentation:setup_and_user_guide"&gt;FreeNAS user guide&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-4228903251191108897?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/09/setup-freenas-virtual-machine-in-linux.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-8991342716543950034</guid><pubDate>Mon, 30 Aug 2010 18:27:00 +0000</pubDate><atom:updated>2010-09-02T15:25:55.013+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Hardware</category><category domain="http://www.blogger.com/atom/ns#">OSS</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">VirtualBox</category><title>Note about permissions in VirtualBox physical hard disk usage in Linux host</title><description>&lt;div style="text-align: justify;"&gt;From VirtualBox manual: "Starting with version 1.4, as an alternative to using virtual disk images, VirtualBox can also present either entire physical hard disks or selected partitions thereof as virtual disks to virtual machines...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;...this type of access is called "raw hard disk access"; it allows a guest OS to access its virtual hard disk without going through the host OS file system."&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Do read the manual (part 9.7.1 at now) and do it at your own risk! Here we will talk only about permission problem you can get in Linux host. That, you will need read/write access for the entire disk (or selected partitions). For example:&lt;/div&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ VBoxManage internalcommands createrawvmdk -filename $HOME/.VirtualBox/HardDisks/sda2.vmdk -rawdisk /dev/sda -partitions 2&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;set up an image for access &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/dev/sda2&lt;/span&gt; in Linux host. User needs read/write access to this partition. Otherwise, we will get some messages like this while adding &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sda2.vmdk&lt;/span&gt; to a virtual machine:&lt;/div&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;NS_ERROR_FAILURE (0x80004005)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Component:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;HardDisk&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Interface:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;IHardDisk {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Callee:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;IVirtualBox {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Check the physical disks properties:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ ls -l /dev/sda*&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;brw-rw---- 1 root disk 8, 0 2010-08-30 21:53 /dev/sda&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;brw-rw---- 1 root disk 8, 1 2010-08-30 12:22 /dev/sda1&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;brw-rw---- 1 root disk 8, 2 2010-08-30 21:31 /dev/sda2&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;brw-rw---- 1 root disk 8, 5 2010-08-30 12:22 /dev/sda5&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;We can see one solution to grant permissions is adding username to the &lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;disk&lt;/span&gt;&lt;/b&gt; group, for example, by editing &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/etc/group&lt;/span&gt; file. And don't forget to re-login.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-8991342716543950034?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/08/note-about-permissions-in-virtualbox.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-2557360665042561697</guid><pubDate>Fri, 27 Aug 2010 12:08:00 +0000</pubDate><atom:updated>2010-08-27T16:08:43.621+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeNAS</category><category domain="http://www.blogger.com/atom/ns#">OSS</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">BitTorrent</category><category domain="http://www.blogger.com/atom/ns#">Debian</category><category domain="http://www.blogger.com/atom/ns#">Ubuntu</category><title>Very short about using transmission-daemon</title><description>&lt;div style="text-align: justify;"&gt;The &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;transmission-daemon&lt;/span&gt; program is a daemon-based Transmission session that can be controlled via IPC commands by&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt; transmission-remote&lt;/span&gt;(1) [1]. This program is used by default in FreeNAS, and maybe you want to use it on Linux box. It's very likely you distribution come with transmission by default. In that case, you need to install transmission-daemon only:&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# apt-get install transmission-daemon&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Configuration file is &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;/var/lib/transmission-daemon/info/settings.json&lt;/span&gt; (it's quiet safe to add *.*.*.* to &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;rpc-whitelist&lt;/span&gt; option). After editing (user, password, paths, etc), we need to reload the daemon itself:&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;# /etc/init.d/transmission-daemon reload&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Using remote client was discussed before [2].&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;b&gt;Note: &lt;/b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;transmission-daemon&lt;/span&gt; configuration is very well documented &lt;a href="http://1000umbrellas.com/2010/04/21/transmission-install-on-ubuntu-10-04-server-lucid"&gt;on this web site&lt;/a&gt;. You are recommended to read (at least to feel the power of FreeNAS's web interface).&lt;/div&gt;&lt;br /&gt;
1. man transmission-daemon&lt;br /&gt;
2. &lt;a href="http://phanvinhthinh.blogspot.com/2009/10/transmission-remote-gui.html"&gt;Cross-platform transmission-remote-gui&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-2557360665042561697?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/08/very-short-about-using-transmission.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-1371491597277110712</guid><pubDate>Sun, 22 Aug 2010 19:45:00 +0000</pubDate><atom:updated>2010-08-22T23:47:54.475+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeNAS</category><category domain="http://www.blogger.com/atom/ns#">USB</category><category domain="http://www.blogger.com/atom/ns#">GRUB2</category><title>Boot from USB Flash Without BIOS Support Using Plop via GRUB2</title><description>&lt;div style="text-align: justify;"&gt;As result of an accident the netbook has gone to the heaven in the crisis time, so I've turned FreeNAS box to a normal PC with dual boot (Linux and FreeNAS) for working. Unfortunately, the DVD ROM has gone to the heaven, too. There are not to much options:&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Dual boot, each OS on their disk. Needs 2 devices, not my case.&lt;/li&gt;
&lt;li&gt;Dual boot on the same disk, still available, but requires skill and time [1].&lt;/li&gt;
&lt;li&gt;Boot FreeNAS from USB stick.&lt;/li&gt;
&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;The last choice is the most convenient, but BIOS doesn't support booting from USB. Fortunately, there are boot managers, which fill this hole. Plop [2] has many features, many options and well-documented, so I chose it.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The system is running Linux, booted via GRUB2. If you like me don't want to destroy GRUB(2), you can run Plop from GRUB(2). You need to download the program, unzip and copy the boot manager binary program plpbt.bin to /boot, then add the following entry to GRUB2 configuration file (/boot/grub/grub.cfg):&lt;/div&gt;&lt;br /&gt;
# Boot Plop Boot Manager&lt;br /&gt;
menuentry "Plop Boot Manager" {&lt;br /&gt;
set root='(hd0,3)' #Change to your boot partition&lt;br /&gt;
linux16 /boot/plpbt.bin &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Hold down Shift key while GRUB2 is booting to get its menu, then you can run Plop, from where FreeNAS on USB Flash can be booted.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;See [3] for FreeNAS installation on USB Flash. Get the "embedded" (img) file instead of iso.&lt;/div&gt;&lt;br /&gt;
P.S. of course this is temporary solution. The better is CF to IDE adapter usage.&lt;br /&gt;
&lt;br /&gt;
1. &lt;a href="http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=38&amp;amp;t=1237"&gt;FreeNAS forum on sf.net&lt;/a&gt; &lt;br /&gt;
2. &lt;a href="http://www.plop.at/en/bootmanager.html"&gt;Plop boot manager&lt;/a&gt;&lt;br /&gt;
3. &lt;a href="http://m0n0.ch/wall/installation_generic.php"&gt;FreeNAS USB installation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-1371491597277110712?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/08/boot-from-usb-flash-without-bios.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-3879138692047365261</guid><pubDate>Thu, 19 Aug 2010 20:39:00 +0000</pubDate><atom:updated>2010-08-20T00:39:11.593+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">OSS</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Ubuntu</category><title>Disable unused console (tty) when using Upstart init daemon</title><description>There are not /etc/inittab anymore, but /etc/init/ttyN.conf (N from 1 to 6). Just comment out the last line in each file you desire. For example (in /etc/init):&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ cat tty1.conf&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# tty1 - getty&lt;br /&gt;
#&lt;br /&gt;
# This service maintains a getty on tty1 from the point the system is&lt;br /&gt;
# started until it is shut down again.&lt;br /&gt;
&lt;br /&gt;
start on stopped rc RUNLEVEL=[2345]&lt;br /&gt;
stop on runlevel [!2345]&lt;br /&gt;
&lt;br /&gt;
respawn&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;exec /sbin/getty -8 38400 tty1&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ cat tty1.conf | wc -l&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;10&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ sed -i '10 s/^/#/' tty{2,3,4,5,6}.conf&lt;/div&gt;&lt;br /&gt;
Please tell me other command lines to do the last job.&lt;br /&gt;
P.S. in an Ubuntu box Ctrl+Alt+Backspace now is Right Alt (Alt Gr) + Print Screen + k.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-3879138692047365261?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/08/disable-unused-console-tty-when-using.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-3853114131800382803</guid><pubDate>Wed, 18 Aug 2010 14:51:00 +0000</pubDate><atom:updated>2010-08-18T18:51:52.017+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">OSS</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">GRUB2</category><title>Boot System Rescue CD from ISO image on the disk with Grub2</title><description>&lt;div style="text-align: justify;"&gt;"SystemRescueCd is a (Gentoo) Linux system rescue disk available as a bootable CD-ROM or USB stick for administrating or repairing your system and data after a crash." The latest version include many administration tool of both CLI and GUI. If you frequently use SystemRescueCd, you may want to boot it directly from Grub2.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;From version 2 GRUB can provide the GREAT &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;loopback&lt;/span&gt; option, in co-junction with whom some Linux Live CD distributions (grml, SystemRescueCd, etc) provide direct boot (iso9660) ISO via their options — &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;isofrom&lt;/span&gt;, &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;findiso&lt;/span&gt;, &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;isoloop&lt;/span&gt; and some others. Option &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;isoloop&lt;/span&gt; is only supported in SystemRescueCd from version 1.4.0.&lt;br /&gt;
&lt;/div&gt;The ISO is in (hd0,3)/ISOs/. &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;grub.cfg&lt;/span&gt; has the following entry:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Boot system rescue CD from ISO&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;menuentry "System Rescue CD from ISO" {&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;loopback loop (hd0,3)/ISOs/res-1.5.8.iso&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;linux (loop)/isolinux/rescuecd isoloop=/ISOs/res-1.5.8.iso setkmap=us&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;initrd (loop)/isolinux/initram.igz&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;grub.cfg&lt;/span&gt; contains the global option &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;set root='(hd0,3)'&lt;/span&gt;, so boot script will search the ISO image in &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/dev/sda3&lt;/span&gt; partition in the path specified after &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;isoloop&lt;/span&gt; option.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Read more:&lt;/b&gt;&lt;br /&gt;
1. &lt;a href="http://www.sysresccd.org/Sysresccd-manual-en_Easy_install_SystemRescueCd_on_harddisk#Boot_the_ISO_image_from_the_disk_using_Grub2"&gt;Boot the SystemRescueCD ISO image from the disk using Grub2&lt;/a&gt;&lt;br /&gt;
2. &lt;a href="http://michael-prokop.at/blog/2009/05/25/boot-an-iso-via-grub2/"&gt;Boot an ISO via Grub2&lt;/a&gt;&lt;br /&gt;
3. &lt;a href="http://www.panticz.de/MultiBootUSB"&gt;MultiBoot USB with Grub2 (boot directly from iso files)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-3853114131800382803?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/08/boot-system-rescue-cd-from-iso-image-on.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-2325016925989836836</guid><pubDate>Wed, 03 Mar 2010 12:42:00 +0000</pubDate><atom:updated>2010-03-03T15:44:57.886+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeNAS</category><category domain="http://www.blogger.com/atom/ns#">Hardware</category><title>smartctl -a /dev/ad0</title><description>My 250 GB hard disk has gone... &lt;br /&gt;
&lt;br /&gt;
FreeNAS log:&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;kernel: ad0: FAILURE - READ_DMA48 status=51&lt;ready,dsc,error&gt;  error=40&lt;uncorrectable&gt; LBA=445600994&lt;/uncorrectable&gt;&lt;/ready,dsc,error&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;kernel: g_vfs_done():ad0p1[READ(offset=228147691520, length=16384)]error  = 5&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
SMART output:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;$ smartctl -a /dev/da0&lt;br /&gt;
smartctl version 5.38 [i386-portbld-freebsd7.2] Copyright (C) 2002-8 Bruce Allen&lt;br /&gt;
Home page is http://smartmontools.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
=== START OF INFORMATION SECTION ===&lt;br /&gt;
Model Family:     Seagate Barracuda 7200.9 family&lt;br /&gt;
Device Model:     ST3250824A&lt;br /&gt;
Serial Number:    3ND0Y5G1&lt;br /&gt;
Firmware Version: 3.AAH&lt;br /&gt;
User Capacity:    250,059,350,016 bytes&lt;br /&gt;
Device is:        In smartctl database [for details use: -P show]&lt;br /&gt;
ATA Version is:   7&lt;br /&gt;
ATA Standard is:  Exact ATA specification draft version not indicated&lt;br /&gt;
Local Time is:    Wed Mar  3 15:30:28 2010 MSK&lt;br /&gt;
SMART support is: Available - device has SMART capability.&lt;br /&gt;
SMART support is: Enabled&lt;br /&gt;
&lt;br /&gt;
=== START OF READ SMART DATA SECTION ===&lt;br /&gt;
SMART overall-health self-assessment test result: PASSED&lt;br /&gt;
&lt;br /&gt;
General SMART Values:&lt;br /&gt;
Offline data collection status:  (0x82) Offline data collection activity&lt;br /&gt;
     was completed without error.&lt;br /&gt;
     Auto Offline Data Collection: Enabled.&lt;br /&gt;
Self-test execution status:      (   0) The previous self-test routine completed&lt;br /&gt;
     without error or no self-test has ever &lt;br /&gt;
     been run.&lt;br /&gt;
Total time to complete Offline &lt;br /&gt;
data collection:    ( 430) seconds.&lt;br /&gt;
Offline data collection&lt;br /&gt;
capabilities:     (0x5b) SMART execute Offline immediate.&lt;br /&gt;
     Auto Offline data collection on/off support.&lt;br /&gt;
     Suspend Offline collection upon new&lt;br /&gt;
     command.&lt;br /&gt;
     Offline surface scan supported.&lt;br /&gt;
     Self-test supported.&lt;br /&gt;
     No Conveyance Self-test supported.&lt;br /&gt;
     Selective Self-test supported.&lt;br /&gt;
SMART capabilities:            (0x0003) Saves SMART data before entering&lt;br /&gt;
     power-saving mode.&lt;br /&gt;
     Supports SMART auto save timer.&lt;br /&gt;
Error logging capability:        (0x01) Error logging supported.&lt;br /&gt;
     General Purpose Logging supported.&lt;br /&gt;
Short self-test routine &lt;br /&gt;
recommended polling time:   (   1) minutes.&lt;br /&gt;
Extended self-test routine&lt;br /&gt;
recommended polling time:   ( 100) minutes.&lt;br /&gt;
&lt;br /&gt;
SMART Attributes Data Structure revision number: 10&lt;br /&gt;
Vendor Specific SMART Attributes with Thresholds:&lt;br /&gt;
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE&lt;br /&gt;
  1 Raw_Read_Error_Rate     0x000f   107   095   006    Pre-fail  Always       -       13692759&lt;br /&gt;
  3 Spin_Up_Time            0x0003   092   088   000    Pre-fail  Always       -       0&lt;br /&gt;
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       342&lt;br /&gt;
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0&lt;br /&gt;
  7 Seek_Error_Rate         0x000f   075   060   030    Pre-fail  Always       -       38432019&lt;br /&gt;
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       767&lt;br /&gt;
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0&lt;br /&gt;
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       364&lt;br /&gt;
187 Reported_Uncorrect      0x0032   001   001   000    Old_age   Always       -       1812&lt;br /&gt;
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0&lt;br /&gt;
190 Airflow_Temperature_Cel 0x0022   060   056   045    Old_age   Always       -       40 (Lifetime Min/Max 33/40)&lt;br /&gt;
194 Temperature_Celsius     0x0022   040   044   000    Old_age   Always       -       40 (0 19 0 0)&lt;br /&gt;
195 Hardware_ECC_Recovered  0x001a   059   051   000    Old_age   Always       -       76090870&lt;br /&gt;
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       2&lt;br /&gt;
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       2&lt;br /&gt;
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0&lt;br /&gt;
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0&lt;br /&gt;
202 TA_Increase_Count       0x0032   100   253   000    Old_age   Always       -       0&lt;br /&gt;
&lt;br /&gt;
SMART Error Log Version: 1&lt;br /&gt;
ATA Error Count: 1817 (device log contains only the most recent five errors)&lt;br /&gt;
 CR = Command Register [HEX]&lt;br /&gt;
 FR = Features Register [HEX]&lt;br /&gt;
 SC = Sector Count Register [HEX]&lt;br /&gt;
 SN = Sector Number Register [HEX]&lt;br /&gt;
 CL = Cylinder Low Register [HEX]&lt;br /&gt;
 CH = Cylinder High Register [HEX]&lt;br /&gt;
 DH = Device/Head Register [HEX]&lt;br /&gt;
 DC = Device Command Register [HEX]&lt;br /&gt;
 ER = Error register [HEX]&lt;br /&gt;
 ST = Status register [HEX]&lt;br /&gt;
Powered_Up_Time is measured from power on, and printed as&lt;br /&gt;
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,&lt;br /&gt;
SS=sec, and sss=millisec. It "wraps" after 49.710 days.&lt;br /&gt;
&lt;br /&gt;
Error 1817 occurred at disk power-on lifetime: 767 hours (31 days + 23 hours)&lt;br /&gt;
  When the command that caused the error occurred, the device was active or idle.&lt;br /&gt;
&lt;br /&gt;
  After command completion occurred, registers were:&lt;br /&gt;
  ER ST SC SN CL CH DH&lt;br /&gt;
  -- -- -- -- -- -- --&lt;br /&gt;
  40 51 00 e8 54 8f 40  Error: UNC at LBA = 0x008f54e8 = 9393384&lt;br /&gt;
&lt;br /&gt;
  Commands leading to the command that caused the error were:&lt;br /&gt;
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name&lt;br /&gt;
  -- -- -- -- -- -- -- --  ----------------  --------------------&lt;br /&gt;
  25 00 20 e2 54 8f 40 00      03:27:10.863  READ DMA EXT&lt;br /&gt;
  b0 d1 01 01 4f c2 e0 00      03:27:08.976  SMART READ ATTRIBUTE THRESHOLDS [OBS-4]&lt;br /&gt;
  25 00 20 e2 54 8f 40 00      03:27:08.944  READ DMA EXT&lt;br /&gt;
  b0 d0 00 00 4f c2 e0 00      03:27:07.057  SMART READ DATA&lt;br /&gt;
  25 00 20 e2 54 8f 40 00      03:27:06.984  READ DMA EXT&lt;br /&gt;
&lt;br /&gt;
Error 1816 occurred at disk power-on lifetime: 767 hours (31 days + 23 hours)&lt;br /&gt;
  When the command that caused the error occurred, the device was active or idle.&lt;br /&gt;
&lt;br /&gt;
  After command completion occurred, registers were:&lt;br /&gt;
  ER ST SC SN CL CH DH&lt;br /&gt;
  -- -- -- -- -- -- --&lt;br /&gt;
  40 51 00 e8 54 8f 40  Error: UNC at LBA = 0x008f54e8 = 9393384&lt;br /&gt;
&lt;br /&gt;
  Commands leading to the command that caused the error were:&lt;br /&gt;
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name&lt;br /&gt;
  -- -- -- -- -- -- -- --  ----------------  --------------------&lt;br /&gt;
  25 00 20 e2 54 8f 40 00      03:27:04.672  READ DMA EXT&lt;br /&gt;
  b0 d0 00 00 4f c2 e0 00      03:27:08.976  SMART READ DATA&lt;br /&gt;
  25 00 20 e2 54 8f 40 00      03:27:08.944  READ DMA EXT&lt;br /&gt;
  b0 da 00 00 4f c2 e0 00      03:27:07.057  SMART RETURN STATUS&lt;br /&gt;
  ca 00 0c 22 2f 00 e0 00      03:27:06.984  WRITE DMA&lt;br /&gt;
&lt;br /&gt;
Error 1815 occurred at disk power-on lifetime: 767 hours (31 days + 23 hours)&lt;br /&gt;
  When the command that caused the error occurred, the device was active or idle.&lt;br /&gt;
&lt;br /&gt;
  After command completion occurred, registers were:&lt;br /&gt;
  ER ST SC SN CL CH DH&lt;br /&gt;
  -- -- -- -- -- -- --&lt;br /&gt;
  40 51 00 e8 54 8f 40  Error: UNC at LBA = 0x008f54e8 = 9393384&lt;br /&gt;
&lt;br /&gt;
  Commands leading to the command that caused the error were:&lt;br /&gt;
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name&lt;br /&gt;
  -- -- -- -- -- -- -- --  ----------------  --------------------&lt;br /&gt;
  25 00 20 e2 54 8f 40 00      03:27:04.672  READ DMA EXT&lt;br /&gt;
  b0 da 00 00 4f c2 e0 00      03:27:04.672  SMART RETURN STATUS&lt;br /&gt;
  ca 00 0c 22 2f 00 e0 00      03:27:04.672  WRITE DMA&lt;br /&gt;
  ca 00 20 02 2f 00 e0 00      03:27:07.057  WRITE DMA&lt;br /&gt;
  ca 00 04 a2 00 00 e0 00      03:27:06.984  WRITE DMA&lt;br /&gt;
&lt;br /&gt;
Error 1814 occurred at disk power-on lifetime: 767 hours (31 days + 23 hours)&lt;br /&gt;
  When the command that caused the error occurred, the device was active or idle.&lt;br /&gt;
&lt;br /&gt;
  After command completion occurred, registers were:&lt;br /&gt;
  ER ST SC SN CL CH DH&lt;br /&gt;
  -- -- -- -- -- -- --&lt;br /&gt;
  40 51 00 e8 54 8f 40  Error: UNC at LBA = 0x008f54e8 = 9393384&lt;br /&gt;
&lt;br /&gt;
  Commands leading to the command that caused the error were:&lt;br /&gt;
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name&lt;br /&gt;
  -- -- -- -- -- -- -- --  ----------------  --------------------&lt;br /&gt;
  25 00 20 e2 54 8f 40 00      03:27:04.672  READ DMA EXT&lt;br /&gt;
  35 00 20 22 19 34 40 00      03:27:04.672  WRITE DMA EXT&lt;br /&gt;
  35 00 20 02 19 34 40 00      03:27:04.672  WRITE DMA EXT&lt;br /&gt;
  35 00 20 e2 18 34 40 00      03:27:04.671  WRITE DMA EXT&lt;br /&gt;
  35 00 20 c2 18 34 40 00      03:27:04.671  WRITE DMA EXT&lt;br /&gt;
&lt;br /&gt;
Error 1813 occurred at disk power-on lifetime: 767 hours (31 days + 23 hours)&lt;br /&gt;
  When the command that caused the error occurred, the device was active or idle.&lt;br /&gt;
&lt;br /&gt;
  After command completion occurred, registers were:&lt;br /&gt;
  ER ST SC SN CL CH DH&lt;br /&gt;
  -- -- -- -- -- -- --&lt;br /&gt;
  40 51 00 e8 54 8f 40  Error: UNC at LBA = 0x008f54e8 = 9393384&lt;br /&gt;
&lt;br /&gt;
  Commands leading to the command that caused the error were:&lt;br /&gt;
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name&lt;br /&gt;
  -- -- -- -- -- -- -- --  ----------------  --------------------&lt;br /&gt;
  25 00 20 e2 54 8f 40 00      03:26:51.227  READ DMA EXT&lt;br /&gt;
  25 00 20 e2 bc 40 40 00      03:26:51.227  READ DMA EXT&lt;br /&gt;
  ec 00 00 00 00 00 e0 00      03:26:51.226  IDENTIFY DEVICE&lt;br /&gt;
  25 00 20 e2 54 8f 40 00      03:26:51.226  READ DMA EXT&lt;br /&gt;
  c8 00 20 62 55 1d e5 00      03:26:51.226  READ DMA&lt;br /&gt;
&lt;br /&gt;
SMART Self-test log structure revision number 1&lt;br /&gt;
&lt;br /&gt;
SMART Selective self-test log data structure revision number 1&lt;br /&gt;
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS&lt;br /&gt;
    1        0        0  Not_testing&lt;br /&gt;
    2        0        0  Not_testing&lt;br /&gt;
    3        0        0  Not_testing&lt;br /&gt;
    4        0        0  Not_testing&lt;br /&gt;
    5        0        0  Not_testing&lt;br /&gt;
Selective self-test flags (0x0):&lt;br /&gt;
  After scanning selected spans, do NOT read-scan remainder of disk.&lt;br /&gt;
If Selective self-test is pending on power-up, resume after 0 minute delay.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-2325016925989836836?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/03/smartctl-devad0.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-4947334107158837813</guid><pubDate>Tue, 23 Feb 2010 10:15:00 +0000</pubDate><atom:updated>2010-02-23T17:08:00.526+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeNAS</category><title>How to secure your FreeNAS server</title><description>Quote from &lt;a href="http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=5&amp;amp;t=28"&gt;FreeNAS forum&lt;/a&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Q: How do I make sure my FreeNAS server  is secure?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;A: &lt;/span&gt;You can  ensure basic security by following the FreeNAS Security Checklist:&lt;br /&gt;
&lt;ol style="list-style-type: decimal;"&gt;&lt;li&gt;&lt;span style="color: green;"&gt;Change&lt;/span&gt; the &lt;span style="font-weight: bold;"&gt;WebGUI admin&lt;/span&gt;/&lt;a href="http://en.wikipedia.org/wiki/Root_account" target="_blank"&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;root&lt;/u&gt;&lt;/span&gt;&lt;/a&gt; password (the default is: &lt;span style="text-decoration: underline;"&gt;&lt;span style="font-style: italic;"&gt;freenas&lt;/span&gt;&lt;/span&gt;)&lt;br /&gt;
Use  a very strong password if you intend to access FreeNAS over the  Internet. &lt;br /&gt;
&lt;span style="color: #ff8000;"&gt;Please note&lt;/span&gt; -  admin/root accounts use the same password.&lt;br /&gt;
&lt;span style="color: #ff8000;"&gt;Please note&lt;/span&gt; - Users that are members of the  wheel group can su to &lt;a href="http://en.wikipedia.org/wiki/Root_account" target="_blank"&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;root&lt;/u&gt;&lt;/span&gt;&lt;/a&gt; if they know the root password.&lt;/li&gt;
&lt;li&gt;&lt;span style="color: green;"&gt;Change&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;WebGUI admin&lt;/span&gt; user name (the default is &lt;span style="font-weight: bold;"&gt;admin&lt;/span&gt;), to protect your system against  &lt;a href="http://en.wikipedia.org/wiki/Dictionary_attack" target="_blank"&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;dictionary attacks.&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;DO  NOT give shell access to everybody.&lt;/li&gt;
&lt;li&gt;DO NOT use FTP over the  Internet, use SSH or SFTP instead.&lt;/li&gt;
&lt;li&gt;DO NOT enable &lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;Password  Authentication&lt;/span&gt; with SSH&lt;/span&gt;, set-up and use &lt;a href="http://www.freenaskb.info/kb/?View=entry&amp;amp;EntryID=257" target="_blank"&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;SSH key based authentication&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Always  use &lt;a href="http://en.wikipedia.org/wiki/Https" target="_blank"&gt;&lt;span style="color: blue;"&gt;&lt;u&gt;https&lt;/u&gt;&lt;/span&gt;&lt;/a&gt; protocol to access &lt;span style="font-weight: bold;"&gt;WebGUI&lt;/span&gt; interface.&lt;/li&gt;
&lt;li&gt;DO NOT open  your WebGUI server to internet, rather open a tunnel via SSH from client  to server.&lt;/li&gt;
&lt;/ol&gt;&amp;nbsp;Let's start from the first item:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1&lt;/b&gt;. Change the WebGUI admin password under &lt;b&gt;System | General | Password&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HXuKv2YS8fM/S4Ojf5qYQsI/AAAAAAAAARo/_XZdbnOt074/s1600-h/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_HXuKv2YS8fM/S4Ojf5qYQsI/AAAAAAAAARo/_XZdbnOt074/s320/01.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;2,4&lt;/b&gt;. Change WebGUI admin user name and access protocol under &lt;b&gt;System | General&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HXuKv2YS8fM/S4OjmHHTsfI/AAAAAAAAARw/QMV6EOJYuQ0/s1600-h/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_HXuKv2YS8fM/S4OjmHHTsfI/AAAAAAAAARw/QMV6EOJYuQ0/s320/1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;5,7&lt;/b&gt;. SSH setup under &lt;b&gt;Services | SSH&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_HXuKv2YS8fM/S4Ojz9lV0oI/AAAAAAAAAR4/CI3gHy18ohM/s1600-h/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_HXuKv2YS8fM/S4Ojz9lV0oI/AAAAAAAAAR4/CI3gHy18ohM/s320/3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Of course, you need to create a non-admin user, create SSH key, and upload it to FreeNAS server. Please read SSH manual. If your FreeNAS server is behind a router, you also need to setup the router's NAT:&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HXuKv2YS8fM/S4OnJqZXqxI/AAAAAAAAASE/khSgRxbdP3E/s1600-h/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_HXuKv2YS8fM/S4OnJqZXqxI/AAAAAAAAASE/khSgRxbdP3E/s320/4.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Here I opened both WebGUI interface and SSH to Internet, but I will use only SSH to connect. To do SSH tunneling from Linux box, type:&lt;/div&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ ssh -v -p 22 -L 8888:localhost:443 username@your.FreeNASorRouter.IP.address&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Then open your web browser and type address &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;https://localhost:8888/&lt;/span&gt; and you are there. Windows users can read the instruction in &lt;a href="http://www.freenaskb.info/kb/?View=entry&amp;amp;EntryID=190"&gt;FreeNAS KnowledgeBase&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;
I don't have a static IP address, so I use (free) &lt;span id="goog_1266916051496"&gt;&lt;/span&gt;&lt;a href="http://www.dyndns.com/"&gt;DynDNS&lt;span id="goog_1266916051497"&gt;&lt;/span&gt;&lt;/a&gt; service.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Last word:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To&lt;span class="short_text" id="result_box"&gt;&lt;span style="background-color: white;" title="ликвидировать"&gt; eliminate Windows users' advantage of using shortcut Linux users can create an alias:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="short_text" id="result_box"&gt;&lt;span style="background-color: white;" title="ликвидировать"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span class="short_text" id="result_box"&gt;&lt;span style="background-color: white;" title="ликвидировать"&gt;$ cat .bashrc&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span class="short_text" id="result_box"&gt;&lt;span style="background-color: white;" title="ликвидировать"&gt;alias ssh-nas="ssh pvt@192.168.1.250"&lt;br /&gt;
alias ssh-dir="ssh pvt@192.168.1.1"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span class="short_text" id="result_box"&gt;&lt;span style="background-color: white;" title="ликвидировать"&gt;alias tunnel-nas="&lt;/span&gt;&lt;/span&gt;ssh -v -p 22 -L 8888:localhost:443 tvp@xxx.dyndns.org"&lt;/b&gt;&lt;br /&gt;
&lt;span class="short_text" id="result_box"&gt;&lt;span style="background-color: white;" title="ликвидировать"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# sudo alias&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;alias apt-update="sudo apt-get update"&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;alias apt-install="sudo apt-get install"&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;alias apt-remove="sudo apt-get remove"&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;alias mount="sudo mount"&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;alias umount="sudo umount"&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;alias suvim="sudo vim"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="short_text" id="result_box"&gt;&lt;span style="background-color: white;" title="ликвидировать"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ tunnel-nas &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="short_text" id="result_box"&gt;&lt;span style="background-color: white;" title="ликвидировать"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="short_text" id="result_box"&gt;&lt;span style="background-color: white;" title="ликвидировать"&gt;Happy using FreeNAS!&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-4947334107158837813?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/02/how-to-secure-your-freenas-server.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_HXuKv2YS8fM/S4Ojf5qYQsI/AAAAAAAAARo/_XZdbnOt074/s72-c/01.png" height="72" width="72" /><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-4118710206691634906</guid><pubDate>Tue, 02 Feb 2010 05:08:00 +0000</pubDate><atom:updated>2010-02-02T11:52:08.028+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">OSS</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Video Editing</category><title>Bash script for batch renaming of video files, based on the media information</title><description>&lt;div style="text-align: left;"&gt;We have a (quiet good) Panasonic miniDV camcorder to save our Little Boy's moments. Software comes with the device can auto index the tape by recoreded date attribute and then batch capture (copy) all the movie to hard disk. It's wonderful feature, except the filenames — we got something like this for every tape:&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: x-small;"&gt;phan@phan-laptop:/mnt/TQA/Videos/Sushi-1Y/08.03.09-31.05.09$ ls&lt;br /&gt;
hsicon.stg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVIE0006.avi&amp;nbsp; MOVIE0012.avi&amp;nbsp; MOVIE0018.avi&amp;nbsp; MOVIE0024.avi&amp;nbsp; MOVIE0030.avi&lt;br /&gt;
MOVIE0001.avi&amp;nbsp; MOVIE0007.avi&amp;nbsp; MOVIE0013.avi&amp;nbsp; MOVIE0019.avi&amp;nbsp; MOVIE0025.avi&amp;nbsp; MOVIE0031.avi&lt;br /&gt;
MOVIE0002.avi&amp;nbsp; MOVIE0008.avi&amp;nbsp; MOVIE0014.avi&amp;nbsp; MOVIE0020.avi&amp;nbsp; MOVIE0026.avi&amp;nbsp; MOVIE0032.avi&lt;br /&gt;
MOVIE0003.avi&amp;nbsp; MOVIE0009.avi&amp;nbsp; MOVIE0015.avi&amp;nbsp; MOVIE0021.avi&amp;nbsp; MOVIE0027.avi&amp;nbsp; TAPE08032009_1902.tap&lt;br /&gt;
MOVIE0004.avi&amp;nbsp; MOVIE0010.avi&amp;nbsp; MOVIE0016.avi&amp;nbsp; MOVIE0022.avi&amp;nbsp; MOVIE0028.avi&lt;br /&gt;
MOVIE0005.avi&amp;nbsp; MOVIE0011.avi&amp;nbsp; MOVIE0017.avi&amp;nbsp; MOVIE0023.avi&amp;nbsp; MOVIE0029.avi&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Naturally, it is wanted to rename the movies to show the recorded date and, maybe, some other userful information. Although I like &lt;a href="http://file-folder-ren.sourceforge.net/"&gt;Métamorphose&lt;/a&gt; and other &lt;a href="http://en.wikipedia.org/wiki/Batch_renaming"&gt;batch renaming tools&lt;/a&gt;, they can't extract video data. So I decided to create my own bash script. Here is it:&lt;/div&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash&lt;br /&gt;
# Bash script for batch renaming of video files, recored by a miniDV-tape&lt;br /&gt;
# camcorder, based on the media information (Recorded Date in my case).&lt;br /&gt;
# Created by Phan Vinh Thinh, teppi {-&lt;at-&gt;} vnoss.org,&lt;br /&gt;
# released 01 Feb 2010 under GPL, so feel free to make changes.&lt;br /&gt;
# In the script used some echo commands for diagnostic purpose&lt;br /&gt;
###############################################################################&lt;br /&gt;
&lt;br /&gt;
# If there is not any given argument (filename), print the help message&lt;br /&gt;
if [ $# -eq 0 ]; then&lt;br /&gt;
echo "vrename.sh --- Bash script for batch video files renaming";&lt;br /&gt;
echo "Usage: ./vrename.sh [files]";&lt;br /&gt;
echo "Examples:";&lt;br /&gt;
echo -e "\t./vrename.sh *.avi";&lt;br /&gt;
echo -e "\t./vrename.sh MOVIE0001.avi MOVIE0002.avi MOVIE0005.avi";&lt;br /&gt;
fi;&lt;br /&gt;
&lt;br /&gt;
#for FILE in MOVIE*.avi; do&lt;br /&gt;
# $@ expands to all command-line parameters separated by spaces&lt;br /&gt;
for FILE in $@; do&lt;br /&gt;
&lt;br /&gt;
# Get the Recorded Date in YYYYMMDDhhmm format and then&lt;br /&gt;
# assign to TIME variable&lt;br /&gt;
TIME=`mediainfo $FILE | grep -i "recorded date" | cut -d ':' --field=2-3 | \&lt;br /&gt;
tr -cd [:alnum:]`;&lt;br /&gt;
#echo $TIME;&lt;/at-&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Change date format to which we want&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; YEAR=${TIME%????????};&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MIN=${TIME#??????????};&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HOUR=${TIME#????????};&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HOUR=${HOUR%$MIN};&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DAY=${TIME#??????};&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DAY=${DAY%$HOUR$MIN};&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MON=${TIME%??????};&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MON=${MON#$YEAR};&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $DAY-$MON-$YEAR-$HOUR-$MIN;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Change month to short name format (Jan, Feb, etc)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if [ "$MON" = "01" ] ; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Month=Jan;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ "$MON" = "02" ]; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Month=Feb;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ "$MON" == "03" ]; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Month=Mar;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ "$MON" = "04" ] ; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Month=Apr;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ "$MON" = "05" ] ; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Month=May;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ "$MON" = "06" ] ; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Month=Jun;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ "$MON" = "07" ] ; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Month=Jul;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ "$MON" = "08" ] ; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Month=Aug;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ "$MON" = "09" ] ; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Month=Sep;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ "$MON" = "10" ] ; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Month=Oct;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ "$MON" = "11" ] ; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Month=Nov;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ "$MON" = "12" ] ; then&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Month=Dec;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo "Try without any argument to see help!"&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; exit 1;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fi;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $Month;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Assign NAME variable --- basename for future filename&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NAME=Movie-$DAY$Month$YEAR-$HOUR$MIN;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $NAME;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Rename FILE to NAME.avi&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Use -i option to make sure there are not 2 files with same NAME&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mv -i -v $FILE $NAME.avi;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;done&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
(To obtain media information, we need an external program — &lt;a href="http://mediainfo.sourceforge.net/en"&gt;&lt;i&gt;mediainfo&lt;/i&gt;&lt;/a&gt;).&lt;br /&gt;
You can download the script in gzip format from my &lt;a href="https://docs.google.com/leaf?id=0BzFYPvGAHRBMM%20DMxZWRjNDctMjk4NC00YWQzLWIyMDgtNjc3MTlmMTExYTU1&amp;amp;hl=en"&gt;Google Docs share&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Running script, we got:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;phan@phan-laptop:/mnt/TQA/Videos/Sushi-1Y/08.03.09-31.05.09$ ~/vrename.sh *.avi&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;`MOVIE0001.avi' -&amp;gt; `Movie-08Mar2009-1902.avi'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;`MOVIE0002.avi' -&amp;gt; `Movie-08Mar2009-1904.avi'&lt;br /&gt;
`MOVIE0003.avi' -&amp;gt; `Movie-08Mar2009-1905.avi'&lt;br /&gt;
`MOVIE0004.avi' -&amp;gt; `Movie-08Mar2009-1906.avi'&lt;br /&gt;
`MOVIE0005.avi' -&amp;gt; `Movie-08Mar2009-1907.avi'&lt;br /&gt;
`MOVIE0006.avi' -&amp;gt; `Movie-16Mar2009-1244.avi'&lt;br /&gt;
`MOVIE0007.avi' -&amp;gt; `Movie-16Mar2009-1252.avi'&lt;br /&gt;
`MOVIE0008.avi' -&amp;gt; `Movie-16Mar2009-1339.avi'&lt;br /&gt;
...&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
P.S. It's time to start Perl learning ;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-4118710206691634906?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/02/bash-script-for-batch-renaming-of-video.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-3942779646633261045</guid><pubDate>Sun, 31 Jan 2010 20:32:00 +0000</pubDate><atom:updated>2010-02-01T00:12:19.072+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Chromatography</category><category domain="http://www.blogger.com/atom/ns#">Publications</category><category domain="http://www.blogger.com/atom/ns#">Chemistry</category><title>My first (and maybe last) publication in Russian Academy of Sciences' journal</title><description>Podolina E. A., Rudakov O. B., Phan Vinh Thinh, Rudakova L. V. Low-Temperature Liquid Extraction as Sample Preparation of Phenols for reversed-phase HPLC Analysis // Zhurnal Analiticheskoi Khimii (Russian Journal of Analytical Chemistry), 2010, Vol. 65, No. 2, pp. 121–123.&lt;br /&gt;
&lt;br /&gt;
The article is shared by &lt;a href="https://docs.google.com/fileview?id=0BzFYPvGAHRBMNjMyYTg1NjktMGIwNi00ZTcwLTg4ZmUtMTEyMTMwYzQwNzU1&amp;amp;hl=en"&gt;Google Docs&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-3942779646633261045?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/01/my-first-and-maybe-last-publication-in.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-5160228994190597352</guid><pubDate>Sat, 23 Jan 2010 11:00:00 +0000</pubDate><atom:updated>2010-01-24T00:48:27.044+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeNAS</category><category domain="http://www.blogger.com/atom/ns#">Hardware</category><title>Adding more storages to the old-computer-based NAS by PCI SATA controller</title><description>&lt;div style="text-align: justify;"&gt;As is &lt;a href="http://phanvinhthinh.blogspot.com/2009/10/saving-freenas-configuration-on-usb.html"&gt;said before&lt;/a&gt;, I'm using my 7-years-old computer to build a NAS run under &lt;a href="http://www.freenas.org/"&gt;FreeNAS&lt;/a&gt;. It works fine without the need of monitor. The problem is I have only a 250GB IDE hard disk, which doesn't has enough spaces for, growing with my son, home video collection,&amp;nbsp; and the computer, of course, doesn't have SATA support. At the time of writing (Jan 2010), new IDE hard disks don't have much rooms and cost money, opposite SATA disks now have peak of popularity. There are 1,5TB WD Caviar Green (WD15EADS) for only 4500 rub (~107€), and, you're right, it is wanted.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;After reading some forums and wiki the resolve was found — a ST-Lab A-224 PCI SATA150 Controller RTL with 4 SATA II and 2 e-SATA (fig. 1), whose chipset–Silicon Image 3114 is &lt;a href="http://freenas.org/freenas_users_hardware#sata_controllers"&gt;supported by FreeNAS&lt;/a&gt;. And fortunately, someone said this controller can work with 1,5TB disks.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HXuKv2YS8fM/S1ttwnF1PLI/AAAAAAAAAQQ/pej30sjYBHc/s1600-h/ST-Lab-A224.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://1.bp.blogspot.com/_HXuKv2YS8fM/S1ttwnF1PLI/AAAAAAAAAQQ/pej30sjYBHc/s320/ST-Lab-A224.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Fig. 1&lt;/b&gt;. ST-Lab A-224 PCI SATA 150 Controller with 4 SATA II and 2 e-SATA&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;(click &lt;a href="http://www.nix.ru/autocatalog/controllers_stlab/75990_2245_draft.jpg"&gt;here &lt;/a&gt;to see bigger image).&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Totally, for the controller, WD15EADS hard disk and Molex-to-SATA power adapter I've paid ~5500 rub (~130€) to obtain a 1,5TB NAS (fig. 2). Beside that, 3 SATA ports are opened for further upgrade...&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HXuKv2YS8fM/S1rVrf8lmrI/AAAAAAAAAQA/G9u5aN1ZKJQ/s1600-h/Screenshot-freenas.local+-+FreeNAS+webGUI+-+Mozilla+Firefox.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="385" src="http://3.bp.blogspot.com/_HXuKv2YS8fM/S1rVrf8lmrI/AAAAAAAAAQA/G9u5aN1ZKJQ/s640/Screenshot-freenas.local+-+FreeNAS+webGUI+-+Mozilla+Firefox.png" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Fig. 2&lt;/b&gt;. A new FreeNAS system with 1,5TB storage.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Note:&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;1. There is freezing problem of WD15EADS revision &lt;b&gt;00P8B0&lt;/b&gt; disks (the only model with 3 platters, 500GB each). Everything works good for weeks, month, then the access time will be inconvenient big. Instead of WD15EADS, you can by Samsung Spinpoint F2 EcoGreen (HD154UI). All Samsung HD154UI revisions are 3-platters.&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;2. Although the controller has manufactured with very high quality, you can't upgrade the firmware, because it uses BIOS instead of flash memory. If you want, you can't change BIOS to flashrom in their service centers.&lt;br /&gt;
&lt;/div&gt;3. PCI devices (the SATA controller, NIC, etc) share their bus speed (?).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-5160228994190597352?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2010/01/adding-more-storages-to-old-computer.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_HXuKv2YS8fM/S1ttwnF1PLI/AAAAAAAAAQQ/pej30sjYBHc/s72-c/ST-Lab-A224.jpg" height="72" width="72" /><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-1754384739485706215</guid><pubDate>Mon, 23 Nov 2009 22:02:00 +0000</pubDate><atom:updated>2009-11-24T01:02:09.552+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">My Vietnam</category><title>Bàn về chuyện cổ tích Tấm Cám</title><description>&lt;div style="text-align: justify;"&gt;Nhân có người bạn cũ học cùng cấp III có đưa ra chuyện &lt;a href="http://www.blogger.com/goog_1259011275522"&gt;người Mỹ dạy &lt;/a&gt;&lt;span&gt;&lt;a href="http://www.facebook.com/home.php#/note.php?note_id=178229247189"&gt;bài học cô bé Lọ Lem&lt;/a&gt;, tôi có nhớ lại ngày xưa được bà nội kể lại cũng như học trong trường học câu chuyện cổ tích Tấm Cám. Chắc hẳn các bạn cũng nhớ sơ lược nội dung của câu chuyện này, trong trường hợp ngược lại bạn có thể làm quen với nó trên trang bách khoa toàn thư mở &lt;a href="http://vi.wikipedia.org/wiki/T%E1%BA%A5m_C%C3%A1m"&gt;tiếng Việt&lt;/a&gt;, cũng như &lt;a href="http://en.wikipedia.org/wiki/The_Story_of_Tam_and_Cam"&gt;tiếng Anh&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;span&gt;Theo những gì mà tôi được cô giáo dạy, mà chắc rằng hiện nay các em học sinh trong trường học cũng được giải thích như tôi trước đây, thì "Tấm Cám&lt;/span&gt; là một câu chuyện cổ tích Việt Nam thuộc thể loại truyện cổ tích thần kì, phản ánh những mâu thuẫn trong gia đình, cuộc đấu tranh giữa &lt;i&gt;cái thiện&lt;/i&gt; và &lt;i&gt;cái ác&lt;/i&gt;, cùng &lt;i&gt;ước mơ cái thiện thắng cái ác của người Việt Nam&lt;/i&gt;." Vâng tất nhiên đại diện của cái ác ở trong chuyện này là Cám, cái thiện — Tấm. Chuyện Tấm Cám được so sánh là &lt;a href="http://www.pitt.edu/%7Edash/tam.html"&gt;Lọ Lem Việt Nam&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Thật là kinh khủng khi nghĩ đến việc các em học sinh tiểu học được dạy là &lt;i&gt;giết người&lt;/i&gt; là việc thiện. Không chỉ là giết người mà còn rất dã man (làm mắm và đưa cho người khác ăn???!!!). Vâng cứ cho là Cám ác đi, nhưng trong cuộc sống hiện tại có bao nhiêu người như vậy. Không lẽ khi đi làm bạn chưa bị ai ngáng chân? Bạn chưa bao giờ bị những người bạn trong lớp làm hỏng những thứ bạn yêu thích? Và bạn được dạy phải giết họ khi có cơ hội? Còn kinh khủng hơn nữa khi phải nghĩ đến rằng, đó là ước mơ cái thiện thắng cái ác của người Việt Nam.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Có lẽ còn nhiều thứ tôi chưa thể hiểu hết ở tuổi 28, nhưng tôi không thể dạy con trai tôi câu chuyện Tấm Cám này, đơn giản vì tôi không coi đây là chuyện cổ tích, tôi xếp chuyện này vào nhóm kinh dị...&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-1754384739485706215?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2009/11/ban-ve-chuyen-co-tich-tam-cam.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-7479209483317994385</guid><pubDate>Sat, 14 Nov 2009 21:07:00 +0000</pubDate><atom:updated>2010-01-23T14:13:18.587+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeNAS</category><title>Access to FreeNAS, which is behind a WL500g router from Internet</title><description>&lt;div style="text-align: justify;"&gt;All you need is configure Virtual Servers under NAT Setting (something like on the fig. 1). In this case I have FTP, SSH accesses to my FreeNAS machine, which have internal IP address 192.168.1.250. Beside that I can control Bittorrent service by Web interface from anywhere on the Internet.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_HXuKv2YS8fM/Sv8aB0mFArI/AAAAAAAAAOY/MkSbFNFxfoE/s1600-h/Screenshot-WL500g.PremiumV2+-+Mozilla+Firefox.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_HXuKv2YS8fM/Sv8aB0mFArI/AAAAAAAAAOY/MkSbFNFxfoE/s320/Screenshot-WL500g.PremiumV2+-+Mozilla+Firefox.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;b&gt;Fig. 1&lt;/b&gt;. Virtual Server setting on WL500g.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;If you don't have static IP address, so you should try &lt;a href="http://www.dyndns.com/"&gt;http://www.dyndns.com/&lt;/a&gt; (free account is enough for the beginning).&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
The next step should be security realization...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-7479209483317994385?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2009/11/access-to-freenas-which-is-behind.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_HXuKv2YS8fM/Sv8aB0mFArI/AAAAAAAAAOY/MkSbFNFxfoE/s72-c/Screenshot-WL500g.PremiumV2+-+Mozilla+Firefox.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-2168446478340453779</guid><pubDate>Thu, 08 Oct 2009 22:30:00 +0000</pubDate><atom:updated>2010-01-23T14:12:23.521+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Wireless</category><category domain="http://www.blogger.com/atom/ns#">LaserJet 1018</category><title>Network printing for host-based printer HP LaserJet 1000/1005/1018/1020 by Oleg's firmware</title><description>&lt;b style="font-family: Arial,Helvetica,sans-serif;"&gt;What do you need?&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;A wireless router like D-Link DIR-320, which has at least one USB port, with Oleg's firmware inside.&amp;nbsp;&lt;/li&gt;
&lt;li style="text-align: justify;"&gt;An USB printer. In my case I have HP LaserJet 1018, change it to your printer model.&lt;/li&gt;
&lt;li style="text-align: justify;"&gt;An USB hub if you want to connect more device (USB flask stick, scanner, etc) to the router.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif; text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HXuKv2YS8fM/StTnFSGLToI/AAAAAAAAAN0/vCJVeCJTUOE/s1600-h/dir320.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_HXuKv2YS8fM/StTnFSGLToI/AAAAAAAAAN0/vCJVeCJTUOE/s320/dir320.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;span style="font-family: inherit;"&gt;Fig. 1. &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: inherit; font-size: small;"&gt;HP LaserJet 1018 connected to wireless router D-Link DIR-320 through an 4-port USB hub&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: inherit; font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;b&gt;Why is Oleg's firmware?&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Because original &lt;i&gt; router firmware&lt;/i&gt; doesn't work with host-based printer like HP Laserjet 1018, thus it's needed to load some &lt;i&gt;printer firmware&lt;/i&gt; to this kind of printer to make it operates properly. And beside that, you don't have much things to do with the manufactor's firmware. Oleg's firmware gives you more freedom of operations. If you have a D-Link DIR-320, you can see how to reflashing your router &lt;a href="http://phanvinhthinh.blogspot.com/2009/10/reflashing-wireless-router-d-link-dir.html"&gt;in my other post&lt;/a&gt;. The owner of other router can check &lt;a href="http://oleg.wl500g.info/"&gt;Oleg's firmware website&lt;/a&gt; and &lt;a href="http://wl500g.info/"&gt;forum&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;1. Server settings&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;The &lt;b&gt;main idea&lt;/b&gt; here is putting printer firmware in some place, where the router can find and load it to printer when the last one is connected. You need to download/create some files as below:&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;1.1. sihp1018.dl&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;This is the printer firmware. We need to load this file to printer. &lt;b&gt;After login to the router by ssh&lt;/b&gt;, you can get this firmware from Oleg's firmware website as below:&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ wget http://oleg.wl500g.info/hplj/sihp1018.dl -O /tmp/sihp1018.dl&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;All the files in /tmp will be deleted every time the router rebooted. Remember to download printer firmware again if you don't have external storage media. In case you have an USB hub and an USB flash stick mounted under /opt, you can have second copy of firmware on the USB stick:&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ mount /dev/discs/disc0/part1 /opt&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ cp sihp1018.dl /opt&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;1.2. /usr/local/sbin/usb_printerid&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;wget http://oleg.wl500g.info/hplj/usb_printerid -O /usr/local/sbin/usb_printerid&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;1.3. /usr/local/sbin/hotplug.sh&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;This file is a hotplug script, which will load printer firmware automatically every on/off cycle.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#!/bin/sh&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;LOG=/tmp/hotplug.log&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PRN_BIN=/usr/local/sbin/usb_printerid&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PRN_FRM1=/tmp/sihp1018.dl&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PRN_FRM2=/opt/sihp1018.dl&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Logging&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;echo --------------- &amp;gt;&amp;gt; $LOG&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;date &amp;gt;&amp;gt; $LOG&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;echo $* &amp;gt;&amp;gt; $LOG&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;set &amp;gt;&amp;gt; $LOG&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if [ "$ACTION" = "add" ] || [ "$1" = "usb" ] || [ "$DEVFS" = "/proc/bus/usb" ]; then&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;sleep 5&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$PRN_BIN /dev/usb/lp0 | grep -q FWVER || cat $PRN_FRM1 &amp;gt; /dev/usb/lp0;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$PRN_BIN /dev/usb/lp0 | grep -q FWVER || cat $PRN_FRM2 &amp;gt; /dev/usb/lp0&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;echo "Printer OnLine" &amp;gt;&amp;gt; $LOG&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;else&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;echo "Printer OffLine" &amp;gt;&amp;gt; $LOG&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;fi&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;killall hotplug.sh&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;1.4 /usr/local/sbin/post-boot&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Commands in this file will be executed after router's booting. Here I use it to mount USB flash stick, load firmware to printer if it is on and connected and the firmware is not presented on printer. At last, the hotplug script about is load to kernel's hotplug.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#!/bin/sh&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Mount USB flash disk&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if [ -w /dev/discs/disc0/part1 ]; then&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;mount /dev/discs/disc0/part1 /usr/local/flashdisk&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;fi&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Load firmware to printer if the printer is connected and&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# firmware is not loaded (grep -q FWVER)&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;if [ -w /dev/usb/lp0 ]; then&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; /usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /tmp/sihp1018.dl &amp;gt; /dev/usb/lp0;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; /usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /opt/sihp1018.dl &amp;gt; /dev/usb/lp0&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;fi&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Hotplug script&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;echo "/usr/local/sbin/hotplug.sh" &amp;gt;&amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;After downloading/creating files, we need to make some of them executable and then save the flashfs:&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ chmod +x /usr/local/sbin/*&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ flashfs save&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ flashfs commit&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ flashfs enable&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ reboot&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
That's all from server side. Now you can connect printer to router, turn it on and configure the client side, after what — print.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;2. Client side&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;2. 1. Linux client&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Ubuntu for example. Install and run cupsd:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ sudo apt-get install cups&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Then add printer through GNOME interface (wizard). Not very hard to do. And don't forget to add users to &lt;i&gt;lp&lt;/i&gt; group!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HXuKv2YS8fM/Ss5ok_D7WzI/AAAAAAAAANo/7wlFME1jMi0/s1600-h/HP1018.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_HXuKv2YS8fM/Ss5ok_D7WzI/AAAAAAAAANo/7wlFME1jMi0/s320/HP1018.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Fig. 2.&lt;/b&gt; Network printer properties&lt;br /&gt;
&lt;/div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;2. 2. Windows(R) client&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I won't show you. I hate Windows users ;).&lt;br /&gt;
Read here instead: &lt;a href="http://oleg.wl500g.info/printing/"&gt;http://oleg.wl500g.info/printing/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Note:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;
&lt;/div&gt;1. When try:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ flashfs save &amp;amp;&amp;amp; flashfs commit &amp;amp;&amp;amp; flashfs enable &amp;amp;&amp;amp; reboot&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
and get&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[admin@(none) local]$ flashfs commit&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/tmp/flash.tar.gz: File is to big (73504, max 65536)&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;mean your flash file is not fit on flash ROM. Maybe you download printer firmware to some where in /usr/local. Need to check it:&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ ls -lR /usr/local&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;lrwxrwxrwx    1 admin    root           12 Aug 22 11:35 /usr/local -&amp;gt; ../tmp/local&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ ls -lR /tmp/local&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
2. If you have connected, for example, 4-port USB hub to the router, then you have more posibilities other than network printing:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;network storage device,&lt;/li&gt;
&lt;li&gt;network camera,&lt;/li&gt;
&lt;li&gt;network scanning, etc.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;See &lt;a href="http://wl500g.info/forumdisplay.php?f=24"&gt;http://wl500g.info/forumdisplay.php?f=24&lt;/a&gt; for more compatible hardware with Oleg's firmware.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
3. Do not use 3-m USB-cable and over, can cause problem with USB 2.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-2168446478340453779?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2009/10/network-printing-for-host-based-printer.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_HXuKv2YS8fM/StTnFSGLToI/AAAAAAAAAN0/vCJVeCJTUOE/s72-c/dir320.jpg" height="72" width="72" /><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-2557310154450649893</guid><pubDate>Thu, 08 Oct 2009 18:48:00 +0000</pubDate><atom:updated>2010-01-23T14:02:00.045+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeNAS</category><category domain="http://www.blogger.com/atom/ns#">OSS</category><title>Transmission Remote GUI</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;If you're using FreeNAS like me, this application will be useful.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HXuKv2YS8fM/Ss4ynVKf0rI/AAAAAAAAANc/meU27mp61Lg/s1600-h/Screenshot-Transmission+Remote+GUI.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_HXuKv2YS8fM/Ss4ynVKf0rI/AAAAAAAAANc/meU27mp61Lg/s320/Screenshot-Transmission+Remote+GUI.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Fig. 1.&lt;/b&gt; transgui provides more functions than the web interface&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
From the &lt;i&gt;readme.txt&lt;/i&gt;:&lt;br /&gt;
&lt;div style="text-align: justify;"&gt; "Transmission Remote GUI is feature rich cross platform front-end to remotely control Transmission daemon via its RPC protocol. It is faster and has more functionality than build-in Transmission web interface.&lt;br /&gt;
&lt;/div&gt;Transmission Remote GUI is developed using Lazarus RAD and Free Pascal compiler.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Features:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Native application for Windows and Linux (GTK2)&lt;/li&gt;
&lt;li&gt;uTorrent-like interface&lt;/li&gt;
&lt;li&gt;Select files to download&lt;/li&gt;
&lt;li&gt;Choose files priority&lt;/li&gt;
&lt;li&gt;View details about connected peers&lt;/li&gt;
&lt;li&gt;Full information about each torrent&lt;/li&gt;
&lt;li&gt;Per torrent options&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;Project home:&lt;br /&gt;
&lt;a href="http://code.google.com/p/transmisson-remote-gui/"&gt;http://code.google.com/p/transmisson-remote-gui/&lt;/a&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-2557310154450649893?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2009/10/transmission-remote-gui.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_HXuKv2YS8fM/Ss4ynVKf0rI/AAAAAAAAANc/meU27mp61Lg/s72-c/Screenshot-Transmission+Remote+GUI.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-3583400190205624260</guid><pubDate>Sun, 04 Oct 2009 19:39:00 +0000</pubDate><atom:updated>2010-01-23T14:04:04.328+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">OSS</category><title>About graphical user interfaces (GUI) for file access</title><description>Not counting command line interface (CLI), there are 2 main graphical user interfaces (GUI) for file access:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li style="text-align: justify;"&gt;&lt;b&gt;"Explorer interface"&lt;/b&gt;: this is the common GUI and widely used in many operating systems, include Linux (fig. 1). User organizes his directory structure himself and has to remember where to find needed information. To take an operation over the desired file, at first user opens a program -- an "explorer", and then move through the directory to file, and at the end do the operation. This looks like CLI, but uses icons instead of commands.&lt;br /&gt;
&lt;/li&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://live.gnome.org/Nautilus/Screenshots?action=AttachFile&amp;amp;do=get&amp;amp;target=screenshot-spatial-mode.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://live.gnome.org/Nautilus/Screenshots?action=AttachFile&amp;amp;do=get&amp;amp;target=screenshot-spatial-mode.png" /&gt;&lt;/a&gt;   
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Fig. 1.&lt;/b&gt; GNOME File Manager (&lt;a href="http://live.gnome.org/Nautilus"&gt;Nautilus&lt;/a&gt;).        
&lt;/div&gt;
&lt;li style="text-align: justify;"&gt;More and more popular is getting, could be called, &lt;b&gt;"Content manager interface"&lt;/b&gt; (fig. 2). Here files and folders are classified and organized by its &lt;i&gt;content&lt;/i&gt; -- documents, sounds, images, or videos, etc. One or more softwares are used to gain access files. Examples of &lt;i&gt;Content manager interface&lt;/i&gt; could be music player on many mobile phones. User even don't know where the files are and how they are saved on the medium. By this GUI, he can do many operations over file/files -- copy, move, rename, remove, etc.&lt;/li&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://farm2.static.flickr.com/1264/1367290071_d4725ab408.jpg?v=0" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://farm2.static.flickr.com/1264/1367290071_d4725ab408.jpg?v=0" /&gt;&lt;/a&gt;     
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Fig. 2.&lt;/b&gt; S60 platform gallery application.         
&lt;/div&gt;
&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;Each GUI for file access has its own advantages and shortages. With &lt;i&gt;Explorer interface&lt;/i&gt;, user has full control over his files, but not without detriment. Remember that&amp;nbsp; ordinary people's memory is no limit. With the nowaday temp of information growing, I vote for the C&lt;i&gt;ontent manager interface&lt;/i&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-3583400190205624260?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2009/10/about-graphical-user-interfaces-gui-for.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-7934424727131502145</guid><pubDate>Fri, 02 Oct 2009 21:26:00 +0000</pubDate><atom:updated>2010-01-23T01:12:05.499+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Wireless</category><title>Exploring D-Link DIR-320 networks with Oleg's firmware or what are vlan0, vlan1, eth0, eth1, br0?</title><description>&lt;span style="font-family: arial; font-size: small; font-weight: bold;"&gt;What is the device?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div face="times new roman" style="text-align: justify;"&gt;&lt;div face="times new roman"&gt;&lt;span style="font-size: small;"&gt;It's a &lt;a href="http://www.blogger.com/www.dlink.com.au/Products.aspx?PID=367"&gt;D-Link&lt;/a&gt; wireless router (&lt;/span&gt;4MB flash, 32MB RAM and processor Broadcom 240 MHz)&lt;span style="font-size: small;"&gt; with almost the same configuration as &lt;a href="http://www.freewrt.org/trac/wiki/Documentation/Hardware/AsusWL500GP"&gt;ASUS WL500g Premium&lt;/a&gt;&lt;/span&gt; (8MB flash, 32MB RAM and processor Broadcom 266MHz), but costs much lower.&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman"&gt;&lt;a href="http://4.bp.blogspot.com/_HXuKv2YS8fM/SsUsMdO_jvI/AAAAAAAAANE/J_MLKCgK4sQ/s1600-h/DIR_320_A1_front_L.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5387761121736232690" src="http://4.bp.blogspot.com/_HXuKv2YS8fM/SsUsMdO_jvI/AAAAAAAAANE/J_MLKCgK4sQ/s400/DIR_320_A1_front_L.jpg" style="cursor: pointer; display: block; height: 255px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman" style="text-align: center;"&gt;Fig. 1. The front of D-Link DIR-320&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman"&gt;&lt;a href="http://3.bp.blogspot.com/_HXuKv2YS8fM/SsUsbs0VJTI/AAAAAAAAANM/IQC0PseWarc/s1600-h/DIR_320_A1_back_02_L.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5387761383617406258" src="http://3.bp.blogspot.com/_HXuKv2YS8fM/SsUsbs0VJTI/AAAAAAAAANM/IQC0PseWarc/s400/DIR_320_A1_back_02_L.jpg" style="cursor: pointer; display: block; height: 275px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman" style="text-align: center;"&gt;Fig. 2. The  of D-Link DIR-320&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-family: arial; font-size: small; font-weight: bold;"&gt;Why do I need this wireless router?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div face="times new roman"&gt;&lt;span style="font-size: small;"&gt;Because I want to build a wireless home network with Internet connection (PPPoE) for laptop, netbook (HP 2133) and a telephone (Nokia E63), which supports Wi-Fi. I need the USB port for printing, and in the future ---scanning, USB harddisks, networked web camera, 3G or WiM modems etc.&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman" style="font-weight: bold;"&gt;&lt;span style="font-size: small;"&gt;What is the &lt;a href="http://oleg.wl500g.info/"&gt;Oleg's firmware&lt;/a&gt;?&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman" style="font-weight: bold;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman"&gt;&lt;span style="font-size: small;"&gt;It's Linux-based custom firmware for &lt;/span&gt;&lt;span style="font-size: small;"&gt;ASUS WL-500gx/WL-550gE/WL-500gp/WL-500W/WL-320gE/WL-320gP/WL-330gE/WL-500gp V2/WL-520gU. &lt;/span&gt;&lt;span style="font-size: small;"&gt;There isn't much thing to do with the manufacture's firmware.&lt;/span&gt;&lt;span style="font-size: small;"&gt; Instruction  of installation (flashing) of the Oleg's firmware on DIR-320 can be found &lt;a href="http://phanvinhthinh.blogspot.com/2009/10/reflashing-wireless-router-d-link-dir.html"&gt;in my blog&lt;/a&gt; (in English) or &lt;a href="http://wl500g.info/showthread.php?t=17641"&gt;wl500g.info&lt;/a&gt; (in Russia).&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: bold;"&gt;What are there inside the router with Oleg's firmware?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman"&gt;&lt;span style="font-size: small;"&gt;After flashing the device with Oleg's firmware, you can configure Internet connection, Wireless, etc by  web brower interface. Don't forget to turn on SSH server (dropbear). After that login and explore:&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman" style="font-family: courier new;"&gt;&lt;span style="font-size: small;"&gt;$ ifconfig&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style="font-family: courier new;"&gt;&lt;b&gt;br0&lt;/b&gt;       Link encap:Ethernet  &lt;b&gt;HWaddr 00:90:4C:C0:00:00&lt;/b&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX packets:1122700 errors:0 dropped:0 overruns:0 frame:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          TX packets:1113191 errors:0 dropped:0 overruns:0 carrier:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          collisions:0 txqueuelen:0 &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX bytes:367622803 (350.5 MiB)  TX bytes:586264798 (559.1 MiB)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;&lt;b&gt;eth0&lt;/b&gt;      Link encap:Ethernet  &lt;b&gt;HWaddr 00:90:4C:C0:00:00&lt;/b&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX packets:1393411 errors:0 dropped:0 overruns:0 frame:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          TX packets:1113648 errors:0 dropped:0 overruns:0 carrier:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          collisions:0 txqueuelen:1000 &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX bytes:935119976 (891.7 MiB)  TX bytes:655661617 (625.2 MiB)&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          Interrupt:4 Base address:0x1000 &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;&lt;b&gt;eth1&lt;/b&gt;      Link encap:Ethernet &lt;b&gt; HWaddr 00:90:4C:C1:00:00&lt;/b&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX packets:619887 errors:0 dropped:0 overruns:0 frame:19671&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          TX packets:683607 errors:122 dropped:0 overruns:0 carrier:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          collisions:0 txqueuelen:1000 &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX bytes:44888939 (42.8 MiB)  TX bytes:305171776 (291.0 MiB)&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          Interrupt:13 Base address:0x5000 &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;&lt;b&gt;lo&lt;/b&gt;        Link encap:Local Loopback  &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          inet addr:127.0.0.1  Mask:255.0.0.0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          UP LOOPBACK RUNNING MULTICAST  MTU:16436  Metric:1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX packets:40152 errors:0 dropped:0 overruns:0 frame:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          TX packets:40152 errors:0 dropped:0 overruns:0 carrier:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          collisions:0 txqueuelen:0 &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX bytes:3718052 (3.5 MiB)  TX bytes:3718052 (3.5 MiB)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;&lt;b&gt;ppp0&lt;/b&gt;      Link encap:Point-to-Point Protocol  &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          inet addr:93.88.141.40  P-t-P:93.88.128.253  Mask:255.255.255.255&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          UP POINTOPOINT RUNNING MULTICAST  MTU:1492  Metric:1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX packets:647631 errors:0 dropped:0 overruns:0 frame:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          TX packets:661658 errors:0 dropped:44 overruns:0 carrier:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          collisions:0 txqueuelen:3 &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX bytes:545701887 (520.4 MiB)  TX bytes:346044024 (330.0 MiB)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;&lt;b&gt;vlan0&lt;/b&gt;     Link encap:Ethernet  &lt;b&gt;HWaddr 00:90:4C:C0:00:00&lt;/b&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX packets:504058 errors:0 dropped:0 overruns:0 frame:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          TX packets:443975 errors:0 dropped:0 overruns:0 carrier:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          collisions:0 txqueuelen:0 &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX bytes:334078103 (318.6 MiB)  TX bytes:292107592 (278.5 MiB)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;&lt;b&gt;vlan1&lt;/b&gt;     Link encap:Ethernet &lt;b&gt; HWaddr 00:90:4C:C0:00:00&lt;/b&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          inet addr:10.13.5.65  Bcast:10.13.5.255  Mask:255.255.255.0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX packets:889353 errors:0 dropped:0 overruns:0 frame:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          TX packets:669673 errors:0 dropped:0 overruns:0 carrier:0&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          collisions:0 txqueuelen:0 &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: courier new;"&gt;          RX bytes:575960475 (549.2 MiB)  TX bytes:363554025 (346.7 MiB)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div face="times new roman"&gt;&lt;span style="font-size: small;"&gt;Physically the wireless router D-Link DIR-320 has a 2-port router and a 6-port switch. One port of the switch is connected to the router, another one is the WAN port. The other 4 ports of the switch are the LAN ports on the back of DIR-320. The remaining port of the router is connected to the WLAN adapter.&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman"&gt;&lt;span style="font-size: small;"&gt;Inside the switch exist two &lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Virtual_LAN"&gt;Virtual LAN&lt;/a&gt;s&lt;/i&gt; (VLans) --- vlan0 and vlan1. vlan0 contains ports 4 LAN ports (ports 1--4) and one router port (port 6). vlan1 contains WAN port (port 0 or "Internet Port" written on the back) and router port (port 6).&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div face="times new roman"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style="font-size: small;"&gt;There is a bridge (br0) bridging eth1 (WLAN) and eth0 (switch port 0). This bridge allows WLAN and LAN to share the same IP address. When the router needs to send information to clients, it broadcasts out br0 (to eth1 and vlan0). When we need to send information to Internet (WAN), router send directly to vlan1.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ brctl showmacs br0&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;port no&amp;nbsp;&amp;nbsp; &amp;nbsp;mac addr&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;is local?&amp;nbsp;&amp;nbsp; &amp;nbsp;ageing timer&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; &amp;nbsp;00:1b:9e:7f:96:38&amp;nbsp;&amp;nbsp; &amp;nbsp;no&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0.77&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; &amp;nbsp;00:21:00:62:c1:86&amp;nbsp;&amp;nbsp; &amp;nbsp;no&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; &amp;nbsp;00:23:b4:ce:cd:4e&amp;nbsp;&amp;nbsp; &amp;nbsp;no&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 36.52&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; 1&amp;nbsp;&amp;nbsp; &amp;nbsp;00:90:4c:c0:00:00&amp;nbsp;&amp;nbsp; &amp;nbsp;yes&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&lt;br /&gt;
&amp;nbsp; 2&amp;nbsp;&amp;nbsp; &amp;nbsp;00:90:4c:c1:00:00&amp;nbsp;&amp;nbsp; &amp;nbsp;yes&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00&lt;/b&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; &amp;nbsp;02:90:4c:c1:00:00&amp;nbsp;&amp;nbsp; &amp;nbsp;no&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 29.23&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-7934424727131502145?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2009/10/exploring-d-link-dir-320-with-olegs_03.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_HXuKv2YS8fM/SsUsMdO_jvI/AAAAAAAAANE/J_MLKCgK4sQ/s72-c/DIR_320_A1_front_L.jpg" height="72" width="72" /><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-821588066847373914</guid><pubDate>Fri, 02 Oct 2009 20:24:00 +0000</pubDate><atom:updated>2010-01-23T01:12:05.501+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Wireless</category><title>Reflashing wireless router D-Link DIR-320 with Oleg's firmware</title><description>&lt;div style="text-align: left;"&gt;The procedure of reflashing Oleg's firmware on D-Link DIR-320:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Getting the latest firmware from &lt;a href="http://code.google.com/p/wl500g/downloads/list?can=2&amp;amp;q=wl-500gpv2"&gt;http://code.google.com/p/wl500g&lt;/a&gt; and rename it to firmware.bin.&lt;/li&gt;&lt;li&gt;Save it to c:\bin&lt;/li&gt;&lt;li&gt;In c:\bin create file flashing.cmd with the following content:&lt;br /&gt;&lt;/li&gt;&lt;span style="font-family:courier new;"&gt;@Echo Off&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;:BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ping -n 1 -w 1 192.168.0.1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;If errorlevel 1 Goto BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;If errorlevel 0 Goto FLASH&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Goto END&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;:FLASH&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Echo *** Start Flashing ****&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;tftp -i 192.168.0.1 put firmware.bin&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;:END&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;li&gt;Connect computer to the router by an Ethernet cable with the following LAN setting: IP address 192.168.0.2, netmask 255.255.255.0, no need to write gateway and DNS. Do not power on the router.&lt;br /&gt;&lt;/li&gt;&lt;/div&gt;&lt;li&gt;Run cmd, then change directory to c:\bin and run flashing.cmd&lt;br /&gt;&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;li&gt;Push and hold Reset while power on the router. When the LAN LED is blinking, you can release Reset button.&lt;br /&gt;&lt;/li&gt;&lt;/div&gt;&lt;li&gt;Wait while the reflashing process is running.&lt;br /&gt;&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;li&gt;When the status LED is on (after 1--2 minutes), we need to reset router's default settings. Push and hold Reset button untill status LED starts blinking. Release Reset. The router restarts and will be ready with new firmware.&lt;br /&gt;&lt;/li&gt;&lt;/div&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;After reflashing you need to change computers' WLAN or/and LAN adapters settings to get IP address and DNS automatically. Open a web browser and type http://192.168.1.1 to login the router with username &lt;span style="font-style: italic;"&gt;admin&lt;/span&gt;, password &lt;span style="font-style: italic;"&gt;admin&lt;/span&gt;. You can change username, password and other setting in this web browser interface.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Bash script for Linux users (instead of flashing.cmd):&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ping_router() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;result=1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;until [[ "$result" =  0 ]]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   ping -c 1 -W 1 -i 1 192.168.0.1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   result=$?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;done     &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ping_router&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo "*** Start Flashing **** "&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;tftp 192.168.0.1 -m binary -c put ./firmware.bin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if [[ "$?" =  0 ]]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    then echo "Firmware successfully loaded!";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-821588066847373914?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2009/10/reflashing-wireless-router-d-link-dir.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-5105105461978677864</guid><pubDate>Fri, 02 Oct 2009 06:50:00 +0000</pubDate><atom:updated>2010-01-23T01:17:47.494+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeNAS</category><category domain="http://www.blogger.com/atom/ns#">OSS</category><title>The usage of FreeNAS BitTorrent under a router</title><description>To use FreeNAS BitTorrent when NAS connected to Internet by a router, we must do some configurations.&lt;br /&gt;&lt;ol&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;For Downloading&lt;/span&gt;: We need DNS settings. Open FreeNAS web interface (&lt;a href="http://192.168.1.250/"&gt;http://192.168.1.250&lt;/a&gt;). Username is &lt;span style="font-style: italic;"&gt;admin&lt;/span&gt; and password is &lt;span style="font-style: italic;"&gt;freenas&lt;/span&gt; by default. Under &lt;span style="font-weight: bold;font-family:courier new;" &gt;System | General Setup&lt;/span&gt; we write IPv4 of DNS severs. In my case I wrote IP of the router --- 192.168.1.1&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HXuKv2YS8fM/SsWsQdtH9QI/AAAAAAAAANU/K00OatB8jtg/s1600-h/FreeNAS.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 225px;" src="http://4.bp.blogspot.com/_HXuKv2YS8fM/SsWsQdtH9QI/AAAAAAAAANU/K00OatB8jtg/s400/FreeNAS.png" alt="" id="BLOGGER_PHOTO_ID_5387901928070444290" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;For Uploading&lt;/span&gt;: Beside DNS we also need port settings.  FreeNAS BitTorrent uses default port &lt;span class="vexpl"&gt; 51413, which could be closed by router's Firewall. We need open it or in my case use an other opened port (31929). The port setting is under &lt;span style="font-weight: bold;font-family:courier new;" &gt;Services | BitTorrent&lt;/span&gt; (&lt;span style="font-family:courier new;"&gt;Peer Port&lt;/span&gt;). Don't forget to &lt;/span&gt;enable &lt;span style="font-family:courier new;"&gt;Port forwarding&lt;/span&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-5105105461978677864?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2009/10/usage-of-freenas-bittorrent-under.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_HXuKv2YS8fM/SsWsQdtH9QI/AAAAAAAAANU/K00OatB8jtg/s72-c/FreeNAS.png" height="72" width="72" /><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4671653795147985053.post-8779009297446841931</guid><pubDate>Fri, 02 Oct 2009 06:46:00 +0000</pubDate><atom:updated>2010-01-23T01:17:47.496+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeNAS</category><category domain="http://www.blogger.com/atom/ns#">OSS</category><title>Saving FreeNAS configuration on USB flash disks</title><description>When running FreeNAS from CD, you can save its configuration to an USB flash disk and restore from there when rebooting. To do this, all you need is connecting the USB flash disk&lt;span style="font-weight: bold;"&gt; before &lt;/span&gt;booting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4671653795147985053-8779009297446841931?l=phanvinhthinh.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://phanvinhthinh.blogspot.com/2009/10/saving-freenas-configuration-on-usb.html</link><author>noreply@blogger.com (Phan Vinh Thinh)</author><thr:total>0</thr:total></item></channel></rss>

