<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[逆风小径]]></title>
  <subtitle type="html"><![CDATA[www.nf-blog.cn 逆风- blog]]></subtitle>
  <id>http://www.nf-blog.cn/</id>
  <link rel="alternate" type="text/html" href="http://www.nf-blog.cn/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.nf-blog.cn/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2009-12-21T17:34:44+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[linux c笔记]]></title>
	  <author>
		 <name>zidane</name>
		 <uri>http://www.nf-blog.cn/</uri>
		 <email>3wjs@163.com</email>
	  </author>
	  <category term="" scheme="http://www.nf-blog.cn/default.asp?cateID=8" label="Technology" /> 
	  <updated>2009-12-21T17:34:44+08:00</updated>
	  <published>2009-12-21T17:34:44+08:00</published>
		  <summary type="html"><![CDATA[＃indent -kr -i8 main.c <br/>使用indent工具将代码格式化成内核分格，-kr选项表示K&amp;R风格，-i8表示缩进8个空格的长度。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nf-blog.cn/article.asp?id=191" /> 
	  <id>http://www.nf-blog.cn/default.asp?id=191</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[2009年哲思自由软件峰会]]></title>
	  <author>
		 <name>zidane</name>
		 <uri>http://www.nf-blog.cn/</uri>
		 <email>3wjs@163.com</email>
	  </author>
	  <category term="" scheme="http://www.nf-blog.cn/default.asp?cateID=9" label="Information" /> 
	  <updated>2009-10-21T22:37:11+08:00</updated>
	  <published>2009-10-21T22:37:11+08:00</published>
		  <summary type="html"><![CDATA[2009年哲思自由软件峰会－北京站－中国科学院研究生院 <br/>时间：2009年10月22日 星期四 19：00～21：30 <br/>地点：北京市 海淀区 中关村南一条三号 中国科学院研究生院 教学楼S201 <br/>地图： 会场地图 <br/>&nbsp;&nbsp;时间&nbsp;&nbsp;嘉宾&nbsp;&nbsp;演讲语言&nbsp;&nbsp;演讲内容&nbsp;&nbsp;<br/>18:30 － 19:00&nbsp;&nbsp;入场&nbsp;&nbsp;<br/>19：00 － 19：05&nbsp;&nbsp;中科院研究生院&nbsp;&nbsp;中文&nbsp;&nbsp;致欢迎词 <br/> <br/>19：05 － 19：30&nbsp;&nbsp;Akira Urushibata&nbsp;&nbsp;英文&nbsp;&nbsp;历史上最早的黑客 <br/>Akira Urushibata将中国古典哲学和自由软件、黑客（Hacker）结合起来，和大家一起探讨历史上最早的黑客。 <br/> <br/>19：30 － 20：10&nbsp;&nbsp;符庆明&nbsp;&nbsp;中文&nbsp;&nbsp;自由软件在新浪 <br/>讲述新浪网如何在其业务中应用自由软件，并从中受益。新浪网提供了大量的自由软件相关工作机会，欢迎技术精英加盟新浪网！ <br/> <br/>20：10 － 21：10&nbsp;&nbsp;Richard Stallman&nbsp;&nbsp;英文&nbsp;&nbsp;软件专利的危害 <br/>Richard Stallman讲述软件专利是如何阻碍软件开发的。软件专利指的是那些关于软件实现方法的专利，它限制了软件开发，以至于每一个软件设计的决策都有被诉讼的风险。在其他领域，专利通常限制的是厂商，但软件专利却限制到了每一位计算机用户。一些经济学研究也表明，软件专利会阻碍软件前进的步伐。 <br/> <br/>21：10 － 21：30&nbsp;&nbsp;提问和讨论时间&nbsp;&nbsp;<br/>通讯地址<br/> 北京市海淀区 <br/> <br/>&nbsp;&nbsp;<br/>手机<br/> 13*7180*96678 <br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nf-blog.cn/article.asp?id=190" /> 
	  <id>http://www.nf-blog.cn/default.asp?id=190</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[python 字符串逆序输出]]></title>
	  <author>
		 <name>zidane</name>
		 <uri>http://www.nf-blog.cn/</uri>
		 <email>3wjs@163.com</email>
	  </author>
	  <category term="" scheme="http://www.nf-blog.cn/default.asp?cateID=6" label="Programming" /> 
	  <updated>2009-10-18T18:21:54+08:00</updated>
	  <published>2009-10-18T18:21:54+08:00</published>
		  <summary type="html"><![CDATA[<div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.nf-blog.cn/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>#############################<br/># 字符串逆序输出 for python3.1&nbsp;&nbsp;by nf-blog.cn <br/>#############################<br/>#逆序输出 python3.1&nbsp;&nbsp;by nf-blog.cn<br/>def reversestr(str):<br/>&nbsp;&nbsp;&nbsp;&nbsp;restr=list(str)<br/>&nbsp;&nbsp;&nbsp;&nbsp;l=len(restr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;if((l%2)==0):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time=(l//2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;else:time=l//2+1&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;for i in range(0,time):<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restr[i],restr[-(i+1)]=restr[-(i+1)],restr[i]<br/>&nbsp;&nbsp;&nbsp;&nbsp;return restr<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>str=input(&#39;imput a string! &#39;)<br/>print(&#34;The new string is %s&nbsp;&nbsp;&#34; %reversestr(str))<br/><br/><br/><br/><br/><br/></div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nf-blog.cn/article.asp?id=189" /> 
	  <id>http://www.nf-blog.cn/default.asp?id=189</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[css完美底部固定div]]></title>
	  <author>
		 <name>zidane</name>
		 <uri>http://www.nf-blog.cn/</uri>
		 <email>3wjs@163.com</email>
	  </author>
	  <category term="" scheme="http://www.nf-blog.cn/default.asp?cateID=8" label="Technology" /> 
	  <updated>2009-09-28T23:05:40+08:00</updated>
	  <published>2009-09-28T23:05:40+08:00</published>
		  <summary type="html"><![CDATA[将层完美的控制在底部<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.nf-blog.cn/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>#footer {<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;position:fixed !important;<br/>&#160;&#160;&#160;&#160;&gt;position:absolute;<br/>&#160;&#160;&#160;&#160;bottom:0px;<br/>&#160;&#160;&#160;&#160;right:16px;<br/>&#160;&#160;&#160;&#160;width:100%;<br/>&#160;&#160;&#160;&#160;height:20px;<br/>&#160;&#160;&#160;&#160;text-align:center;<br/>&#160;&#160;&#160;&#160;z-index:2;<br/>&#160;&#160;&#160;&#160;overflow:hidden<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;}<br/></div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nf-blog.cn/article.asp?id=188" /> 
	  <id>http://www.nf-blog.cn/default.asp?id=188</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[中国网通天下]]></title>
	  <author>
		 <name>zidane</name>
		 <uri>http://www.nf-blog.cn/</uri>
		 <email>3wjs@163.com</email>
	  </author>
	  <category term="" scheme="http://www.nf-blog.cn/default.asp?cateID=5" label="Mood" /> 
	  <updated>2009-09-23T21:37:27+08:00</updated>
	  <published>2009-09-23T21:37:27+08:00</published>
		  <summary type="html"><![CDATA[记得那会儿，google.com被和谐的时候，我慌了。<br/>后来gmail被封了，我又慌了。<br/>刚才发现picasa也被封了，我很想淡定，但是我没有淡定住。<br/>真是苦了Google了，莫非真是钱没塞够？<br/><br/>相关部门真的应该反思一下了，大清朝为啥结束？<br/><br/>呜呼悲哉！<br/>畏其邪，而瞒天下，掩耳盗铃，效否？]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nf-blog.cn/article.asp?id=187" /> 
	  <id>http://www.nf-blog.cn/default.asp?id=187</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[我也快辛弃疾了]]></title>
	  <author>
		 <name>zidane</name>
		 <uri>http://www.nf-blog.cn/</uri>
		 <email>3wjs@163.com</email>
	  </author>
	  <category term="" scheme="http://www.nf-blog.cn/default.asp?cateID=5" label="Mood" /> 
	  <updated>2009-09-20T17:32:38+08:00</updated>
	  <published>2009-09-20T17:32:38+08:00</published>
		  <summary type="html"><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;越战时，传说那里又世界上最大最密的地雷阵，工兵们用自己的性命探出了一条条路，这些路是安全的，只要不越过雷池，就是安全的，虽然很窄。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;即便是这样一条道路，我也没有，我走早自己的快乐小路上，也会随时被炸伤，血顺着胳膊留下来，炸的久了，伤口就多了，只怪这些地雷到处都是，不知道什么时候一个不谨慎就碰到了，而且我绝对不是去碰到的，莫非这些不是地雷，地雷是不会自己爆炸的，哎！<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;风流总被雨打风吹去，怎见气吞万里如虎？&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;做人真是不能太乐观了，我现在整个人快辛弃疾了。也想醉里挑灯看剑，但是目前我也就尚能吃饭，手脚都活动不利落了。。。。是报应么？<br/><br/><br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;另外建国60年了！不管现在怎么样！毛主席，周总理!你们是好样的！！祝祖国生日快乐！！！]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nf-blog.cn/article.asp?id=186" /> 
	  <id>http://www.nf-blog.cn/default.asp?id=186</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[ [经典]LAMP Linux Apache MySQL PHP]]></title>
	  <author>
		 <name>zidane</name>
		 <uri>http://www.nf-blog.cn/</uri>
		 <email>3wjs@163.com</email>
	  </author>
	  <category term="" scheme="http://www.nf-blog.cn/default.asp?cateID=8" label="Technology" /> 
	  <updated>2009-09-04T19:48:12+08:00</updated>
	  <published>2009-09-04T19:48:12+08:00</published>
		  <summary type="html"><![CDATA[Build Web Interface to Database - LAMP Linux Apache MySQL PHP<br/>In this howto, we program a simple database application. It reads data from a database, then prints it on a web page. <br/><br/>Techniques teached here are used for building guestbooks, web shops, web forums and group calendars. <br/><br/>You only need to have Linux installed (Red Hat Linux 9 o&#114; Fedora Core 1, 2 o&#114; 3 preferred). During the tutorial, we install Apache web server, MySQL database and PHP scripting. Finally, we write a simple php database application. <br/><br/>(c) Tero Karvinen<br/><br/>Apache Web Server<br/>To install servers, you first have to become root. Using su - (with the dash) makes all commands work without typing paths.<br/><br/>su -<br/><br/>Install the actual web server program<br/><br/>yum install httpd<br/><br/><br/>If you don&#39;t have yum yet, read yum tutorial and install it. <br/><br/>Start web server, make it start automatically on boot<br/><br/>/etc/init.d/httpd start<br/>chkconfig httpd on<br/><br/><br/>Now your web server should be running. When you surf to <a href="http://localhost" target="_blank" rel="external">http://localhost</a>, you should see a test page. (Any browser works, such as firefox, links o&#114; konqueror.<br/><br/>mozilla <a href="http://localhost" target="_blank" rel="external">http://localhost</a><br/><br/>Localhost usually works even without hole in the firewall. If you do not see your test page right away, click shift-reload (ctrl-shift-R o&#114; shift-F5) to bypass cache. <br/><br/>Hide the testpage, so that your computer does not look like a punching bag for wannabe crackers<br/><br/>echo &#34;powered by linux&#34; &gt; /var/www/html/index.html<br/><br/>Make a hole into firewall to make your web server visible to others. (You can use setup instead of iptables if you want) <br/><br/>iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT<br/>iptables-save &gt; /etc/sysconfig/iptables <br/><br/>Check your ip number (it&#39;s not 127.0.0.1) <br/><br/>/sbin/ifconfig<br/><br/>and surf to that address, for example <a href="http://10.0.0.1." target="_blank" rel="external">http://10.0.0.1.</a> If you see your test page, congratulations, you just installed your web server! <br/><br/>Other servers in Linux are installed just like above: install the program, start it and make it start automatically, and make a hole in the firewall. <br/><br/>User homepages<br/>Web server content directory /var/www/html/ is not writable for normal users, and you don&#39;t want to edit web pages as root. That&#39;s why users cr&#101;ate homepages in /home/foo/public_html. Homepages are shown in <a href="http://localhost/~foo" target="_blank" rel="external">http://localhost/~foo</a><br/><br/>Allow users to cr&#101;ate homepages<br/>Edit web server configuration with your favourite text editor. Older systems have pico (from pine), newer ones have nano. For the foolishly brave, there is also vi. <br/><br/>nano /etc/httpd/conf/httpd.conf<br/><br/>Find the section about homepages by searching ctrl-W for public_html. If text seems mixed up, refresh the screen with ctrl-L. Comment out the line with UserDir disable and remove the comment char &#34;#&#34; from the line <br/><br/>UserDir public_html<br/><br/>Activate your changes by restarting the web server.<br/><br/>/etc/init.d/httpd restart<br/><br/>On some systems, you must explicitly allow usage of public_html directories, o&#114; attempt to use user homepages just gives &#34;403 Forbidden&#34;. To fix this, find the &lt;Directory /home/*/public_html&gt;, and uncomment all between that line line and &lt;/Directory&gt;, including the directory lines. Then restart apache as above.<br/><br/>Your users can now cr&#101;ate homepages.<br/><br/>Cr&#101;ate a homepage as a user<br/>If you are still root (if you have a # in your prompt), exit. <br/><br/>Cr&#101;ate a directory for homepages. Home directory, public_html and all directories under public_html must be executable (x) by all, so that web server can access files under them if it knows their name. Files must be readable by the web server. <br/><br/>cd $HOME<br/>mkdir public_html<br/>echo &#34;my homepage&#34; &gt; public_html/index.html<br/>chmod a+x $HOME $HOME/public_html<br/>chmod a+r $HOME/public_html/index.html<br/><br/><br/>Some newer distributions, such as Fedora Core 3, have SELinux (Security Enhanced Linux) installed by default. SELinux causes a 403 Forbidden even if other permissions are correct. To disable SELinux, choose: Main menu (Red Hat): System Settings: Security Level. Sel&#101;ct SELinux tab, and uncheck &#34;Enforce&#34; checkbox. Reload the page, and now it should show. <br/><br/>If you have many users (10+), automate this by putting public_html and index.html to /etc/skel and check default home dir permissions.<br/><br/>Browse to your home page. If your name is &#34;user&#34;, it is located in <a href="http://localhost/~user." target="_blank" rel="external">http://localhost/~user.</a> If you can see &#34;my homepage&#34;, you are now a happy owner of a homepage.<br/><br/>PHP scripting<br/>PHP is a powerfull scripting language with a C++ like syntax, many readymade classes, good examples and great documentation. <br/><br/>Install PHP scripting<br/>yum install php<br/><br/>Because php is a module, you must restart a web server to load it.<br/><br/>/etc/init.d/httpd restart<br/><br/>Hello PHP World<br/>As a normal user, write a sample php page<br/><br/>cd $HOME/public_html<br/>pico hello.php<br/><br/><br/>Write this sample code to hello.php<br/><br/>&lt;?php echo &#34;Hello PHP World, 2+2 is &#34; . (2+2); ?&gt;<br/>Text outside code block is printed normally to web page. <br/><br/>Usually there is a normal html web page outside the &lt;?php code ?&gt;.<br/><br/>Browse to <a href="http://localhost" target="_blank" rel="external">http://localhost</a>/~user/hello.php. Put your own login name instead of user. If you see &#34;Hello PHP World, 2+2 is 4&#34;, you have installed php and written your first program.<br/><br/>MySQL database<br/>Install mysqld just like any server, but don&#39;t make a hole for it in the firewall. It is only used locally by Apache.<br/><br/>yum install mysql-server mysql<br/>/etc/init.d/mysqld start<br/>chkconfig mysqld on<br/><br/><br/>Try your new SQL server<br/><br/>mysqlshow<br/><br/>+-----------+<br/>| Databases |<br/>+-----------+<br/>| mysql&nbsp;&nbsp;&nbsp;&nbsp; |<br/>| test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br/>+-----------+<br/>Two databases. mysql contains database management system internal data, so don&#39;t edit it. test is a safe sandbox to play with.<br/><br/>mysqlshow test<br/><br/>Database: test<br/>+--------+<br/>| Tables |<br/>+--------+<br/>+--------+<br/>If for some reason you do not have database test, Cr&#101;ate DATABASE test; and then USE test;<br/><br/>No tables in database test yet. Let&#39;s Cr&#101;ate some. <br/><br/>mysql<br/><br/>On the prompt mysql&gt;, you can type mysql commands (USE, SHOW) o&#114; sql queries (Cr&#101;ate, Ins&#101;rt, Sel&#101;ct). <br/><br/>USE test;<br/>SHOW tables;<br/>Cr&#101;ate TABLE persons( name VARCHAR(50), email VARCHAR(50) );<br/>SHOW tables;<br/>DESC persons;<br/>Ins&#101;rt INTO persons VALUES(&#39;Tero Karvinen&#39;, &#39;karvinen at-sign iki.fi&#39;);<br/>Sel&#101;ct * FROM persons;<br/>Ins&#101;rt INTO persons VALUES(&#39;Sample Person&#39;, &#39;recycle@nosuch.invalid&#39;);<br/>Sel&#101;ct * FROM persons;<br/>QUIT;<br/><br/><br/>After the two Ins&#101;rts, the last Sel&#101;ct should return a table with two records<br/><br/>+---------------+---------------------------+<br/>| name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br/>+---------------+---------------------------+<br/>| Tero Karvinen | karvinen &lt;at-sign&gt; iki.fi |<br/>| Sample Person | recycle@nosuch.invalid&nbsp;&nbsp;&nbsp;&nbsp;|<br/>+---------------+---------------------------+<br/>2 rows in set (0.01 sec)<br/>You have now installed a database management system, and you also know some SQL.<br/><br/>PHP program using MySQL database<br/>A database by itself is not very usefull - it needs a user interface. To cr&#101;ate a web interface to database, we use PHP scripting language. <br/><br/>yum install php-mysql<br/>/etc/init.d/httpd restart<br/><br/><br/>Let&#39;s write a simple program to display our database. Use pico $HOME/public_html/database.php to copy this script to a file<br/><br/><br/>PHP database example - <a href="http://iki.fi/karvinen." target="_blank" rel="external">http://iki.fi/karvinen.</a> &lt;br&gt;<br/>&lt;?php<br/>&nbsp;&nbsp;&nbsp;&nbsp;/* database.php - Use mysql database from php<br/>&nbsp;&nbsp;&nbsp;&nbsp; * (c) 200309 Tero.Karvinen &lt;at-sign&gt; iki.fi, adapted from php.net <br/>&nbsp;&nbsp;&nbsp;&nbsp; * See <a href="http://iki.fi/karvinen" target="_blank" rel="external">http://iki.fi/karvinen</a> Linux Apache MySQL PHP tutorial. */<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/* Connect to database */<br/>&nbsp;&nbsp;&nbsp;&nbsp;$link = mysql_connect(&#34;localhost&#34;, &#34;root&#34;, &#34;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&#114; die(&#34;Could not connect : &#34; . mysql_error());<br/>&nbsp;&nbsp;&nbsp;&nbsp;print &#34;Connected successfully&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;mysql_sel&#101;ct_db(&#34;test&#34;) o&#114; die(&#34;Could not sel&#101;ct database&#34;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/* Perform SQL query */<br/>&nbsp;&nbsp;&nbsp;&nbsp;$query = &#34;Sel&#101;ct * FROM persons&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$result = mysql_query($query)<br/>&#160;&#160;&#160;&#160;o&#114; die(&#34;Query failed : &#34; . mysql_error());<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/* Print results in HTML */<br/>&nbsp;&nbsp;&nbsp;&nbsp;print &#34;&lt;table&gt;\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print &#34;\t&lt;tr&gt;\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach ($line as $col_value) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print &#34;\t\t&lt;td&gt;$col_value&lt;/td&gt;\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print &#34;\t&lt;/tr&gt;\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;print &#34;&lt;/table&gt;\n&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;mysql_free_result($result);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/* Close connection */<br/>&nbsp;&nbsp;&nbsp;&nbsp;mysql_close($link);<br/>?&gt;<br/><br/>Browse to <a href="http://localhost" target="_blank" rel="external">http://localhost</a>/~user/database.php. Use your own login name instead of user. You should see:<br/><br/>PHP database example - <a href="http://iki.fi/karvinen." target="_blank" rel="external">http://iki.fi/karvinen.</a><br/>Connected successfully<br/>Tero Karvinen karvinen iki.fi<br/>Sample Person recycle@nosuch.invalid<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nf-blog.cn/article.asp?id=185" /> 
	  <id>http://www.nf-blog.cn/default.asp?id=185</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Linux 下 MYSql 基础]]></title>
	  <author>
		 <name>zidane</name>
		 <uri>http://www.nf-blog.cn/</uri>
		 <email>3wjs@163.com</email>
	  </author>
	  <category term="" scheme="http://www.nf-blog.cn/default.asp?cateID=8" label="Technology" /> 
	  <updated>2009-09-03T11:42:36+08:00</updated>
	  <published>2009-09-03T11:42:36+08:00</published>
		  <summary type="html"><![CDATA[1、下载MySQL的Linux安装文件 <br/>　　Linux下安装MySQL需要下面两个文件：<br/><br/>　　MySQL-server-5.1.7-0.i386.rpm<br/><br/>　　下载地址为：<a href="http://dev.mysql.com/downloads/mysql/5.1.html" target="_blank" rel="external">http://dev.mysql.com/downloads/mysql/5.1.html</a>，打开此网页，下拉网页找到“Linux x86 generic RPM (statically linked against glibc 2.2.5) downloads”项，找到“Server”和“Client programs”项，下载需要的上述两个rpm文件。 <br/><br/>　　2、Linux下安装MySQL<br/><br/>　　 rpm文件是Red Hat公司开发的软件安装包，rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是 –ivh ,其中i表示将安装指定的rmp软件包，V表示安装时的详细信息，h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。<br/><br/>　　 1）安装服务器端<br/><br/>　　 在有两个rmp文件的目录下运行如下命令：<br/><br/>　　 [root@test1 local]# rpm -ivh MySQL-server-5.1.7-0.i386.rpm MySQL-client-5.1.7-0.i386.rpm　　<br/><br/>显示如下信息。<br/><br/>warning: MySQL-server-5.1.7-0.i386.rpm<br/><br/>signature: NOKEY, key ID 5072e1f5<br/><br/>　　 Preparing...　　　　　　　########################################### [100%]<br/><br/>　　 1:MySQL-server　　　　　########################################### [100%]<br/><br/>　　　 。。。。。。（省略显示）<br/><br/>　　 /usr/bin/mysqladmin -u root password &#39;new-password&#39;<br/><br/>　　 /usr/bin/mysqladmin -u root -h test1 password &#39;new-password&#39;<br/><br/>　　　 。。。。。。（省略显示）<br/><br/>　　 Starting mysqld daemon with databases from /var/lib/mysql<br/><br/>　　如出现如上信息，服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开，如打开表示服务已经启动，安装成功。Mysql默认的端口是3306。<br/><br/>　　 [root@test1 local]# netstat -nat<br/><br/>　　 Active Internet connections (servers and established)<br/><br/>　　 Proto Recv-Q Send-Q Local Address　　　　　 Foreign Address　　　　 State　　　<br/><br/>　　 tcp　　0　　0 0.0.0.0:3306　　　　 0.0.0.0:*　　　　　 LISTEN　　　<br/><br/>　　 上面显示可以看出MySQL服务已经启动。<br/><br/>　　 2）安装客户端<br/><br/>　　 运行如下命令：<br/><br/>　　 [root@test1 local]# rpm -ivh MySQL-client-5.1.7-0.i386.rpm<br/><br/>　　 warning: MySQL-client-5.1.7-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5<br/><br/>　　 Preparing...　　　　########################################### [100%]<br/><br/>　　 1:MySQL-client　 ########################################### [100%]<br/><br/>　　 显示安装完毕。<br/><br/>　　 用下面的命令连接mysql,测试是否成功。<br/><br/>　 三、登录MySQL<br/><br/>　　 登录MySQL的命令是mysql， mysql 的使用语法如下：<br/><br/>　　 mysql [-u username] [-h host] [-p[password]] [dbname]<br/><br/>　　 username 与 password 分别是 MySQL 的用户名与密码，mysql的初始管理帐号是root，没有密码，注意：这个root用户不是Linux的系统用户。MySQL默认用户是root，由于初始没有密码，第一次进时只需键入mysql即可。<br/><br/>　　 [root@test1 local]# mysql<br/><br/>　　 Welcome to the MySQL monitor.　Commands end with ; o&#114; \g.<br/><br/>　　 Your MySQL connection id is 1 to server version: 4.0.16-standard<br/><br/>　　 Type &#39;help;&#39; o&#114; &#39;\h&#39; for help. Type &#39;\c&#39; to clear the buffer.<br/><br/>　　 mysql&gt;<br/><br/>　　 出现了“mysql&gt;”提示符，恭喜你，安装成功！<br/><br/>　　 增加了密码后的登录格式如下：<br/><br/>　　 mysql -u root -p<br/><br/>　　 Enter password: (输入密码)<br/><br/>　　其中-u后跟的是用户名，-p要求输入密码，回车后在输入密码处输入密码。<br/><br/>　　注意：这个mysql文件在/usr/bin目录下，与后面讲的启动文件/etc/init.d/mysql不是一个文件。<br/><br/>四、MySQL的几个重要目录<br/><br/>　　 MySQL安装完成后不象SQL Server默认安装在一个目录，它的数据库文件、配置文件和命令文件分别在不同的目录，了解这些目录非常重要，尤其对于Linux的初学者，因为 Linux本身的目录结构就比较复杂，如果搞不清楚MySQL的安装目录那就无从谈起深入学习。<br/><br/>　　 下面就介绍一下这几个目录。<br/><br/>　　 1、数据库目录 <br/><br/>　　 /var/lib/mysql/<br/><br/>　　 2、配置文件<br/><br/>　　 /usr/share/mysql（mysql.server命令及配置文件）<br/><br/>　　 3、相关命令<br/><br/>　　 /usr/bin(mysqladmin mysqldump等命令)<br/><br/>　　 4、启动脚本<br/><br/>　　 /etc/rc.d/init.d/（启动脚本文件mysql的目录）<br/><br/>　 五、修改登录密码<br/><br/>　　 MySQL默认没有密码，安装完毕增加密码的重要性是不言而喻的。<br/><br/>　　 1、命令<br/><br/>　　 usr/bin/mysqladmin -u root password &#39;new-password&#39;<br/><br/>　　 格式：mysqladmin -u用户名 -p旧密码 password 新密码<br/><br/>　　 2、例子<br/><br/>　　 例1：给root加个密码123456。<br/><br/>　　 键入以下命令 ：<br/><br/>　　 [root@test1 local]# /usr/bin/mysqladmin -u root password 123456<br/><br/>　　注：因为开始时root没有密码，所以-p旧密码一项就可以省略了。<br/><br/>　　 3、测试是否修改成功<br/><br/>　　 1）不用密码登录<br/><br/>　　 [root@test1 local]# mysql<br/><br/>　　 ERROR 1045: Access denied for user: &#39;root@localhost&#39; (Using password: NO)<br/><br/>　　 显示错误，说明密码已经修改。<br/><br/>　　 2）用修改后的密码登录<br/><br/>　　 [root@test1 local]# mysql -u root -p<br/><br/>　　 Enter password: (输入修改后的密码123456)<br/><br/>　　 Welcome to the MySQL monitor.　Commands end with ; o&#114; \g.<br/><br/>　　 Your MySQL connection id is 4 to server version: 4.0.16-standard<br/><br/>　　 Type &#39;help;&#39; o&#114; &#39;\h&#39; for help. Type &#39;\c&#39; to clear the buffer.<br/><br/>　　 mysql&gt;<br/><br/>　　 成功！<br/><br/>　　这是通过mysqladmin命令修改口令，也可通过修改库来更改口令。<br/><br/>　　 六、启动与停止<br/><br/>　　 1、启动<br/><br/>　　 MySQL安装完成后启动文件mysql在/etc/init.d目录下，在需要启动时运行下面命令即可。<br/><br/>　　 [root@test1 init.d]# /etc/init.d/mysql start<br/><br/>　　 2、停止<br/><br/>　　 /usr/bin/mysqladmin -u root -p shutdown<br/><br/>　　 3、自动启动<br/><br/>　　 1）察看mysql是否在自动启动列表中<br/><br/>　　 [root@test1 local]#　/sbin/chkconfig --list<br/><br/>　　 2）把MySQL添加到你系统的启动服务组里面去<br/><br/>　　 [root@test1 local]#　/sbin/chkconfig　–- add　mysql<br/><br/>　　 3）把MySQL从启动服务组里面删除。<br/><br/>　　 [root@test1 local]#　/sbin/chkconfig　–-del　mysql<br/><br/>七、更改MySQL目录<br/><br/>　　 MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步：<br/><br/>　　 1、home目录下建立data目录<br/><br/>　　 cd /home<br/><br/>　　 mkdir data<br/><br/>　　 2、把MySQL服务进程停掉：<br/><br/>　　 mysqladmin -u root -p shutdown <br/><br/>　　 3、把/var/lib/mysql整个目录移到/home/data<br/><br/>　　 mv /var/lib/mysql　/home/data/<br/><br/>　　 这样就把MySQL的数据文件移动到了/home/data/mysql下<br/><br/>　　 4、找到my.cnf配置文件<br/><br/>　　如果/etc/目录下没有my.cnf配置文件，请到/usr/share/mysql/下找到*.cnf文件，拷贝其中一个到/etc/并改名为my.cnf)中。命令如下：<br/><br/>　　 [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf　/etc/my.cnf<br/><br/>　　 5、编辑MySQL的配置文件/etc/my.cnf<br/><br/>　　为保证MySQL能够正常工作，需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为：/home/mysql/mysql.sock 。操作如下：<br/><br/>　　 vi　 my.cnf　　　 (用vi工具编辑my.cnf文件，找到下列数据修改之)<br/><br/>　　 # The MySQL server<br/><br/>　　　 [mysqld]<br/><br/>　　　 port　　　= 3306<br/><br/>　　　 #socket　 = /var/lib/mysql/mysql.sock（原内容，为了更稳妥用“#”注释此行）<br/><br/>　　　 socket　 = /home/data/mysql/mysql.sock　　　（加上此行）<br/><br/>　　 6、修改MySQL启动脚本/etc/rc.d/init.d/mysql<br/><br/>　　最后，需要修改MySQL启动脚本/etc/rc.d/init.d/mysql，把其中datadir=/var/lib/mysql一行中，等号右边的路径改成你现在的实际存放路径：home/data/mysql。<br/><br/>　　 [root@test1 etc]# vi　/etc/rc.d/init.d/mysql<br/><br/>　　 #datadir=/var/lib/mysql　　　　（注释此行）<br/><br/>　　 datadir=/home/data/mysql　　 （加上此行）<br/><br/>　　 7、重新启动MySQL服务<br/><br/>　　 /etc/rc.d/init.d/mysql　start<br/><br/>　　 或用reboot命令重启Linux<br/><br/>　　 如果工作正常移动就成功了，否则对照前面的7步再检查一下。<br/><br/>　　 八、MySQL的常用操作<br/><br/>　　 注意：MySQL中每个命令后都要以分号；结尾。<br/><br/>　　 1、显示数据库<br/><br/>　　 mysql&gt; show databases;<br/><br/>　　 +----------+<br/><br/>　　 | Database |<br/><br/>　　 +----------+<br/><br/>　　 | mysql　　|<br/><br/>　　 | test　　 |<br/><br/>　　 +----------+<br/><br/>　　 2 rows in set (0.04 sec)<br/><br/>　　 Mysql刚安装完有两个数据库：mysql和test。mysql库非常重要，它里面有MySQL的系统信息，我们改密码和新增用户，实际上就是用这个库中的相关表进行操作。<br/><br/>　　 2、显示数据库中的表<br/><br/>　　 mysql&gt; use mysql; （打开库，对每个库进行操作就要打开此库，类似于foxpro ）<br/><br/>　　 Database changed<br/><br/>　　 mysql&gt; show tables;<br/><br/>　　 +-----------------+<br/><br/>　　 | Tables_in_mysql |<br/><br/>　　 +-----------------+<br/><br/>　　 | columns_priv　　|<br/><br/>　　 | db　　　　　　　|<br/><br/>　　 | func　　　　　　|<br/><br/>　　 | host　　　　　　|<br/><br/>　　 | tables_priv　　 |<br/><br/>　　 | user　　　　　　|<br/><br/>　　 +-----------------+<br/><br/>　　 6 rows in set (0.01 sec)<br/><br/>　　 3、显示数据表的结构：<br/><br/>　　 describe 表名;<br/><br/>　　 4、显示表中的记录：<br/><br/>　　 sel&#101;ct * from 表名;<br/><br/>　　例如：显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。<br/><br/>　　 Sel&#101;ct * from user;<br/><br/>　　 5、建库：<br/><br/>　　 cr&#101;ate database 库名;<br/><br/>　　 例如：创建一个名字位aaa的库<br/><br/>　　 mysql&gt; cr&#101;ate databases aaa;<br/><br/>6、建表：<br/><br/>　　 use 库名；<br/><br/>　　 cr&#101;ate table 表名 (字段设定列表)；<br/><br/>　　例如：在刚创建的aaa库中建立表name,表中有id(序号，自动增长)，xm（姓名）,xb（性别）,csny（出身年月）四个字段<br/><br/>　　 use aaa;<br/><br/>　　 mysql&gt; cr&#101;ate table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);<br/><br/>　　 可以用describe命令察看刚建立的表结构。<br/><br/>　　 mysql&gt; describe name;<br/><br/>　　 +-------+---------+------+-----+---------+----------------+<br/><br/>　　 | Field | Type　　| Null | Key | Default | Extra　　　　　|<br/><br/>　　 +-------+---------+------+-----+---------+----------------+<br/><br/>　　 | id　　| int(3)　|　　　| PRI | NULL　　| auto_increment |<br/><br/>　　 | xm　　| char(8) | YES　|　　 | NULL　　|　　　　　　　　|<br/><br/>　　 | xb　　| char(2) | YES　|　　 | NULL　　|　　　　　　　　|<br/><br/>　　 | csny　| date　　| YES　|　　 | NULL　　|　　　　　　　　|<br/><br/>　　 +-------+---------+------+-----+---------+----------------+<br/><br/>　　 7、增加记录<br/><br/>　　 例如：增加几条相关纪录。<br/><br/>　　 mysql&gt; ins&#101;rt into name values(&#39;&#39;,&#39;张三&#39;,&#39;男&#39;,&#39;1971-10-01&#39;);<br/><br/>　　 mysql&gt; ins&#101;rt into name values(&#39;&#39;,&#39;白云&#39;,&#39;女&#39;,&#39;1972-05-20&#39;);<br/><br/>　　 可用sel&#101;ct命令来验证结果。<br/><br/>　　 mysql&gt; sel&#101;ct * from name;<br/><br/>　　 +----+------+------+------------+<br/><br/>　　 | id | xm　 | xb　 | csny　　　 |<br/><br/>　　 +----+------+------+------------+<br/><br/>　　 |　1 | 张三 | 男　 | 1971-10-01 |<br/><br/>　　 |　2 | 白云 | 女　 | 1972-05-20 |<br/><br/>　　 +----+------+------+------------+<br/><br/>　　 8、修改纪录<br/><br/>　　 例如：将张三的出生年月改为1971-01-10<br/><br/>　　 mysql&gt; up&#100;ate name set csny=&#39;1971-01-10&#39; wh&#101;re xm=&#39;张三&#39;;<br/><br/>　　 9、删除纪录<br/><br/>　　 例如：删除张三的纪录。<br/><br/>　　 mysql&gt; del&#101;te from name wh&#101;re xm=&#39;张三&#39;;<br/><br/>　　 10、删库和删表<br/><br/>　　 dro&#112; database 库名;<br/><br/>　　 dro&#112; table 表名；<br/><br/>　　 九、增加MySQL用户<br/><br/>　　 格式：grant sel&#101;ct on 数据库.* to 用户名@登录主机 identified by &#34;密码&#34;<br/><br/>例1、增加一个用户user_1密码为123，让他可以在任何主机上登录，并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL，然后键入以下命令：<br/><br/>　　 mysql&gt; grant sel&#101;ct,ins&#101;rt,up&#100;ate,del&#101;te on *.* to user_1@&#34;%&#34; Identified by &#34;123&#34;;<br/><br/>例1增加的用户是十分危险的，如果知道了user_1的密码，那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了，解决办法见例2。<br/><br/>　　例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录，并可以对数据库aaa进行查询、插入、修改、删除的操作（localhost指本地主机，即MySQL数据库所在的那台主机），这样用户即使用知道user_2的密码，他也无法从网上直接访问数据库，只能通过 MYSQL主机来操作aaa库。<br/><br/>　　 mysql&gt;grant sel&#101;ct,ins&#101;rt,up&#100;ate,del&#101;te on aaa.* to user_2@localhost identified by &#34;123&#34;;<br/><br/>　　 用新增的用户如果登录不了MySQL，在登录时用如下命令：<br/><br/>　　 mysql -u user_1 -p　-h 192.168.113.50　（-h后跟的是要登录主机的ip地址）<br/><br/>　　 十、备份与恢复<br/><br/>　　 1、备份<br/><br/>　　 例如：将上例创建的aaa库备份到文件back_aaa中<br/><br/>　　 [root@test1 root]# cd　/home/data/mysql　(进入到库目录，本例库已由val/lib/mysql转到/home/data/mysql，见上述第七部分内容)<br/><br/>　　 [root@test1 mysql]# mysqldump -u root -p --opt aaa &gt; back_aaa<br/><br/>　　 2、恢复<br/><br/>　　 [root@test mysql]# mysql <br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nf-blog.cn/article.asp?id=184" /> 
	  <id>http://www.nf-blog.cn/default.asp?id=184</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[【粗糙的工具】 复制一个文件N次]]></title>
	  <author>
		 <name>zidane</name>
		 <uri>http://www.nf-blog.cn/</uri>
		 <email>3wjs@163.com</email>
	  </author>
	  <category term="" scheme="http://www.nf-blog.cn/default.asp?cateID=6" label="Programming" /> 
	  <updated>2009-09-03T11:04:37+08:00</updated>
	  <published>2009-09-03T11:04:37+08:00</published>
		  <summary type="html"><![CDATA[临时帮同事写的测试脚本，很是粗糙，没有异常处理。。只是为了用把硬盘塞满，然后观察产品的反映<br/><br/>使用&nbsp;&nbsp;root #autocopy.py log.log /temp/log/log 100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//复制log.log 到/temp/log/log(1)……（100）&nbsp;&nbsp; 共100次<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.nf-blog.cn/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>#!/usr/bin/python<br/>#autocopy files N times&nbsp;&nbsp;&nbsp;&nbsp;by zidane<br/>import os,shutil,sys<br/>usage=&#34;autocp&nbsp;&nbsp;Sfilename Dfilename Times &#34;<br/><br/><br/>def copyfile(sfile, dfile,times ):<br/>&#160;&#160;&#160;&#160;for k in range(times):<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;dfn=dfile+str(k)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;shutil.copy(sfile,dfn)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;print &#34;%d / %d&#34; %( k, times)<br/>&#160;&#160;&#160;&#160;<br/><br/><br/>if __name__ == &#34;__main__&#34;:<br/>&nbsp;&nbsp;&nbsp;&nbsp;if len(sys.argv) &lt; 4:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print (usage)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.exit()<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;sfile=sys.argv[1]<br/>&nbsp;&nbsp;&nbsp;&nbsp;dfile=sys.argv[2]<br/>&nbsp;&nbsp;&nbsp;&nbsp;time=int(sys.argv[3])<br/>&nbsp;&nbsp;&nbsp;&nbsp;copyfile(sfile,dfile,time)<br/>&nbsp;&nbsp;&nbsp;&nbsp;print &#34;Ok! all done&#34;<br/><br/></div></div><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nf-blog.cn/article.asp?id=183" /> 
	  <id>http://www.nf-blog.cn/default.asp?id=183</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[写点啥吧]]></title>
	  <author>
		 <name>zidane</name>
		 <uri>http://www.nf-blog.cn/</uri>
		 <email>3wjs@163.com</email>
	  </author>
	  <category term="" scheme="http://www.nf-blog.cn/default.asp?cateID=5" label="Mood" /> 
	  <updated>2009-08-15T00:08:35+08:00</updated>
	  <published>2009-08-15T00:08:35+08:00</published>
		  <summary type="html"><![CDATA[不知不觉回北京一个月了，工作也快一个月了。<br/>工作找的挺顺利，各方面还算满意，同事也都不错，每周也有球踢。<br/>我该满意，恩 该满意。<br/>朋友们也都差不多找到工作了。只有个别还在奋斗。<br/><br/>今天看了一篇文章，感触颇多。<br/>我还不够努力，时间协调的还不好，书看的不够多，思考的不够深。<br/>这些就是我现在的所有问题。<br/>需要点时间慢慢整理，沉淀一下。<br/>困扰是现在越来越来没有方向感了。<br/>技术的，事业的。<br/>也许是我想要的太多，便有些好高骛远了。<br/>准备找条路往死里走，只是还没找到。<br/><br/>一句话革命尚未成功，仍需努力。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nf-blog.cn/article.asp?id=182" /> 
	  <id>http://www.nf-blog.cn/default.asp?id=182</id>
  </entry>	
		
</feed>
