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

<channel>
	<title>windwild</title>
	<atom:link href="http://windwild.net/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://windwild.net/blog</link>
	<description>windwild 高嘉阳的博客</description>
	<lastBuildDate>Tue, 27 Mar 2012 07:45:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>moodle local plugin 开发小记</title>
		<link>http://windwild.net/blog/?p=100</link>
		<comments>http://windwild.net/blog/?p=100#comments</comments>
		<pubDate>Tue, 27 Mar 2012 07:45:10 +0000</pubDate>
		<dc:creator>windwild</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://windwild.net/blog/?p=100</guid>
		<description><![CDATA[这次开发主要要实现的功能是：
	<li>对课程的活跃度进行统计</li>
	<li>对课程根据活跃度进行排名</li>
	<li>统计课程中最活跃的用户</li>
	<li>等等</li>

添加一个local plugin的几个文件
	<li>index.php</li>
	<li>version.php</li>
	<li>lang</li>
	<li>renderer.php</li>

遇到的困难
	<li>插件不能安装——修改程序目录修正</li>
	<li>不能get_renderer——更改renderer的名字 前缀加上local后搞定</li>

一个比较恶心的SQL
<pre lang='SQL'>
SELECT c.id AS id, c.fullname, u.username, u.firstname, u.lastname, u.email
FROM mdl_role_assignments ra, mdl_user u, mdl_course c, mdl_context cxt
WHERE ra.userid = u.id
AND ra.contextid = cxt.id
AND cxt.contextlevel =50
AND cxt.instanceid = c.id
AND c.id = 2
AND (roleid =5 OR roleid=3)
</pre>]]></description>
			<content:encoded><![CDATA[<p>这次开发主要要实现的功能是：</p>
<li>对课程的活跃度进行统计</li>
<li>对课程根据活跃度进行排名</li>
<li>统计课程中最活跃的用户</li>
<li>等等</li>
<p>添加一个local plugin的几个文件</p>
<li>index.php</li>
<li>version.php</li>
<li>lang</li>
<li>renderer.php</li>
<p>遇到的困难</p>
<li>插件不能安装——修改程序目录修正</li>
<li>不能get_renderer——更改renderer的名字 前缀加上local后搞定</li>
<p>一个比较恶心的SQL</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p100code1'); return false;">View Code</a> SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1001"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code" id="p100code1"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> c<span style="color: #66cc66;">.</span>id <span style="color: #993333; font-weight: bold;">AS</span> id<span style="color: #66cc66;">,</span> c<span style="color: #66cc66;">.</span>fullname<span style="color: #66cc66;">,</span> u<span style="color: #66cc66;">.</span>username<span style="color: #66cc66;">,</span> u<span style="color: #66cc66;">.</span>firstname<span style="color: #66cc66;">,</span> u<span style="color: #66cc66;">.</span>lastname<span style="color: #66cc66;">,</span> u<span style="color: #66cc66;">.</span>email
<span style="color: #993333; font-weight: bold;">FROM</span> mdl_role_assignments ra<span style="color: #66cc66;">,</span> mdl_user u<span style="color: #66cc66;">,</span> mdl_course c<span style="color: #66cc66;">,</span> mdl_context cxt
<span style="color: #993333; font-weight: bold;">WHERE</span> ra<span style="color: #66cc66;">.</span>userid <span style="color: #66cc66;">=</span> u<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> ra<span style="color: #66cc66;">.</span>contextid <span style="color: #66cc66;">=</span> cxt<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> cxt<span style="color: #66cc66;">.</span>contextlevel <span style="color: #66cc66;">=</span><span style="color: #cc66cc;">50</span>
<span style="color: #993333; font-weight: bold;">AND</span> cxt<span style="color: #66cc66;">.</span>instanceid <span style="color: #66cc66;">=</span> c<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> c<span style="color: #66cc66;">.</span>id <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">2</span>
<span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>roleid <span style="color: #66cc66;">=</span><span style="color: #cc66cc;">5</span> <span style="color: #993333; font-weight: bold;">OR</span> roleid<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://windwild.net/blog/?feed=rss2&#038;p=100</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>linux 常见缩写的来源</title>
		<link>http://windwild.net/blog/?p=95</link>
		<comments>http://windwild.net/blog/?p=95#comments</comments>
		<pubDate>Thu, 01 Mar 2012 12:10:10 +0000</pubDate>
		<dc:creator>windwild</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[搜集]]></category>

		<guid isPermaLink="false">http://windwild.net/blog/?p=95</guid>
		<description><![CDATA[bin = BINaries 
/dev = DEVices 
/etc = ETCetera 
/lib = LIBrary 
/proc = PROCesses 
/sbin = Superuser BINaries 
/tmp = TeMPorary 
/usr = Unix Shared Resources 
/var = VARiable ?

FIFO = First In, First Out 
GRUB = GRand Unified Bootloader 
IFS = Internal Field Seperators 
LILO = LInux LOader 
MySQL = My是最初作者女儿的名字，SQL = Structured Query Language 
PHP = Personal Home Page Tools = PHP Hypertext Preprocessor 
PS = Prompt String 
Perl = "Pratical Extraction and Report Language" = "Pathologically Eclectic Rubbish Lister" 
Python 得名于电视剧Monty Python's Flying Circus <!--more-->
Tcl = Tool Command Language 
Tk = ToolKit 
VT = Video Terminal 
YaST = Yet Another Setup Tool 
apache = "a patchy" server 
apt = Advanced Packaging Tool 
ar = archiver 
as = assembler 
awk = "Aho Weiberger and Kernighan" 三个作者的姓的第一个字母 
bash = Bourne Again SHell 
bc = Basic (Better) Calculator 
bg = BackGround 
biff = 作者Heidi Stettner在U.C.Berkely养的一条狗,喜欢对邮递员汪汪叫。 
cal = CALendar 
cat = CATenate 
cd = Change Directory 
chgrp = CHange GRouP 
chmod = CHange MODe 
chown = CHange OWNer 
chsh = CHange SHell 
cmp = compare 
cobra = Common Object Request Broker Architecture 
comm = common 
cp = CoPy 
cpio = CoPy In and Out 
cpp = C Pre Processor 
cron = Chronos 希腊文时间 
cups = Common Unix Printing System 
cvs = Current Version System 
daemon = Disk And Execution MONitor 
dc = Desk Calculator 
dd = Disk Dump 
df = Disk Free 
diff = DIFFerence 
dmesg = diagnostic message 
du = Disk Usage 
ed = editor 
egrep = Extended GREP 
elf = Extensible Linking Format 
elm = ELectronic Mail 
emacs = Editor MACroS 
eval = EVALuate 
ex = EXtended 
exec = EXECute 
fd = file descriptors 
fg = ForeGround 
fgrep = Fixed GREP 
fmt = format 
fsck = File System ChecK 
fstab = FileSystem TABle 
fvwm = F*** Virtual Window Manager 
gawk = GNU AWK 
gpg = GNU Privacy Guard 
groff = GNU troff 
hal = Hardware Abstraction Layer 
joe = Joe's Own Editor 
ksh = Korn SHell 
lame = Lame Ain't an MP3 Encoder 
lex = LEXical analyser 
lisp = LISt Processing = Lots of Irritating Superfluous Parentheses 
ln = LiNk 
lpr = Line PRint 
ls = list 
lsof = LiSt Open Files 
m4 = Macro processor Version 4 
man = MANual pages 
mawk = Mike Brennan's AWK 
mc = Midnight Commander 
mkfs = MaKe FileSystem 
mknod = MaKe NODe 
motd = Message of The Day 
mozilla = MOsaic GodZILLa 
mtab = Mount TABle 
mv = MoVe 
nano = Nano's ANOther editor 
nawk = New AWK 
nl = Number of Lines 
nm = names 
nohup = No HangUP 
nroff = New ROFF 
od = Octal Dump 
passwd = PASSWorD 
pg = pager 
pico = PIne's message COmposition editor 
pine = "Program for Internet News &#038; Email" = "Pine is not Elm" 
ping = 拟声 又 = Packet InterNet Grouper 
pirntcap = PRINTer CAPability 
popd = POP Directory 
pr = pre 
printf = PRINT Formatted 
ps = Processes Status 
pty = pseudo tty 
pushd = PUSH Directory 
pwd = Print Working Directory 
rc = runcom = run command, rc还是plan9的shell 
rev = REVerse 
rm = ReMove 
rn = Read News 
roff = RunOFF 
rpm = RPM Package Manager = RedHat Package Manager 
rsh, rlogin, rvim中的r = Remote 
rxvt = ouR XVT 
seamoneky = 我 
sed = Stream EDitor 
seq = SEQuence 
shar = SHell ARchive 
slrn = S-Lang rn 
ssh = Secure SHell 
ssl = Secure Sockets Layer 
stty = Set TTY 
su = Substitute User 
svn = SubVersioN 
tar = Tape ARchive 
tcsh = TENEX C shell 
tee = T (T形水管接口) 
telnet = TEminaL over Network 
termcap = terminal capability 
terminfo = terminal information 
tex = τέχνη的缩写，希腊文art 
tr = traslate 
troff = Typesetter new ROFF 
tsort = Topological SORT 
tty = TeleTypewriter 
twm = Tom's Window Manager 
tz = TimeZone 
udev = Userspace DEV 
ulimit = User's LIMIT 
umask = User's MASK 
uniq = UNIQue 
vi = VIsual = Very Inconvenient 
vim = Vi IMproved 
wall = write all 
wc = Word Count 
wine = WINE Is Not an Emulator 
xargs = eXtended ARGuments 
xdm = X Display Manager 
xlfd = X Logical Font Description 
xmms = X Multimedia System 
xrdb = X Resources DataBase 
xwd = X Window Dump 
yacc = yet another compiler compiler]]></description>
			<content:encoded><![CDATA[<p>bin = BINaries<br />
/dev = DEVices<br />
/etc = ETCetera<br />
/lib = LIBrary<br />
/proc = PROCesses<br />
/sbin = Superuser BINaries<br />
/tmp = TeMPorary<br />
/usr = Unix Shared Resources<br />
/var = VARiable ?</p>
<p>FIFO = First In, First Out<br />
GRUB = GRand Unified Bootloader<br />
IFS = Internal Field Seperators<br />
LILO = LInux LOader<br />
MySQL = My是最初作者女儿的名字，SQL = Structured Query Language<br />
PHP = Personal Home Page Tools = PHP Hypertext Preprocessor<br />
PS = Prompt String<br />
Perl = “Pratical Extraction and Report Language” = “Pathologically Eclectic Rubbish Lister”<br />
Python 得名于电视剧Monty Python&#8217;s Flying Circus <span id="more-95"></span><br />
Tcl = Tool Command Language<br />
Tk = ToolKit<br />
VT = Video Terminal<br />
YaST = Yet Another Setup Tool<br />
apache = “a patchy” server<br />
apt = Advanced Packaging Tool<br />
ar = archiver<br />
as = assembler<br />
awk = “Aho Weiberger and Kernighan” 三个作者的姓的第一个字母<br />
bash = Bourne Again SHell<br />
bc = Basic (Better) Calculator<br />
bg = BackGround<br />
biff = 作者Heidi Stettner在U.C.Berkely养的一条狗,喜欢对邮递员汪汪叫。<br />
cal = CALendar<br />
cat = CATenate<br />
cd = Change Directory<br />
chgrp = CHange GRouP<br />
chmod = CHange MODe<br />
chown = CHange OWNer<br />
chsh = CHange SHell<br />
cmp = compare<br />
cobra = Common Object Request Broker Architecture<br />
comm = common<br />
cp = CoPy<br />
cpio = CoPy In and Out<br />
cpp = C Pre Processor<br />
cron = Chronos 希腊文时间<br />
cups = Common Unix Printing System<br />
cvs = Current Version System<br />
daemon = Disk And Execution MONitor<br />
dc = Desk Calculator<br />
dd = Disk Dump<br />
df = Disk Free<br />
diff = DIFFerence<br />
dmesg = diagnostic message<br />
du = Disk Usage<br />
ed = editor<br />
egrep = Extended GREP<br />
elf = Extensible Linking Format<br />
elm = ELectronic Mail<br />
emacs = Editor MACroS<br />
eval = EVALuate<br />
ex = EXtended<br />
exec = EXECute<br />
fd = file descriptors<br />
fg = ForeGround<br />
fgrep = Fixed GREP<br />
fmt = format<br />
fsck = File System ChecK<br />
fstab = FileSystem TABle<br />
fvwm = F*** Virtual Window Manager<br />
gawk = GNU AWK<br />
gpg = GNU Privacy Guard<br />
groff = GNU troff<br />
hal = Hardware Abstraction Layer<br />
joe = Joe&#8217;s Own Editor<br />
ksh = Korn SHell<br />
lame = Lame Ain&#8217;t an MP3 Encoder<br />
lex = LEXical analyser<br />
lisp = LISt Processing = Lots of Irritating Superfluous Parentheses<br />
ln = LiNk<br />
lpr = Line PRint<br />
ls = list<br />
lsof = LiSt Open Files<br />
m4 = Macro processor Version 4<br />
man = MANual pages<br />
mawk = Mike Brennan&#8217;s AWK<br />
mc = Midnight Commander<br />
mkfs = MaKe FileSystem<br />
mknod = MaKe NODe<br />
motd = Message of The Day<br />
mozilla = MOsaic GodZILLa<br />
mtab = Mount TABle<br />
mv = MoVe<br />
nano = Nano&#8217;s ANOther editor<br />
nawk = New AWK<br />
nl = Number of Lines<br />
nm = names<br />
nohup = No HangUP<br />
nroff = New ROFF<br />
od = Octal Dump<br />
passwd = PASSWorD<br />
pg = pager<br />
pico = PIne&#8217;s message COmposition editor<br />
pine = “Program for Internet News &#038; Email” = “Pine is not Elm”<br />
ping = 拟声 又 = Packet InterNet Grouper<br />
pirntcap = PRINTer CAPability<br />
popd = POP Directory<br />
pr = pre<br />
printf = PRINT Formatted<br />
ps = Processes Status<br />
pty = pseudo tty<br />
pushd = PUSH Directory<br />
pwd = Print Working Directory<br />
rc = runcom = run command, rc还是plan9的shell<br />
rev = REVerse<br />
rm = ReMove<br />
rn = Read News<br />
roff = RunOFF<br />
rpm = RPM Package Manager = RedHat Package Manager<br />
rsh, rlogin, rvim中的r = Remote<br />
rxvt = ouR XVT<br />
seamoneky = 我<br />
sed = Stream EDitor<br />
seq = SEQuence<br />
shar = SHell ARchive<br />
slrn = S-Lang rn<br />
ssh = Secure SHell<br />
ssl = Secure Sockets Layer<br />
stty = Set TTY<br />
su = Substitute User<br />
svn = SubVersioN<br />
tar = Tape ARchive<br />
tcsh = TENEX C shell<br />
tee = T (T形水管接口)<br />
telnet = TEminaL over Network<br />
termcap = terminal capability<br />
terminfo = terminal information<br />
tex = τέχνη的缩写，希腊文art<br />
tr = traslate<br />
troff = Typesetter new ROFF<br />
tsort = Topological SORT<br />
tty = TeleTypewriter<br />
twm = Tom&#8217;s Window Manager<br />
tz = TimeZone<br />
udev = Userspace DEV<br />
ulimit = User&#8217;s LIMIT<br />
umask = User&#8217;s MASK<br />
uniq = UNIQue<br />
vi = VIsual = Very Inconvenient<br />
vim = Vi IMproved<br />
wall = write all<br />
wc = Word Count<br />
wine = WINE Is Not an Emulator<br />
xargs = eXtended ARGuments<br />
xdm = X Display Manager<br />
xlfd = X Logical Font Description<br />
xmms = X Multimedia System<br />
xrdb = X Resources DataBase<br />
xwd = X Window Dump<br />
yacc = yet another compiler compiler</p>
]]></content:encoded>
			<wfw:commentRss>http://windwild.net/blog/?feed=rss2&#038;p=95</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>mac 配置ruby on rails 环境</title>
		<link>http://windwild.net/blog/?p=88</link>
		<comments>http://windwild.net/blog/?p=88#comments</comments>
		<pubDate>Sat, 25 Feb 2012 08:44:47 +0000</pubDate>
		<dc:creator>windwild</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://windwild.net/blog/?p=88</guid>
		<description><![CDATA[1、首先安装rvm 在bash中输入以下命令
<pre lang="shell">
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
</pre>

2、重启bash使配置生效
3、执行命令
<pre lang="shell">
rvm list known
</pre>

4、执行命令选择安装版本
<pre lang="shell">
rvm install 1.9.3
</pre>

5、执行命令 安装rails
<pre lang="shell">
rvm use 1.9.3
ruby -v
gem install rails
</pre>

2012.2.25测试结果]]></description>
			<content:encoded><![CDATA[<p>1、首先安装rvm 在bash中输入以下命令</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p88code2'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p882"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p88code2"><pre class="shell" style="font-family:monospace;">bash -s stable &lt; &lt;(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)</pre></td></tr></table></div>

<p>2、重启bash使配置生效<br />
3、执行命令</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p88code3'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p883"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p88code3"><pre class="shell" style="font-family:monospace;">rvm list known</pre></td></tr></table></div>

<p>4、执行命令选择安装版本</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p88code4'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p884"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p88code4"><pre class="shell" style="font-family:monospace;">rvm install 1.9.3</pre></td></tr></table></div>

<p>5、执行命令 安装rails</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p88code5'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p885"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p88code5"><pre class="shell" style="font-family:monospace;">rvm use 1.9.3
ruby -v
gem install rails</pre></td></tr></table></div>

<p>2012.2.25测试结果</p>
]]></content:encoded>
			<wfw:commentRss>http://windwild.net/blog/?feed=rss2&#038;p=88</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>这几天折腾服务器用到的命令</title>
		<link>http://windwild.net/blog/?p=74</link>
		<comments>http://windwild.net/blog/?p=74#comments</comments>
		<pubDate>Sat, 11 Feb 2012 13:06:13 +0000</pubDate>
		<dc:creator>windwild</dc:creator>
				<category><![CDATA[碎碎念]]></category>

		<guid isPermaLink="false">http://windwild.net/blog/?p=74</guid>
		<description><![CDATA[df 查看硬盘空间
du -sm 查看文件夹总大小

mount --bind souce target 把文件夹挂在过来 ftp虚拟用户的时候很方便]]></description>
			<content:encoded><![CDATA[<p>df 查看硬盘空间<br />
du -sm 查看文件夹总大小</p>
<p>mount &#8211;bind souce target 把文件夹挂在过来 ftp虚拟用户的时候很方便</p>
]]></content:encoded>
			<wfw:commentRss>http://windwild.net/blog/?feed=rss2&#038;p=74</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>当你想控制文件下载权限的时候该怎么整</title>
		<link>http://windwild.net/blog/?p=76</link>
		<comments>http://windwild.net/blog/?p=76#comments</comments>
		<pubDate>Sat, 11 Feb 2012 12:56:47 +0000</pubDate>
		<dc:creator>windwild</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://windwild.net/blog/?p=76</guid>
		<description><![CDATA[经常遇到这种问题 很多文件不希望所有人都能下载 只有获得权限的用户才能访问文件 这样文件可不必放在web目录下 文件可以放到任意的地方
php代码如下

<pre lang="php" line="1">
<?php
$file = 'monkey.gif';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
}
?>

</pre>]]></description>
			<content:encoded><![CDATA[<p>经常遇到这种问题 很多文件不希望所有人都能下载 只有获得权限的用户才能访问文件 这样文件可不必放在web目录下 文件可以放到任意的地方<br />
php代码如下</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p76code6'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p766"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code" id="p76code6"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'monkey.gif'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/file_exists"><span style="color: #990000;">file_exists</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Description: File Transfer'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Type: application/octet-stream'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Disposition: attachment; filename='</span><span style="color: #339933;">.</span><a href="http://www.php.net/basename"><span style="color: #990000;">basename</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Transfer-Encoding: binary'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Expires: 0'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Cache-Control: must-revalidate, post-check=0, pre-check=0'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Pragma: public'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Length: '</span> <span style="color: #339933;">.</span> <a href="http://www.php.net/filesize"><span style="color: #990000;">filesize</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.php.net/ob_clean"><span style="color: #990000;">ob_clean</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.php.net/flush"><span style="color: #990000;">flush</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <a href="http://www.php.net/readfile"><span style="color: #990000;">readfile</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://windwild.net/blog/?feed=rss2&#038;p=76</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>开源两个小东西</title>
		<link>http://windwild.net/blog/?p=70</link>
		<comments>http://windwild.net/blog/?p=70#comments</comments>
		<pubDate>Thu, 09 Feb 2012 09:27:55 +0000</pubDate>
		<dc:creator>windwild</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[搜集]]></category>
		<category><![CDATA[fotomen]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://windwild.net/blog/?p=70</guid>
		<description><![CDATA[facemash 熟悉的朋友应该都玩儿过我写的那个facemash 现在稍加改进 公布源码 
<a href="https://github.com/windwild/facemash_windwild" title="facemash on GitHub">facemash on GitHub</a>

还有一个是最近学习python的小实践
fotomen是一个很强大的摄影网站
网站上的照片超赞
写这个python把上边的照片爬取下来
<a href="https://github.com/windwild/Fotomen-downloader" title="fotomen downloader on GitHub">fotomen downloader on GitHub</a>]]></description>
			<content:encoded><![CDATA[<p>facemash 熟悉的朋友应该都玩儿过我写的那个facemash 现在稍加改进 公布源码<br />
<a href="https://github.com/windwild/facemash_windwild" title="facemash on GitHub">facemash on GitHub</a></p>
<p>还有一个是最近学习python的小实践<br />
fotomen是一个很强大的摄影网站<br />
网站上的照片超赞<br />
写这个python把上边的照片爬取下来<br />
<a href="https://github.com/windwild/Fotomen-downloader" title="fotomen downloader on GitHub">fotomen downloader on GitHub</a></p>
]]></content:encoded>
			<wfw:commentRss>http://windwild.net/blog/?feed=rss2&#038;p=70</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>在ssh断开时继续执行程序</title>
		<link>http://windwild.net/blog/?p=64</link>
		<comments>http://windwild.net/blog/?p=64#comments</comments>
		<pubDate>Wed, 25 Jan 2012 01:52:34 +0000</pubDate>
		<dc:creator>windwild</dc:creator>
				<category><![CDATA[碎碎念]]></category>

		<guid isPermaLink="false">http://windwild.net/blog/?p=64</guid>
		<description><![CDATA[记录一下吧

最近写了个爬去网站图片的python

家里的网木有时间了 每小时3块钱 不舍得花了 不过还有个无线网卡可以用 但是流量只有3G

恩 把脚本放到自己的windwild.net上跑就方便了么 把脚本放到服务器上 运行 发现断开ssh的时候 任务也终止了 这怎么搞 总不能一直连着吧 这样还是很浪费网和电

去google搜发现一个好用的工具 screen

主要作用就是能在ssh断开的时候继续执行任务 当你重新登录的时候显示原有任务的运行情况

主要工作流程就是 

用screen运行程序
screen python fotomen 

后台运行程序
c-a d
这是就可以断开ssh了

显示所有screen的程序
screen -ls 

回到某个窗口
screen -r XXXX

非常方便

更多内容可以参考一下页面
http://blog.csdn.net/wind19/article/details/4986458]]></description>
			<content:encoded><![CDATA[<p>记录一下吧</p>
<p>最近写了个爬去网站图片的python</p>
<p>家里的网木有时间了 每小时3块钱 不舍得花了 不过还有个无线网卡可以用 但是流量只有3G</p>
<p>恩 把脚本放到自己的windwild.net上跑就方便了么 把脚本放到服务器上 运行 发现断开ssh的时候 任务也终止了 这怎么搞 总不能一直连着吧 这样还是很浪费网和电</p>
<p>去google搜发现一个好用的工具 screen</p>
<p>主要作用就是能在ssh断开的时候继续执行任务 当你重新登录的时候显示原有任务的运行情况</p>
<p>主要工作流程就是 </p>
<p>用screen运行程序<br />
screen python fotomen </p>
<p>后台运行程序<br />
c-a d<br />
这是就可以断开ssh了</p>
<p>显示所有screen的程序<br />
screen -ls </p>
<p>回到某个窗口<br />
screen -r XXXX</p>
<p>非常方便</p>
<p>更多内容可以参考一下页面</p>
<p>http://blog.csdn.net/wind19/article/details/4986458</p>
]]></content:encoded>
			<wfw:commentRss>http://windwild.net/blog/?feed=rss2&#038;p=64</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新年工作总结</title>
		<link>http://windwild.net/blog/?p=59</link>
		<comments>http://windwild.net/blog/?p=59#comments</comments>
		<pubDate>Fri, 06 Jan 2012 00:12:36 +0000</pubDate>
		<dc:creator>windwild</dc:creator>
				<category><![CDATA[MacOS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[碎碎念]]></category>

		<guid isPermaLink="false">http://windwild.net/blog/?p=59</guid>
		<description><![CDATA[做了个iOS上的菜单
山寨了一个facemash
做了个Gtalk的聊天机器人


这三样东西技术含量都不高
iOS的程序呢 完全是按照head first的指导做的 移动开发的前景越来越大了
facemash呢 完全是因为爬到了很多人的照片才想起来做个这个的（工大网络管理员真是很多疏忽的地方 或者说是懒惰的地方）
Gtalk机器人也是无意间看到的一篇文章想起来的

iOS的我就不多说啦
facemash过一阵子 我觉得代码写的好看一点儿的时候就扔到github上去 这个网站真的带来了很大的PV 第一版一个小时pv4000 第二版 一天时间6000 当然 照片换一换的话 我觉得会更强力的 如果挂上广告的话 肯定会是一笔不小的收入呢。
Gtalk的机器人是先在<a href="http://bot.im/" title="机器人申请地址">机器人申请地址</a> 这儿申请的 然后创建一个php页面 每次有人和你的gtalk机器人说话 机器人就去将你跟它说话的内容post到这个页面去 你echo了什么 机器人就放回给你什么 这样做真心很方便呢 可以放很多常用的功能上去了 比如我的机器人可以方便的帮我算md5值 只要跟他说md5:文本内容 这样他就会返回给你文本内容的md4值了

好了 有机会再细说facemash吧
今天完善一下机器人吧 看个电影 应该接着做iOS的东西了吧 php用着真是太舒服了 不想用objective-c呀]]></description>
			<content:encoded><![CDATA[<p>做了个iOS上的菜单<br />
山寨了一个facemash<br />
做了个Gtalk的聊天机器人</p>
<p>这三样东西技术含量都不高<br />
iOS的程序呢 完全是按照head first的指导做的 移动开发的前景越来越大了<br />
facemash呢 完全是因为爬到了很多人的照片才想起来做个这个的（工大网络管理员真是很多疏忽的地方 或者说是懒惰的地方）<br />
Gtalk机器人也是无意间看到的一篇文章想起来的</p>
<p>iOS的我就不多说啦<br />
facemash过一阵子 我觉得代码写的好看一点儿的时候就扔到github上去 这个网站真的带来了很大的PV 第一版一个小时pv4000 第二版 一天时间6000 当然 照片换一换的话 我觉得会更强力的 如果挂上广告的话 肯定会是一笔不小的收入呢。<br />
Gtalk的机器人是先在<a href="http://bot.im/" title="机器人申请地址">机器人申请地址</a> 这儿申请的 然后创建一个php页面 每次有人和你的gtalk机器人说话 机器人就去将你跟它说话的内容post到这个页面去 你echo了什么 机器人就放回给你什么 这样做真心很方便呢 可以放很多常用的功能上去了 比如我的机器人可以方便的帮我算md5值 只要跟他说md5:文本内容 这样他就会返回给你文本内容的md4值了</p>
<p>好了 有机会再细说facemash吧<br />
今天完善一下机器人吧 看个电影 应该接着做iOS的东西了吧 php用着真是太舒服了 不想用objective-c呀</p>
]]></content:encoded>
			<wfw:commentRss>http://windwild.net/blog/?feed=rss2&#038;p=59</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>对苹果吐个槽</title>
		<link>http://windwild.net/blog/?p=53</link>
		<comments>http://windwild.net/blog/?p=53#comments</comments>
		<pubDate>Thu, 29 Dec 2011 10:25:46 +0000</pubDate>
		<dc:creator>windwild</dc:creator>
				<category><![CDATA[MacOS]]></category>

		<guid isPermaLink="false">http://windwild.net/blog/?p=53</guid>
		<description><![CDATA[下午尝试重新捡起objective-c 想开工之前吧xcode升级一下。。。结果。。。2B了

升级么 一直对苹果很自信 先去软件更新里看 没有 由于升级lion之后 这个xcode是从app store上一点一点脱下来的 那就应该去app store上看看update么 结果 还是没有 看着app store上的版本 再看看自己的about 哭了

最后搜了半天才发现 原来在应用程序里有一个install xcode的程序 一点 update出现了 开始更新了 终于。。。

不过再一想 这么设计也是对的 xcode这么庞大的东西 想一次塞进去还真不容易。。。

-----悲剧的分割线-----

悲剧又来了 执行完application的install xcode之后 悲剧。。。。 版本依然是4.1 完全没有升级 只是重新装了一遍 好吧。。。囧 移除install xcode之后 在app store上可以重新购买了 好吧 苹果你也恶心了]]></description>
			<content:encoded><![CDATA[<p>下午尝试重新捡起objective-c 想开工之前吧xcode升级一下。。。结果。。。2B了</p>
<p>升级么 一直对苹果很自信 先去软件更新里看 没有 由于升级lion之后 这个xcode是从app store上一点一点脱下来的 那就应该去app store上看看update么 结果 还是没有 看着app store上的版本 再看看自己的about 哭了</p>
<p>最后搜了半天才发现 原来在应用程序里有一个install xcode的程序 一点 update出现了 开始更新了 终于。。。</p>
<p>不过再一想 这么设计也是对的 xcode这么庞大的东西 想一次塞进去还真不容易。。。</p>
<p>&#8212;&#8211;悲剧的分割线&#8212;&#8211;</p>
<p>悲剧又来了 执行完application的install xcode之后 悲剧。。。。 版本依然是4.1 完全没有升级 只是重新装了一遍 好吧。。。囧 移除install xcode之后 在app store上可以重新购买了 好吧 苹果你也恶心了</p>
]]></content:encoded>
			<wfw:commentRss>http://windwild.net/blog/?feed=rss2&#038;p=53</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>python简单网页爬取</title>
		<link>http://windwild.net/blog/?p=49</link>
		<comments>http://windwild.net/blog/?p=49#comments</comments>
		<pubDate>Mon, 26 Dec 2011 09:47:52 +0000</pubDate>
		<dc:creator>windwild</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://windwild.net/blog/?p=49</guid>
		<description><![CDATA[http://www.cdgdc.edu.cn/zzlkzs/lq/viewksxx.jsp?zkzh=08214120100806 这个可以访问
我就想把数据爬下来吧
简单的一个小脚本 以后争取能增加 自动插入到数据库 准考证号智能分析

<code>
import sys, urllib2,time 

print "i am running \n"

url = 'http://www.cdgdc.edu.cn/zzlkzs/lq/viewksxx.jsp?zkzh='

zkzh = '08 214 1 20 10 08 06'
zkzh_year_2 = 8
zkzh_leibie_3 = 214
zkzh_leixing_1 = 1
zkzh_province_2 = 20
zkzh_kd_2 = 10
zkzh_kc_2 = 8
zkzh_sitenum_2 = 6
size = 8542


zkzh_kc_2 = 0
for i2 in range(1,99):
    zkzh_kc_2 += 1
    zkzh_sitenum_2 = 0
    for i1 in range(1,99):
        zkzh_sitenum_2 += 1
        time.sleep(0.5)
        zkzh = "%02d%03d%d%02d%02d%02d%02d" % (zkzh_year_2,zkzh_leibie_3,zkzh_leixing_1,zkzh_province_2,zkzh_kd_2,zkzh_kc_2,zkzh_sitenum_2)
        print zkzh
        wp_stream = urllib2.urlopen("%s%s" % (url,zkzh))
        content = wp_stream.read()
        if(len(content) == 8542):
            print "no info\n"
            break
        else:
            fp = open("c:\\dta\\%s.html" % (zkzh),"w+")
            fp.write(content)
            fp.close()
            print "success\n"
            
</code>]]></description>
			<content:encoded><![CDATA[<p>http://www.cdgdc.edu.cn/zzlkzs/lq/viewksxx.jsp?zkzh=08214120100806 这个可以访问<br />
我就想把数据爬下来吧<br />
简单的一个小脚本 以后争取能增加 自动插入到数据库 准考证号智能分析</p>
<p><code><br />
import sys, urllib2,time </p>
<p>print "i am running \n"</p>
<p>url = 'http://www.cdgdc.edu.cn/zzlkzs/lq/viewksxx.jsp?zkzh='</p>
<p>zkzh = '08 214 1 20 10 08 06'<br />
zkzh_year_2 = 8<br />
zkzh_leibie_3 = 214<br />
zkzh_leixing_1 = 1<br />
zkzh_province_2 = 20<br />
zkzh_kd_2 = 10<br />
zkzh_kc_2 = 8<br />
zkzh_sitenum_2 = 6<br />
size = 8542</p>
<p>zkzh_kc_2 = 0<br />
for i2 in range(1,99):<br />
    zkzh_kc_2 += 1<br />
    zkzh_sitenum_2 = 0<br />
    for i1 in range(1,99):<br />
        zkzh_sitenum_2 += 1<br />
        time.sleep(0.5)<br />
        zkzh = "%02d%03d%d%02d%02d%02d%02d" % (zkzh_year_2,zkzh_leibie_3,zkzh_leixing_1,zkzh_province_2,zkzh_kd_2,zkzh_kc_2,zkzh_sitenum_2)<br />
        print zkzh<br />
        wp_stream = urllib2.urlopen("%s%s" % (url,zkzh))<br />
        content = wp_stream.read()<br />
        if(len(content) == 8542):<br />
            print "no info\n"<br />
            break<br />
        else:<br />
            fp = open("c:\\dta\\%s.html" % (zkzh),"w+")<br />
            fp.write(content)<br />
            fp.close()<br />
            print "success\n"</p>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://windwild.net/blog/?feed=rss2&#038;p=49</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

