??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲∧v久久久无码精品,99久久国产综合精品网成人影院,精品久久久久久久无码http://www.shnenglu.com/Onway/category/18208.html我是一只菜菜菜菜鸟...zh-cnMon, 28 Nov 2016 03:31:34 GMTMon, 28 Nov 2016 03:31:34 GMT60goldendict的有道词典扩展程序:(x)eyoudao-1.4http://www.shnenglu.com/Onway/archive/2016/02/15/212820.htmlOnwayOnwayMon, 15 Feb 2016 11:57:00 GMThttp://www.shnenglu.com/Onway/archive/2016/02/15/212820.htmlhttp://www.shnenglu.com/Onway/comments/212820.htmlhttp://www.shnenglu.com/Onway/archive/2016/02/15/212820.html#Feedback2http://www.shnenglu.com/Onway/comments/commentRss/212820.htmlhttp://www.shnenglu.com/Onway/services/trackbacks/212820.html一晃Nq过M?br />
windows的有道词兔R不知道升U到哪个版本了?/span>
linux的有道词典官方版本也出来了?/span>
goldendict已经1.5版本了?br />
博客上几个月前居然还有一条关于这个东西的评论?/span>
代码找回来试了一下居然还能跑Q有道的api和xml格式q是真是E_啊?br />
单修改了一下install脚本Q重写了READMEQ收到github了:(x)
https://github.com/Onway/eyoudao
?.3版本Q?/span>
http://www.shnenglu.com/Onway/archive/2012/10/22/193668.html


Onway 2016-02-15 19:57 发表评论
]]>
单的socks5代理E序QThisSockshttp://www.shnenglu.com/Onway/archive/2016/02/12/212809.htmlOnwayOnwayFri, 12 Feb 2016 09:50:00 GMThttp://www.shnenglu.com/Onway/archive/2016/02/12/212809.htmlhttp://www.shnenglu.com/Onway/comments/212809.htmlhttp://www.shnenglu.com/Onway/archive/2016/02/12/212809.html#Feedback0http://www.shnenglu.com/Onway/comments/commentRss/212809.htmlhttp://www.shnenglu.com/Onway/services/trackbacks/212809.html背景
前段旉在digitaloceanU了vps搭徏shadowsocksQ简单看了一下socks5协议Q决定自׃造一个小轮子玩玩?/span>
春节在家整理了一下代码,大神L?/span>
https://github.com/Onway/ThisSocks

功能
代码是c++Q在linuxZperfork+select实现的,目前的功能有Q?/span>
  • TCP代理
  • q程DNS
  • 用户验证
  • 数据加密

q程
开发调试的q程发现两点比较有意思:(x)
  1. 偶尔?x)收到RST的数据包Q查看代码日志,用tcpdump在两端抓包ƈ无发现异?/span>
  2. 讉K某些|站L?x)收到RST数据包造成无法讉K
对上q第二点加入了非常简单的数据加密后就解决了哈Qshadowsocks的加密应该就是这么用的吧?br />
~陷
功能上没有支持UDPQie和chrome览器似乎都不支持socks5Q只能先用着firefox了?/span>
在windows也用c#做了一个客L(fng)Q但无暇֏已经好久没更C?br />
其他
可能跟所用宽带有养I讉Kdigitalocean的时延超q?00msQ网站只能打开首页Q登录页面都加蝲不全Q慎用?/span>
前些天收到邮件说是vps出现量异常被关闭了Q还无法d理面Q用lantern也一直连不上?T_T)


Onway 2016-02-12 17:50 发表评论
]]>
栅格化道路渲?/title><link>http://www.shnenglu.com/Onway/archive/2015/07/19/211304.html</link><dc:creator>Onway</dc:creator><author>Onway</author><pubDate>Sun, 19 Jul 2015 05:31:00 GMT</pubDate><guid>http://www.shnenglu.com/Onway/archive/2015/07/19/211304.html</guid><wfw:comment>http://www.shnenglu.com/Onway/comments/211304.html</wfw:comment><comments>http://www.shnenglu.com/Onway/archive/2015/07/19/211304.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Onway/comments/commentRss/211304.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Onway/services/trackbacks/211304.html</trackback:ping><description><![CDATA[<span style="font-family: 微Y雅黑; widows: auto; font-size: 14pt; background-color: #ffffff;">需求:(x)</span> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">地图上Grid对象表示一?0*40的栅|除了l纬度以外,q有一个指标值如信号强度Q以及一个根据指标值确定的渲染颜色?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">Road对象是一条矢量道路,由多个经U度点组成?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">如果道\I过某个栅格Q则穿q栅格的那一段道\按栅格的颜色值画出来Q没有穿q栅格的其他道\部分Q用黑色渲染?/span></div> <br /> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">W一ơ做法:(x)</span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">寚w路进行预处理Q将道\上的各个点归cd其所属的栅格内?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">然后栅格内的点用线qv来?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">完成后一看地图,掉坑里面了?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">1Q一条道路穿q某个栅|栅格内可能只有一个点Q连不成U;</span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">2Q一条直UK路,只记录了开头和l尾Q中间穿q的栅格没点了</span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">后来惛_用补点的方式Q两个点过20c_补一?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">单试了一下,效果不好开始用W二U方?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div> <br /> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">W二ơ做法:(x)</span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">先将道\在空白bitmap上画出来Q颜色用黑色Q?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">再将栅格在另一I白的bitmap上画出来Q颜色用原本的栅格颜Ԍ</span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">Ҏ(gu)两张bitmapQ像素同时不?的就是相交像素,用栅格的像素颜色复制到道路的像素里面Q?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">效果杠杠的?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div> <br /> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">其他Ҏ(gu)Q?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">在讨论组里面说了以后Q发现另一U是预处理做?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 14pt;">判断两点之间跟栅格的怺Q将怺点记录到所在栅格里面,q比较适合后台?/span></div> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"></div> <br /> <div style="font-family: 微Y雅黑; widows: auto; background-color: #ffffff;"><span style="font-size: 18pt;">以后q是默默写博客吧Q?/span></div><img src ="http://www.shnenglu.com/Onway/aggbug/211304.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Onway/" target="_blank">Onway</a> 2015-07-19 13:31 <a href="http://www.shnenglu.com/Onway/archive/2015/07/19/211304.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Visual Studio扩展开发:(x)AutoProjectFileshttp://www.shnenglu.com/Onway/archive/2015/07/11/211228.htmlOnwayOnwaySat, 11 Jul 2015 11:39:00 GMThttp://www.shnenglu.com/Onway/archive/2015/07/11/211228.htmlhttp://www.shnenglu.com/Onway/comments/211228.htmlhttp://www.shnenglu.com/Onway/archive/2015/07/11/211228.html#Feedback0http://www.shnenglu.com/Onway/comments/commentRss/211228.htmlhttp://www.shnenglu.com/Onway/services/trackbacks/211228.html
说明
用于多h开发的目且在不提交项目文件的情况下,自动新增的源码文g加入到项目中或者将删除的文件从目中移除?br />https://github.com/Onway/AutoProjectFiles

使用
安装后在资源理器中右键目名称节点Q会(x)看到“自动更新目”?#8220;创徏快照...”两个选项? 
“创徏快照”是对目中指定的源码目录建立一份已有文件列表,以便后箋知道新增或者删除的文g? 
“自动更新目”之后Q将?x)对新增或删除文件更新至目Q同时刷新文件快照列表?br />
效果?br />



Onway 2015-07-11 19:39 发表评论
]]>
FtpWebRequesthttp://www.shnenglu.com/Onway/archive/2015/07/11/211226.htmlOnwayOnwaySat, 11 Jul 2015 07:38:00 GMThttp://www.shnenglu.com/Onway/archive/2015/07/11/211226.htmlhttp://www.shnenglu.com/Onway/comments/211226.htmlhttp://www.shnenglu.com/Onway/archive/2015/07/11/211226.html#Feedback0http://www.shnenglu.com/Onway/comments/commentRss/211226.htmlhttp://www.shnenglu.com/Onway/services/trackbacks/211226.html一Q简?/strong>
一个历史项目里面用了c# .net 2.0的FtpWebRequestq行文g上传Qftp server在各现场用的应该都是Filezilla?/span>
因业务发展,需要上传大文gQ?00M以上吧)Q某现场出C上传p|的情c?/span>

二,|络问题
最开始的代码里面q没有记录上传失败的具体原因Q或者说log记录没能准确定位问题?/span>
代码修改后还是没能准定位问题?/span>
但从log判断Q似乎是|络断开造成的?/span>
q想到可能现场网l不E_Q有瞬断情况?/span>

三,断点l传
听过断点l传Q在癑ֺ找了些代码,修改一下封装好嵌到目里面?/span>
当时只在|络畅通的情况下测试过Q代码也没还checkinQ发现场用户也试试?/span>
反馈q是不行?/span>
看log更加qL(fng)了,堆栈昄在FtpWebRequest.GetRequestStream.Close里面抛出来的异常?/span>
想不明白啊?/span>

四,重现烂网l?/strong>
去过现场出差的同事反应,现场的网l真的好烂?/span>
q想到怎么L拟一个烂|络出来?/span>
扑ֈ一个程序叫clumsyQ?/span>http://jagt.github.io/clumsy/
讄延时50msQ?0%的丢包率Q丫的那个异常堆栈重现出来了?/span>
异常信息如下Q?/span>
q应该说的,q接已经断开了,再关的话报错了?/span>
E序调试q去发现Q最早引发异常的是FtpWebRequest.GetRequestStream.WriteQ程序里面是有catchQ但只是记录了失败的位置偏移以便下次重传Q也没有去记录失败原因?/span>
当时close的调用是攑֜finally块里面的Q这个close引发的异常导致箋传没能l执行,log记录的堆栈也是从这里开始?/span>

五,重现了也没个屁用?/strong>
既然close不掉Q那q接蟩到FtpWebRequest.GetResponse.Close好了?/span>
q真不报异常了,GetResponseq接阻塞了Q一直塞到ftp server都超时断开了,q没q回?/span>
看了一下msdnQ说好的FtpWebRequest.Timeout咋的没生效呢QFtpWebRequest.ReadWriteTimeout可是好好的呢?/span>
google+stackoverflow也没扑ֈ解决Q倒是扑ֈ一些吐槽FtpWebRequest和Ftp库推荐的?/span>
莫非q真得换库或者直接调些ftp命oQ?/span>
同时stackoverflow发了W一个问题,我只想知道ؓ(f)什么不时也不q回Q因为我qGetResponse.Close都不调用q接开始下一ơ重传的话,?x)报另一个异常如下:(x)
不造是否英语太烂,或者是问题没到点子上,问题沉了?/span>

6Q似乎只能傻g
下班路上惛_Q出现异常的时候,一个close也不调用Q无论是否重新连接,因ؓ(f)|络已经不通了Qserver应该qhold住一个连接,把文仉住了?/span>
q应该就是上面异常的情况Q文件被锁了Q新q接没法操作这个文Ӟ看server logQ确实有q个cann't access file的记录?/span>
那很好,client出异怺Q等一个够长的时_{到server连接断开好了,close也就不管了?/span>
但想惌也太傻g啊,q得{到什么时候啊?/span>

7Q也彻底解决了Q反正可以交货了
试了一下filezilla clientQ有断点l传功能Q发现网l异常断开Q开始箋传连接开始之前,server那个q接M(x)很快断开?/span>
q又是怎么解析呢,不是说网l都不通了Qserver那个q接是怎么放掉的呢Q?/span>
google一下,stackoverflow上看到FtpWebRequest有个Abort函数Q说是断开一个异步请求?/span>
一试,我同步连接也能断开啊,|络异常Q啥都不closeQ直接abortQserver那个q接断了,很快也就可以重传了呢?/span>

8Q来都来?/strong>
q个abort做了什么鬼呢,想用wireshark抓个包看看,无奈不懂Q十来分钟连个filter都没写好?/span>
N?0%的丢包不够强(zhn),abortq是有数据逃出MQ?/span>
后来癑ֺ知道wireshark在windows下要做特D处理才能抓取本地数据包?/span>
无奈增加本机路由后filezilla serverq不上了Q最后下了个手机ftp server?/span>
发现abort也没什么特D的地方Q只是通知ftp释放控制q接和数据连接然后马上返回,q接能不能断掉就听天由命了?/span>
100%丢包率的时候,filezillaq真有连接会(x)锁死文g?/span>


Onway 2015-07-11 15:38 发表评论
]]>
python子进E时间限?/title><link>http://www.shnenglu.com/Onway/archive/2013/05/10/200173.html</link><dc:creator>Onway</dc:creator><author>Onway</author><pubDate>Fri, 10 May 2013 13:26:00 GMT</pubDate><guid>http://www.shnenglu.com/Onway/archive/2013/05/10/200173.html</guid><wfw:comment>http://www.shnenglu.com/Onway/comments/200173.html</wfw:comment><comments>http://www.shnenglu.com/Onway/archive/2013/05/10/200173.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Onway/comments/commentRss/200173.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Onway/services/trackbacks/200173.html</trackback:ping><description><![CDATA[<div>pythonE序里面需要执行一个系l命令程序,如果命o在限定时间之内结束,则pythonE序d其输出(如果有)q上返回,否则l止命oE序?/div><div>原本q个功能是用pȝ信号SIGALARM和python的异常解决的Q但q不能用在多U程的环境里。然后考虑用threading.Timerq行计时Q但q个计时是在一个单独线E进行的Q如何将时信息传给ȝE也是一个问题?br /></div><div>癑ֺ一下,用select可以解决需求:(x)</div><div><a >http://blog.163.com/yi_yixinyiyi/blog/static/136286889201152234648899/</a><br /></div><div>但selectq不完美Q当命oE序输出的内容多于管道容量的时候,select׃(x)q回Q如果此时命令程序再q入dQ则旉限制׃起作用了?/div><div><br />select.py:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">import</span> select<br /><span style="color: #0000FF; ">import</span> subprocess<br /><br />popen = subprocess.Popen(<span style="color: #800000; ">"</span><span style="color: #800000; ">./test.sh</span><span style="color: #800000; ">"</span>, stdout=subprocess.PIPE)<br />fs = select.select([popen.stdout], [], [], 3)<br /><span style="color: #0000FF; ">if</span> popen.stdout <span style="color: #0000FF; ">in</span> fs[0]:<br />    output = popen.stdout.read()<br />    <span style="color: #0000FF; ">print</span> len(output)<br /><span style="color: #0000FF; ">else</span>:<br />    <span style="color: #0000FF; ">print</span> <span style="color: #800000; ">"</span><span style="color: #800000; ">timeout</span><span style="color: #800000; ">"</span></div><br />test.sh:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">#</span><span style="color: #008000; ">!/bin/bash<br /><br /># a.txt contains 65536 characters</span><span style="color: #008000; "><br /></span>cat a.txt<br /><span style="color: #0000FF; ">sleep</span> <span style="color: #800000; ">10</span><br />cat a.txt</div></div><img src ="http://www.shnenglu.com/Onway/aggbug/200173.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Onway/" target="_blank">Onway</a> 2013-05-10 21:26 <a href="http://www.shnenglu.com/Onway/archive/2013/05/10/200173.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linuxq程资源在fork和execve前后的变?/title><link>http://www.shnenglu.com/Onway/archive/2013/05/10/200172.html</link><dc:creator>Onway</dc:creator><author>Onway</author><pubDate>Fri, 10 May 2013 12:21:00 GMT</pubDate><guid>http://www.shnenglu.com/Onway/archive/2013/05/10/200172.html</guid><wfw:comment>http://www.shnenglu.com/Onway/comments/200172.html</wfw:comment><comments>http://www.shnenglu.com/Onway/archive/2013/05/10/200172.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/Onway/comments/commentRss/200172.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Onway/services/trackbacks/200172.html</trackback:ping><description><![CDATA[<div></div><div>使用getrusage得到的资源统计的cd较多Q测试代码是仅针对ru_utime, ru_stime, ru_minflt三种cd的资源?br /></div><div>试环境QLinux kubuntu 3.2.0-38-generic-pae #61-Ubuntu SMP Tue Feb 19 12:39:51 UTC 2013 i686 i686 i386 GNU/Linux<br /></div><div>l论Q父q程fork得到的子q程的资源用被重置Q子q程使用execve之后的资源用不变?br /></div><div></div><div>parent.c:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include <stdio.h><br />#include <stdlib.h><br />#include <unistd.h><br />#include <sys/time.h><br />#include <sys/resource.h><br /><br /><span style="color: #0000FF; ">void</span><br />print_rusage(<span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">char</span> * where)<br />{<br />    <span style="color: #0000FF; ">struct</span> rusage used;<br />    getrusage(RUSAGE_SELF, &used);<br /><br />    printf("In %s:\n", where);<br />    printf("user cpu time: %ld(ms)\n",<br />            used.ru_utime.tv_sec * 1000 + used.ru_utime.tv_usec / 1000);<br />    printf("sys cpu time: %ld(ms)\n",<br />            used.ru_stime.tv_sec * 1000 + used.ru_stime.tv_usec / 1000);<br />    printf("soft page faults: %ld\n", used.ru_minflt);<br />    printf("\n");<br />}<br /><br /><span style="color: #0000FF; ">void</span><br />consume_rusage()<br />{<br />    <span style="color: #0000FF; ">int</span> i, j, k;<br />    <span style="color: #0000FF; ">char</span> * s = NULL;<br /><br />    <span style="color: #008000; ">/*</span><span style="color: #008000; "> about 3 seconds user cpu time </span><span style="color: #008000; ">*/</span><br />    <span style="color: #0000FF; ">for</span> (i = 0; i < 1000; ++i)<br />        <span style="color: #0000FF; ">for</span> (j = 0; j < 1000; ++j)<br />            <span style="color: #0000FF; ">for</span> (k = 0; k < 1000; ++k)<br />                i / (j + 1) * k;<br />    <br />    <span style="color: #008000; ">/*</span><span style="color: #008000; "> 1000 soft page faults </span><span style="color: #008000; ">*/</span><br />    k = 4096 * 1000;<br />    s = (<span style="color: #0000FF; ">char</span> *)malloc(k);<br />    <span style="color: #0000FF; ">for</span> (i = 0; i < k; ++i)<br />        s[i] = 'a';<br />}<br /><br /><span style="color: #0000FF; ">int</span><br />main(<span style="color: #0000FF; ">int</span> argc, <span style="color: #0000FF; ">char</span> *argv[])<br />{<br />    consume_rusage();<br />    print_rusage("parent process");<br /><br />    <span style="color: #0000FF; ">if</span> (fork() == 0) {<br />        print_rusage("child process, after fork");<br />        printf("consuming resource <img src="http://www.shnenglu.com/Images/dot.gif" alt="" />\n\n");<br />        consume_rusage();<br />        print_rusage("child process, before execve");<br />        printf("excl child program now <img src="http://www.shnenglu.com/Images/dot.gif" alt="" />\n\n");<br />        execl("./child", "./child", (<span style="color: #0000FF; ">void</span> *)0);<br />    }<br /><br />    wait(NULL);<br />    <span style="color: #0000FF; ">return</span> 0;<br />}</div><br />child.c:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include <stdio.h><br />#include <sys/time.h><br />#include <sys/resource.h><br /><br /><span style="color: #0000FF; ">void</span><br />print_rusage(<span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">char</span> * where)<br />{<br />    <span style="color: #0000FF; ">struct</span> rusage used;<br />    getrusage(RUSAGE_SELF, &used);<br /><br />    printf("In %s:\n", where);<br />    printf("user cpu time: %ld(ms)\n",<br />            used.ru_utime.tv_sec * 1000 + used.ru_utime.tv_usec / 1000);<br />    printf("sys cpu time: %ld(ms)\n",<br />            used.ru_stime.tv_sec * 1000 + used.ru_stime.tv_usec / 1000);<br />    printf("soft page faults: %ld\n", used.ru_minflt);<br />    printf("\n");<br />}<br /><br /><span style="color: #0000FF; ">int</span><br />main(<span style="color: #0000FF; ">int</span> argc, <span style="color: #0000FF; ">char</span> *argv[])<br />{<br />    print_rusage("child program");<br />    <span style="color: #0000FF; ">return</span> 0;<br />}   </div><br /><div>好久没写博客了,密码都快忘记了。写l自q记忆?/div><div></div></div><img src ="http://www.shnenglu.com/Onway/aggbug/200172.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Onway/" target="_blank">Onway</a> 2013-05-10 20:21 <a href="http://www.shnenglu.com/Onway/archive/2013/05/10/200172.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>goldendict有道扩展E序eyoudao 1.3http://www.shnenglu.com/Onway/archive/2012/10/22/193668.htmlOnwayOnwayMon, 22 Oct 2012 05:52:00 GMThttp://www.shnenglu.com/Onway/archive/2012/10/22/193668.htmlhttp://www.shnenglu.com/Onway/comments/193668.htmlhttp://www.shnenglu.com/Onway/archive/2012/10/22/193668.html#Feedback9http://www.shnenglu.com/Onway/comments/commentRss/193668.htmlhttp://www.shnenglu.com/Onway/services/trackbacks/193668.html aQ去掉了本地单词本功?
bQ增加了simple选项查词
cQdetail选项查词更新到有道词典的5.1.38.3211版本
dQ收录skyhacker的pyfanyiQ那是完全不一L(fng)界面风格Q?
下蝲Q?
https://sourceforge.net/projects/eyoudao/files/  阅读全文

Onway 2012-10-22 13:52 发表评论
]]>
ACM Online Judge: anoj_0.2.0单机试?/title><link>http://www.shnenglu.com/Onway/archive/2012/09/18/191086.html</link><dc:creator>Onway</dc:creator><author>Onway</author><pubDate>Tue, 18 Sep 2012 03:44:00 GMT</pubDate><guid>http://www.shnenglu.com/Onway/archive/2012/09/18/191086.html</guid><wfw:comment>http://www.shnenglu.com/Onway/comments/191086.html</wfw:comment><comments>http://www.shnenglu.com/Onway/archive/2012/09/18/191086.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Onway/comments/commentRss/191086.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Onway/services/trackbacks/191086.html</trackback:ping><description><![CDATA[<img src="http://www.shnenglu.com/images/cppblog_com/onway/091810_x3A_34_x3A_10.png" border="0" alt="" width="900" height="210" /><br /><img src="http://www.shnenglu.com/images/cppblog_com/onway/091810_x3A_34_x3A_41.png" border="0" alt="" width="900" height="236" /><br /><br /><br /><img src="http://www.shnenglu.com/images/cppblog_com/onway/091810_x3A_33_x3A_22.png" width="900" height="427" alt="" /><br /><br /><br /><span style="font-size: 14pt; ">我以己已l上传过0.1.0的了Q原来没有?/span><br /><br /><span style="font-size: 14pt; ">在原来那?#8220;<a href="http://www.shnenglu.com/Onway/archive/2012/08/20/187707.html">OnlineJudge监测E序</a>”的基上,d了后台守护进E和单机试|页?/span><br /><br /><span style="font-size: 14pt; ">信号处理和系l调用规则,依然不完善?/span><br /><span style="font-size: 14pt; ">依然没有使用chroot限制根目录,头文Ӟ动态库q些内容q是不会(x)限制?/span><br /><span style="font-size: 14pt; ">javaE序的内存统计,依然包含了虚拟机内存?/span><br /><br /><span style="font-size: 14pt; ">在SourceForge捣鼓了好几天了,q是不太熟?zhn)?/span><br /><span style="font-size: 14pt; ">下蝲地址Q?/span><a ><span style="font-size: 14pt; ">http://sourceforge.net/projects/anoj/files/</span><br /></a><span style="font-size: 14pt; ">安装包里有依赖,安装{说明?/span><br /><br /><span style="font-size: 14pt; ">Ua学习(fn)吧,跟HDOJ和POJ比,q差q着呢?/span><br /><span style="font-size: 14pt; ">如有Q博客留a或联paluohuai@126.com</span><img src ="http://www.shnenglu.com/Onway/aggbug/191086.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Onway/" target="_blank">Onway</a> 2012-09-18 11:44 <a href="http://www.shnenglu.com/Onway/archive/2012/09/18/191086.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OnlineJudge的监程?/title><link>http://www.shnenglu.com/Onway/archive/2012/08/20/187707.html</link><dc:creator>Onway</dc:creator><author>Onway</author><pubDate>Sun, 19 Aug 2012 16:35:00 GMT</pubDate><guid>http://www.shnenglu.com/Onway/archive/2012/08/20/187707.html</guid><wfw:comment>http://www.shnenglu.com/Onway/comments/187707.html</wfw:comment><comments>http://www.shnenglu.com/Onway/archive/2012/08/20/187707.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/Onway/comments/commentRss/187707.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Onway/services/trackbacks/187707.html</trackback:ping><description><![CDATA[     摘要: 3Q运行监程序:(x) <br>./a.out -t time -m memory -f fsize --basedir a_temp_working_directory --datadir input_answer_files_directory \ <br> --who user_and_group_ID --magic a_random_string --end java Main <br>解释Q?<br>-tQ时间限Ӟ单位ms <br>-mQ内存限Ӟ单位kb <br>-fQ输出限Ӟ单位kb <br>--basedirQ工作目?<br>--datadirQ存放输入和{案文g的目录,必须包含了ojdlck生成的data.conf文g <br>--whoQ运行用L(fng)序的用户ID和组IDQ徏议ؓ(f)pȝ的nobody用户 <br>--magicQ用于在工作目录产生输出的文件名 <br>--endQ标志所有的参数输入完毕Q接下来的参数都?x)视为用L(fng)序及其参?<br>例如Q?<br>./a.out -t 1000 -m 65536 -f 4096 --basedir /tmp --dat  <a href='http://www.shnenglu.com/Onway/archive/2012/08/20/187707.html'>阅读全文</a><img src ="http://www.shnenglu.com/Onway/aggbug/187707.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Onway/" target="_blank">Onway</a> 2012-08-20 00:35 <a href="http://www.shnenglu.com/Onway/archive/2012/08/20/187707.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>goldendict有道扩展E序1.2版本http://www.shnenglu.com/Onway/archive/2012/06/08/178053.htmlOnwayOnwayFri, 08 Jun 2012 03:11:00 GMThttp://www.shnenglu.com/Onway/archive/2012/06/08/178053.htmlhttp://www.shnenglu.com/Onway/comments/178053.htmlhttp://www.shnenglu.com/Onway/archive/2012/06/08/178053.html#Feedback14http://www.shnenglu.com/Onway/comments/commentRss/178053.htmlhttp://www.shnenglu.com/Onway/services/trackbacks/178053.html
更新说明Q?br />
    aQresult.xsl?lt;body>之后加入了两个html子元素?br />    bQclassify.txt分类支持I格
    cQ选择单词分类不再使用zenityQ而是直接在显C的|页中添加?br />    dQ单词本复习(fn)支持短语Q增加了两个模式Q背诉|式是选中的单词批量下载到一个文Ӟ复习(fn)模式是显C单词和释义Q不记入数据库?br />    eQ改变了安装方式Q不再从makefile文g~译Q而是预先拯预先的编译好的可执行文g。(了ubuntuQfedoraQcentos三个pȝQxsltE序使用的动态库都能在系l里扑ֈQ?br />
下蝲Q?br />/Files/Onway/eyoudao-1.2.tar.gz.rar

Onway 2012-06-08 11:11 发表评论
]]>
一些纠l的c代码http://www.shnenglu.com/Onway/archive/2012/05/28/176480.htmlOnwayOnwayMon, 28 May 2012 03:52:00 GMThttp://www.shnenglu.com/Onway/archive/2012/05/28/176480.htmlhttp://www.shnenglu.com/Onway/comments/176480.htmlhttp://www.shnenglu.com/Onway/archive/2012/05/28/176480.html#Feedback0http://www.shnenglu.com/Onway/comments/commentRss/176480.htmlhttp://www.shnenglu.com/Onway/services/trackbacks/176480.html摘自《c专家~程》,代码和答案都是基于gcc 4.6.1?2位linuxpȝ?
某些解释不够全面和正,如果是错误,h正?

1Q解释该声明的含义:(x)
char * const *(*next)();  阅读全文

Onway 2012-05-28 11:52 发表评论
]]>
goldendict的有道词典扩展程?.1更新E序http://www.shnenglu.com/Onway/archive/2012/03/20/168442.htmlOnwayOnwayTue, 20 Mar 2012 14:13:00 GMThttp://www.shnenglu.com/Onway/archive/2012/03/20/168442.htmlhttp://www.shnenglu.com/Onway/comments/168442.htmlhttp://www.shnenglu.com/Onway/archive/2012/03/20/168442.html#Feedback4http://www.shnenglu.com/Onway/comments/commentRss/168442.htmlhttp://www.shnenglu.com/Onway/services/trackbacks/168442.html
7Q附1.0?.1的更新说明:(x)
aQ单词本使用了sqlite3数据?/div>
bQ添加单词会(x)提示选择单词分类Q可从~/.eyoudao/classify.txtq行修改Q分cM能出现空根{?/div>
cQ?.0的单词本~/.eyoudao/wordsbook被废弃,在该目录下多了两个文件classify.txt和wordbook.db
dQ除了新d的两个文件之外,修改的只有eyoudao脚本Q另d了一个单词本复习(fn)脚本reviewQƈ被连接到/usr/bin目录?/div>
8Q单词本复习(fn)脚本使用说明
aQ复?fn)分Z个模式,听写模式Q只有发韻I没有单词和释义显C;默写模式Q只有释义显C,可自行用发?问答模式Q给出单词,选择是否记得释义?/div>
bQ选定模式之后Q是选择复习(fn)的单词,可按分类Q加入时_错误率三U或它们的组合进行选择?/div>
cQ复?fn)过E中Q非问答模式下,错误之后Q会(x)重新复习(fn)该单词,不会(x)写入数据库,除非自行选择跌该单词?/div>
dQ问{模式下Q选择忘记Q会(x)跌该单词,q写入数据库?/div>


Onway 2012-03-20 22:13 发表评论
]]>goldendict的网늉有道词典Q失败了Q?/title><link>http://www.shnenglu.com/Onway/archive/2012/03/17/168212.html</link><dc:creator>Onway</dc:creator><author>Onway</author><pubDate>Sat, 17 Mar 2012 09:38:00 GMT</pubDate><guid>http://www.shnenglu.com/Onway/archive/2012/03/17/168212.html</guid><wfw:comment>http://www.shnenglu.com/Onway/comments/168212.html</wfw:comment><comments>http://www.shnenglu.com/Onway/archive/2012/03/17/168212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Onway/comments/commentRss/168212.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Onway/services/trackbacks/168212.html</trackback:ping><description><![CDATA[其实在浏览器看到是正常的Q但是通过goldendict讉K׃行了Q主要表现是D条工作不正常Q不能隐藏,和页面底下出现的一大片I白。如图:(x)<br /><img alt="" src="http://www.shnenglu.com/images/cppblog_com/onway/031717_x3A_16_x3A_26.png" height="206" width="327" />  <img alt="" src="http://www.shnenglu.com/images/cppblog_com/onway/031717_x3A_16_x3A_44.png" height="282" width="430" /><br /><br /><img alt="" src="http://www.shnenglu.com/images/cppblog_com/onway/031717_x3A_11_x3A_15.png" height="297" width="492" /><br /><br /><br /><a href="/Files/Onway/eyoudao-web.tar.gz.rar">/Files/Onway/eyoudao-web.tar.gz.rar</a><br /><br /><br />gyd-server.c<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">sys</span><span style="color: #000000; ">/</span><span style="color: #000000; ">types.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br />#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">sys</span><span style="color: #000000; ">/</span><span style="color: #000000; ">socket.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br />#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">sys</span><span style="color: #000000; ">/</span><span style="color: #000000; ">stat.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br />#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">unistd.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br />#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br />#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">stdlib.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br />#include </span><span style="color: #000000; "><</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br />#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">arpa</span><span style="color: #000000; ">/</span><span style="color: #000000; ">inet.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br />#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">fcntl.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br />#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">pthread.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; "> PROT 10000</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; "> ADDRESS "127.0.0.1"</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; "> BACKLOG 20</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; "> BUFSIZE 4096</span><span style="color: #000000; "><br /><br /></span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    互斥量,用于各个U程的标准输?nbsp;   </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />pthread_mutex_t </span><span style="color: #0000FF; ">lock</span><span style="color: #000000; "> </span><span style="color: #000000; ">=</span><span style="color: #000000; "> PTHREAD_MUTEX_INITIALIZER;<br /></span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> clientinfo<br />{<br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> sockfd;    </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    客户端套接字    </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> sockno;    </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    客户端请求顺序号    </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />};<br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> create_server_socket();<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">*</span><span style="color: #000000; "> handle_request(</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">*</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> send_dynamic(</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> clientinfo</span><span style="color: #000000; ">*</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">);    </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    通过dynamic.bashq回的结?nbsp;   </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> send_static(</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> clientinfo</span><span style="color: #000000; ">*</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">);    </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    直接L件发?nbsp;   </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> print_msg(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">);            </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    标准输出    </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br /><br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "><br />main(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> argc,</span><span style="color: #0000FF; ">char</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">argv[])<br />{<br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> serverfd;<br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> count </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />    pthread_t ptid;<br />    </span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> clientinfo </span><span style="color: #000000; ">*</span><span style="color: #000000; ">cinfo;<br /><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    创徏监听套接?nbsp;   </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />    serverfd </span><span style="color: #000000; ">=</span><span style="color: #000000; "> create_server_socket();<br />    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (serverfd </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">) {<br />        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">main(): terminate\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />    }<br /><br />    </span><span style="color: #0000FF; ">while</span><span style="color: #000000; "> (</span><span style="color: #000000; ">1</span><span style="color: #000000; ">) {<br />        cinfo </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> clientinfo</span><span style="color: #000000; ">*</span><span style="color: #000000; ">) malloc (</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> clientinfo));<br />        cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockfd </span><span style="color: #000000; ">=</span><span style="color: #000000; "> accept(serverfd,NULL,NULL);<br />        cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockno </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">++</span><span style="color: #000000; ">count;<br />        pthread_create(</span><span style="color: #000000; ">&</span><span style="color: #000000; ">ptid,NULL,handle_request,(</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)cinfo);<br />    }<br /><br />    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />}<br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> <br />create_server_socket()<br />{<br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> tmpfd </span><span style="color: #000000; ">=</span><span style="color: #000000; "> socket(AF_INET,SOCK_STREAM,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">);<br />    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (tmpfd </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">) {<br />        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">create_server_socket(): socket error\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />    }<br /><br />    </span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> sockaddr_in svraddr;<br />    bzero(</span><span style="color: #000000; ">&</span><span style="color: #000000; ">svraddr,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(svraddr));<br />    svraddr.sin_family </span><span style="color: #000000; ">=</span><span style="color: #000000; "> AF_INET;<br />    svraddr.sin_port </span><span style="color: #000000; ">=</span><span style="color: #000000; "> htons(PROT);<br />    svraddr.sin_addr.s_addr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> inet_addr(ADDRESS);<br /><br />    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (bind(tmpfd,(</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> sockaddr</span><span style="color: #000000; ">*</span><span style="color: #000000; ">)</span><span style="color: #000000; ">&</span><span style="color: #000000; ">svraddr,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(svraddr)) </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">) {<br />        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">create_server_socket(): bind error\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />    }<br /><br />    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (listen(tmpfd,BACKLOG) </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">) {<br />        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">create_server_socket(): listen error\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />    }<br />    <br />    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> tmpfd;<br />}<br /><br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">*</span><span style="color: #000000; "><br />handle_request(</span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">info)<br />{<br />    </span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> clientinfo </span><span style="color: #000000; ">*</span><span style="color: #000000; ">cinfo </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> clientinfo</span><span style="color: #000000; ">*</span><span style="color: #000000; ">) info;<br />    </span><span style="color: #0000FF; ">char</span><span style="color: #000000; "> receive[BUFSIZE </span><span style="color: #000000; "><<</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">] </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">""</span><span style="color: #000000; ">;<br />    </span><span style="color: #0000FF; ">char</span><span style="color: #000000; "> method[BUFSIZE] </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">""</span><span style="color: #000000; ">,request[BUFSIZE] </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">""</span><span style="color: #000000; ">;<br />    </span><span style="color: #0000FF; ">char</span><span style="color: #000000; "> header[] </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">HTTP/1.1 200 OK\r\nconnection:close\r\n\r\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i;<br /><br />    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (recv(cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockfd,receive,BUFSIZE </span><span style="color: #000000; "><<</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">) </span><span style="color: #000000; "><</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">) {<br />        print_msg(cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockno,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">handle_request(): recv error</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> ( (</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">*</span><span style="color: #000000; ">) </span><span style="color: #000000; ">0</span><span style="color: #000000; ">);<br />    }<br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    回应报头    </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />    write(cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockfd,header,strlen(header));<br /><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    hҎ(gu)和参数的单检?nbsp;   </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />    sscanf(receive,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%s%s</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,method,request);<br />    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (strcmp(method,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">GET</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)) {<br />        print_msg(cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockno,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">handle_request(): method is not GET</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> ( (</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">*</span><span style="color: #000000; ">) </span><span style="color: #000000; ">0</span><span style="color: #000000; ">);<br />    }<br /><br />    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (strlen(request) </span><span style="color: #000000; "><</span><span style="color: #000000; "> </span><span style="color: #000000; ">8</span><span style="color: #000000; ">) {<br />        print_msg(cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockno,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">handle_request(): unknow request</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        </span><span style="color: #0000FF; ">goto</span><span style="color: #000000; "> end;<br />    }<br />    print_msg(cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockno,receive);<br /><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    hdynamic.bash    </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (strncmp(request,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/action?</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">8</span><span style="color: #000000; ">) </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">) {<br />        send_dynamic(cinfo,request);<br />        </span><span style="color: #0000FF; ">goto</span><span style="color: #000000; "> end;<br />    }<br />    send_static(cinfo,request);<br /><br />end:<br />    close(cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockfd);<br />    free(cinfo);<br />    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> ( (</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">*</span><span style="color: #000000; ">) </span><span style="color: #000000; ">0</span><span style="color: #000000; ">);<br />}<br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "><br />send_static(</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> clientinfo </span><span style="color: #000000; ">*</span><span style="color: #000000; ">cinfo,</span><span style="color: #0000FF; ">char</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">request)<br />{<br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> len </span><span style="color: #000000; ">=</span><span style="color: #000000; "> strlen(request);<br />    </span><span style="color: #0000FF; ">char</span><span style="color: #000000; "> path[</span><span style="color: #000000; ">1024</span><span style="color: #000000; ">],buf[BUFSIZE];<br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> fd,bytes;<br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    忽略开头的'/'W号    </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />    sscanf(request,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%*c%s</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,path);<br />    <br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    文gd    </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />    fd </span><span style="color: #000000; ">=</span><span style="color: #000000; "> open(path,O_RDONLY);<br />    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (fd </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">) {<br />        print_msg(cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockno,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">send_static(): open error</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />    }<br />    </span><span style="color: #0000FF; ">while</span><span style="color: #000000; "> ((bytes </span><span style="color: #000000; ">=</span><span style="color: #000000; "> read(fd,buf,</span><span style="color: #000000; ">4096</span><span style="color: #000000; ">)) </span><span style="color: #000000; ">></span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">) {<br />        write(cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockfd,buf,bytes);<br />    }<br />    close(fd);<br />    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />}<br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "><br />send_dynamic(</span><span style="color: #0000FF; ">struct</span><span style="color: #000000; "> clientinfo </span><span style="color: #000000; ">*</span><span style="color: #000000; ">cinfo,</span><span style="color: #0000FF; ">char</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">request)<br />{<br />    </span><span style="color: #0000FF; ">char</span><span style="color: #000000; "> cmd[BUFSIZE],arg[</span><span style="color: #000000; ">1024</span><span style="color: #000000; ">],line[BUFSIZE];<br />    FILE </span><span style="color: #000000; ">*</span><span style="color: #000000; ">fpin;<br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    忽略action?    </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />    sscanf(request,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%*[^?]%*c%s</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,arg);<br />    sprintf(cmd,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">./dynamic.bash \</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%</span><span style="color: #000000; ">s\</span><span style="color: #000000; ">""</span><span style="color: #000000; ">,arg);<br /><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; ">    从popenq回的FILE指针d内容发?nbsp;   </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> cnt </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> ((fpin </span><span style="color: #000000; ">=</span><span style="color: #000000; "> popen(cmd,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">r</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)) </span><span style="color: #000000; ">==</span><span style="color: #000000; "> NULL) {<br />        print_msg(cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockno,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">send_dynamic(): popen error</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />    }<br />    </span><span style="color: #0000FF; ">while</span><span style="color: #000000; "> (fgets(line,BUFSIZE,fpin) </span><span style="color: #000000; ">!=</span><span style="color: #000000; "> NULL) {<br />        write(cinfo</span><span style="color: #000000; ">-></span><span style="color: #000000; ">sockfd,line,strlen(line));<br />    }<br />    pclose(fpin);<br />    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />}<br /><br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; "><br />print_msg(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> no,</span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">char</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">msg)<br />{<br />    pthread_mutex_lock(</span><span style="color: #000000; ">&</span><span style="color: #0000FF; ">lock</span><span style="color: #000000; ">);<br />    printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">request: %d\n%s\n\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,no,msg);<br />    pthread_mutex_unlock(</span><span style="color: #000000; ">&</span><span style="color: #0000FF; ">lock</span><span style="color: #000000; ">);<br />}<br /></span></div><br />dynamic.bash<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#</span><span style="color: #000000; ">!/</span><span style="color: #000000; ">bin</span><span style="color: #000000; ">/</span><span style="color: #000000; ">bash<br /><br />xmldetail</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">http://dict.youdao.com/search?keyfrom=deskdict.main&xmlDetail=true&doctype=xml&xmlVersion=7.1&dogVersion=1.0&client=deskdict&appVer=5.0.32.4695&xslVer=3.0&q=</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />xsldetail</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">detail/result.xsl</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />xmlsimple</span><span style="color: #000000; ">=</span><span style="color: #000000; ">""</span><span style="color: #000000; "><br />xslsimple</span><span style="color: #000000; ">=</span><span style="color: #000000; ">""</span><span style="color: #000000; "><br /><br />check_in_book() {<br />    # 截断开头结I格Q将中间的连l空格换成一个空?br />    word</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">`echo $1 | sed 's/^\(%20\)\+//g' | sed 's/\(%20\)\+$//g' | sed 's/\(%20\)\+/ /g'`</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />    cut </span><span style="color: #000000; ">-</span><span style="color: #000000; ">d </span><span style="color: #000000; ">'</span><span style="color: #000000; ">;</span><span style="color: #000000; ">'</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">f </span><span style="color: #000000; ">1</span><span style="color: #000000; "> wordsbook </span><span style="color: #000000; ">|</span><span style="color: #000000; "> grep </span><span style="color: #000000; ">-</span><span style="color: #000000; ">q </span><span style="color: #000000; ">"</span><span style="color: #000000; ">^$word$</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />    [ $</span><span style="color: #000000; ">?</span><span style="color: #000000; "> </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; "> ] </span><span style="color: #000000; ">&&</span><span style="color: #000000; "> echo </span><span style="color: #000000; ">1</span><span style="color: #000000; "> </span><span style="color: #000000; ">||</span><span style="color: #000000; "> echo </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />}<br /><br />add_to_book() {<br />    word</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">`echo $1 | sed 's/^\(%20\)\+//g' | sed 's/\(%20\)\+$//g' | sed 's/\(%20\)\+/ /g'`</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />    t</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">`date +'%y-%m-%d %H:%M'`</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />    echo </span><span style="color: #000000; ">"</span><span style="color: #000000; ">$word;$t;</span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">>></span><span style="color: #000000; "> wordsbook<br />    echo </span><span style="color: #000000; ">1</span><span style="color: #000000; "><br />}<br /><br />send_response() {<br />    # $1为:(x)inbook</span><span style="color: #000000; ">=</span><span style="color: #000000; ">queryword或者detail</span><span style="color: #000000; ">=</span><span style="color: #000000; ">queryword{Ş?br />action</span><span style="color: #000000; ">=</span><span style="color: #000000; ">${</span><span style="color: #000000; ">1</span><span style="color: #000000; ">%=*</span><span style="color: #000000; ">}<br />target</span><span style="color: #000000; ">=</span><span style="color: #000000; ">${</span><span style="color: #000000; ">1</span><span style="color: #000000; ">#</span><span style="color: #000000; ">*=</span><span style="color: #000000; ">}<br /><br /></span><span style="color: #0000FF; ">case</span><span style="color: #000000; "> $action </span><span style="color: #0000FF; ">in</span><span style="color: #000000; "><br />    </span><span style="color: #000000; ">"</span><span style="color: #000000; ">inbook</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />        check_in_book </span><span style="color: #000000; ">"</span><span style="color: #000000; ">$target</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />        ;;<br />    </span><span style="color: #000000; ">"</span><span style="color: #000000; ">tobook</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />        add_to_book </span><span style="color: #000000; ">"</span><span style="color: #000000; ">$target</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />        ;;<br />    </span><span style="color: #000000; ">"</span><span style="color: #000000; ">detail</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />        .</span><span style="color: #000000; ">/</span><span style="color: #000000; ">xslt </span><span style="color: #000000; ">"</span><span style="color: #000000; ">-xmlapi</span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">$xmldetail</span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">-xslapi</span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">$xsldetail</span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">-keyword</span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">$target</span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">|</span><span style="color: #000000; "> sed </span><span style="color: #000000; ">'</span><span style="color: #000000; ">$d</span><span style="color: #000000; ">'</span><span style="color: #000000; "> <br />        ;;<br />    </span><span style="color: #000000; ">"</span><span style="color: #000000; ">simple</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />        ;;<br />    </span><span style="color: #000000; ">*</span><span style="color: #000000; ">)<br />        exit </span><span style="color: #000000; ">1</span><span style="color: #000000; "><br />        ;;<br />esac<br />}<br /><br />send_response </span><span style="color: #000000; ">"</span><span style="color: #000000; ">$1</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />exit </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br /></span></div><img src ="http://www.shnenglu.com/Onway/aggbug/168212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Onway/" target="_blank">Onway</a> 2012-03-17 17:38 <a href="http://www.shnenglu.com/Onway/archive/2012/03/17/168212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>goldendict的有道词典扩展程序第二版http://www.shnenglu.com/Onway/archive/2012/03/17/168134.htmlOnwayOnwayFri, 16 Mar 2012 17:04:00 GMThttp://www.shnenglu.com/Onway/archive/2012/03/17/168134.htmlhttp://www.shnenglu.com/Onway/comments/168134.htmlhttp://www.shnenglu.com/Onway/archive/2012/03/17/168134.html#Feedback3http://www.shnenglu.com/Onway/comments/commentRss/168134.htmlhttp://www.shnenglu.com/Onway/services/trackbacks/168134.html/Files/Onway/eyoudao-1.0.tar.gz.rarQ不是rar文gQ要删了rar后缀Q?br />依然期待各\牛的更攏V?br />



linux环境goldendict词典的有道扩展程序eyoudao 1.0使用说明
Q从W一版的youdaodict重新命名为eyoudaoQ版本ؓ(f)1.0Q基于windows有道词典?.0.32.4695版本Q?br />

一Q安装:(x)
1Q安装goldendict和两个函数库Qgoldendict版本可能要求1.0.1以上才能使用扩展E序Q:(x)
sudo apt-get install goldendict libxml2-dev libxslt1-dev

2Q然后eyoudao目录下:(x)
make
sudo make install

3Q最后打开goldendict词典Q菜单栏的编辑选项 -> Dictionaries -> 词典来源 -> Programs
d一栏:(x)
-    Html    eyoudao-detail    eyoudao -detail "%GDWORD%"


二,卸蝲:
1Q在/opt/eyoudao目录下执行:(x)
sudo make uninstall
卛_?br />2Q注意,?HOME目录下的.eyoudao隐藏文g夹不?x)被删除Q内含单词本wordsbook和一个(f)时查询文件query.tmp?br />

三,关于很多的bugsQ?br />1Q保存单词的时候,?x)导致goldendict在该单词前加上~后重新查询。这?x)媄响其他词典的使用?br />2Qeyoudao-simple没有做了。个?M的联通宽带,感觉速度q能接受?br />3Q查询单词出?sl尾的时候,看到q回的单词是错误的,无法d到单词本?br />其实q个错误在dict.youdao.com都是一L(fng)Q但what's和it'sq些没错?br />4Q如果还遇到各种的bugsQ莫要惊慌,自己动手修改?br />


四,版权声明Q?br />xml数据和各Uxsl,js,css,png文g都是修改或源自windows的有道词典安装文Ӟ使用时注意版权问题?br />xslt是仿照官|的一个demo改写的?br />本扩展程序仅供学?fn)交之用?br />

五,关于本程序:(x)
eyoudao 1.0 By Onway 2012-03-16
debug yourself or report to
aluohuai@126.com
www.shnenglu.com/onway


六,有道词典安装文g的大致修改过E:(x)
1Q在windows有道词典的安装目录resultui下,拯出来三个文g夹:(x)css,js,images,两个文gresult.xsl和commonfile.xsl
2Qjs目录all-min.js解压为default.jsQ删除wordBook.js
3Qcommonfile.xsl的修改:(x)
    aQ将声音播放相关的函数调用改掉参Cؓ(f)this.getAttribute('ref')
    bQ删掉报错显C(不太厚道啊!Q和flash?br />    cQ将所有的关于css/和images/目录文g的引用改为本地文件协议的l对路径
    dQ去掉所有app:.*:
4Qresult.xsl的修改:(x)
    aQ以本地文g协议的绝对\径加入default.css和default.js的引?br />    bQ加?lt;audio>标签用作发音
    cQ将所有的app:.*:L
    dQ结֊入一DjavascriptQ调用三个函?br />5Qdefault.js的修?br />    aQ加入全局变量INBOOK
    bQctlog函数直接q回false
    cQ修Ҏ(gu)有window.external.loadString和window.external.saveString
    dQ将deskdict_main修改为results
    eQ注释掉window.selection.empty
    fQplayVoice函数更改内容
    gQisFlashReady函数直接q回true
    hQ注释掉GetAdsByTimer函数的调?br />    iQ注释掉dict.ugc.init的调?br />    jQ在toggleFav函数加入一D关于本地单词本的代?br />6Q更详细的修改参见detail/diff-patch目录下的patch文g?br />

7Q附Q?br />其实Z保存单词Q我q写了一?00行多点的多线E网l程序,以利用ajax跟本地程序通信?br />但很郁闷的是Qgoldendict以访问网站得来的l果昄的时候有些bug。导航条不能用了Q页面低下出C大片I白?br />从goldendict保存出来的html文g跟在览器看到明显不一栗?br />我之所以确定是goldendict的问题,是因为我试过改好的|页文g从apache服务器发回goldendict都是出现同样的问题?br />而从览器访问a(chn)pache服务器则是正常的?br />


Onway 2012-03-17 01:04 发表评论
]]>
查询学校I闲教室的小脚本http://www.shnenglu.com/Onway/archive/2012/03/09/167512.htmlOnwayOnwayFri, 09 Mar 2012 10:52:00 GMThttp://www.shnenglu.com/Onway/archive/2012/03/09/167512.htmlhttp://www.shnenglu.com/Onway/comments/167512.htmlhttp://www.shnenglu.com/Onway/archive/2012/03/09/167512.html#Feedback1http://www.shnenglu.com/Onway/comments/commentRss/167512.htmlhttp://www.shnenglu.com/Onway/services/trackbacks/167512.html/Files/Onway/free-rooms.bash.txt

#!/bin/bash

# 查询学校I闲的教?br /># 原理Q空闲的教室 
= 整个学期开评译֮ - 查询旉开评译֮
# 如果服务器查询参C变,一个学期只需更新一?br /># good good study , day day up 
!
# Onway 
2012-03-09    aluohuai@126.com

roomline
=10
rooms
="黄浩川教学楼101 黄浩川教学楼102 黄浩川教学楼103 黄浩川教学楼104 黄浩川教学楼201 黄浩川教学楼202 黄浩川教学楼203 黄浩川教学楼204 黄浩川教学楼301 黄浩川教学楼302 黄浩川教学楼303 黄浩川教学楼304 黄浩川教学楼401 黄浩川教学楼402 黄浩川教学楼403 黄浩川教学楼404 黄浩川教学楼501 黄浩川教学楼502 黄浩川教学楼503 黄浩川教学楼504 黄浩川楼101 黄浩川楼102 黄浩川楼104 黄浩川楼105 黄浩川楼209 黄浩川楼303 黄浩川楼304 黄浩川楼305 黄浩川楼402 黄浩川楼403 黄浩川楼404 黄浩川楼405 l箋教育学院101 l箋教育学院103 l箋教育学院201 l箋教育学院203 l箋教育学院205 l箋教育学院206 l箋教育学院301 l箋教育学院303 l箋教育学院306 l箋教育学院403 l箋教育学院405 l箋教育学院407 l箋教育学院505 黎耀华楼108 黎耀华楼212 黎耀华楼306 黎耀华楼313 黎耀华楼402 黎耀球楼301 陆佑图书?01 陆佑图书?02 马兰x学楼101 马兰x学楼102 马兰x学楼103 马兰x学楼104 马兰x学楼201 马兰x学楼202 马兰x学楼203 马兰x学楼204 马兰x学楼301 马兰x学楼302 马兰x学楼303 马兰x学楼304 马兰x学楼401 马兰x学楼402 马兰x学楼403 马兰x学楼404 马兰x学楼501 马兰x学楼502 马兰x学楼503 马兰x学楼504 体育?01 体育?02 体育?03 体育?04 体育?05 体育?06 体育?07 体育?08 体育?09 体育?10 体育?11 体育?31 体育?32 体育?33 体育?35 体育?36 体育?37 体育?38 体育?39 体育?40 C(x)?04 L101 L201 L202 L212 L213 L239 L240 L249 L250 L356 L401 L402 L405 L406 L417 L418 L421 L422 L423 L427 L429 L439 L441 L445 L457 L458 L470 L473 L501 L505 L524 L525 L533 L539 L541 L543 L545 L549 L552 L554 L556 L559 L560 L562 L575 l合实验大楼103 l合实验大楼201 l合实验大楼202 l合实验大楼203 l合实验大楼204 l合实验大楼205 l合实验大楼206 l合实验大楼212 l合实验大楼213 l合实验大楼214 l合实验大楼302 l合实验大楼303 l合实验大楼305 l合实验大楼306 l合实验大楼307 l合实验大楼310 l合实验大楼402 l合实验大楼403 l合实验大楼404 l合实验大楼405 l合实验大楼406 l合实验大楼407 l合实验大楼416 l合实验大楼503 l合实验大楼605 l合实验?05"
update() {
    wget 
-/tmp/query.asp http://jwc.wyu.cn/everyday/query/indeft/query.asp --post-data "cnt=1&wk=1&wk=2&wk=3&wk=4&wk=5&wk=0&cnt=2&pt=1&pt=2&pt=3&pt=4&pt=5&cc5=&cc6=&cc7=&cc8=&cc9=&Submit=+%CC%E1%BD%BB+"
    iconv -f gb18030 -t utf8 /tmp/query-gb18030.tmp > /tmp/query-utf8.tmp
    
new="rooms=\"$(grep '.*<td align=\"left\">.*' /tmp/query-utf8.tmp | sed -'0~4p' | grep -'>.*<' | tr -'><' | sort -ub | grep -'^$')\"" 
    
new=$(echo $new)
    rm 
/tmp/query-gb18030.tmp /tmp/query-utf8.tmp
    sed 
"${roomline}c $new" $0 > "/tmp/$0"
    chmod u
+"/tmp/$0"
    mv 
"/tmp/$0" $0
}

query() {
    arg
=""
    read 
-"星期Q?-5Q?为周末,I格分开Q:(x)" day 
    
if [ -"$day" ] ; then
        arg
="cnt=1&"
        
for i in $day
        
do
            arg
=$arg"wk=$i&"
        done
    fi

    read 
-"节次Q大节,0-5Q空格分开Q:(x)" class
    
if [ -"$class" ] ; then
        arg
=$arg"cnt=2&"
        
for i in $class
        
do
            arg
=$arg"pt=$i&"
        done
    fi

    read 
-"周次Q?-19Q空格分开Q:(x)" week
    
if [ -"$week" ] ; then
        arg
=$arg"cnt=3&"
        
for i in $class
        
do
            arg
=$arg"ew=$i&"
        done
    fi

    
if [ -"$arg" ] ; then
        echo 
"what are you doing!"
        exit 
0
    fi

    arg
=$arg"cc5=&cc6=&cc7=&cc8=&cc9=&Submit=+%CC%E1%BD%BB+"

    wget 
-/tmp/query-gb18030.tmp http://jwc.wyu.cn/everyday/query/indeft/query.asp --post-data "$arg"
    iconv -f gb18030 -t utf8 /tmp/query-gb18030.tmp > /tmp/query-utf8.tmp
    used
="$(grep '.*<td align=\"left\">.*' /tmp/query-utf8.tmp | sed -n '0~4p' | grep -o '>.*<' | tr -d '><' | sort -ub | grep -v '^$')" 
    used
=$(echo $used)
    rm 
/tmp/query-gb18030.tmp /tmp/query-utf8.tmp

    
for i in $rooms
    
do
        sign
=0
        
for j in $used
        
do
            
if [ "$i" == "$j" ] ; then
                sign
=1
                
break
            fi
        done
        
if [ "$sign" == "0" ] ; then
            echo $i
        fi
    done
}

if [ $# == 0 ] ; then
    query
elif [ 
"$1" == "--update" ] ; then
    update
else
    echo 
-"Usage:\n\t$0 [--update]"
fi
exit 
0


Onway 2012-03-09 18:52 发表评论
]]>
bash script写的gnome桌面闹?/title><link>http://www.shnenglu.com/Onway/archive/2012/03/09/167510.html</link><dc:creator>Onway</dc:creator><author>Onway</author><pubDate>Fri, 09 Mar 2012 10:39:00 GMT</pubDate><guid>http://www.shnenglu.com/Onway/archive/2012/03/09/167510.html</guid><wfw:comment>http://www.shnenglu.com/Onway/comments/167510.html</wfw:comment><comments>http://www.shnenglu.com/Onway/archive/2012/03/09/167510.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/Onway/comments/commentRss/167510.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Onway/services/trackbacks/167510.html</trackback:ping><description><![CDATA[上图好像没什么意思吧Qzenity的界面?br /><img alt="" src="http://www.shnenglu.com/images/cppblog_com/onway/030712_x3A_17_x3A_05.png" height="223" width="304" />   <img alt="" src="http://www.shnenglu.com/images/cppblog_com/onway/030712_x3A_15_x3A_51.png" height="305" width="210" />  <img alt="" src="http://www.shnenglu.com/images/cppblog_com/onway/030712_x3A_16_x3A_33.png" height="433" width="300" />  <img alt="" src="http://www.shnenglu.com/images/cppblog_com/onway/030918_x3A_33_x3A_34.png" height="158" width="204" /><br /><br /><a href="/Files/Onway/oalarm.bash.txt">/Files/Onway/oalarm.bash.txt</a><br /><br /><div>oalarm文档<br /><br />概要Q?br />    oalarm是一个基于gnome,mplayer,at,date,zenity{命令的Q用bash script写成的简陋桌面闹钟?br /><br />功能Q?br />    定时d的新建,查看Qgq,删除Q提醒?br /><br />安装要求Q?br />    存在gnome-sessionq程Q?usr/bin下存在at,zenity,mplayerE序Q?HOME目录下存?config/autostart?local/share/applications两个目录?br /><br />安装Q?br />    下蝲oalarm.bash之后Q添加运行权限,在桌面图形环境下q行脚本Q不需要root权限Q。这时会(x)查zenity命o和gnome-sessionq程的存在。gnome-session的检查是Z保证能用zenity命o创徏界面。如果缺乏Q何一个,则在标准输出后直接退出?br /><br />    首次q行脚本?x)出现安装选项?br />    安装q程?x)先?usr/bin目录下检查at,mplayer,zenity三个命oQ如果缺Q何一个,标准输出错误后退出?br />    安装q程q会(x)查两个目录:(x)$HOME/.config/autostart?HOME/.local/share/applicationsQ如果缺乏Q何一个,安装p|。在q两个目录会(x)各写入一?desktop文gQ分别用于登录图形界面后q行一ơ脚本检查过期Q务和在应用附件栏目添加运行图标。分别执行的命o是:(x)<br />    $HOME/.oalarm/oalarm.bash --check<br />    $HOME/.oalarm/oalarm.bash --start<br /><br />    其后?x)?HOME目录下创建隐藏目?oalarm和两个在子目录past,waitQ分别用于存放过期Q何和{待d。oalarm.bash?x)复制自w到该目录下?br /><br />    如果存在/usr/share/sounds/gnome/default/alerts/bark.ogg该声xӞ则会(x)被复制到.oalarm目录下ƈ命名为voiceQ用于提CZQ务时使用mplayerq行播放。可以将voice文g替换为喜Ƣ的提示声音?br /><br />卸蝲Q?br />    安装后启动oalarmQ会(x)出现卸蝲选项?br />    卸蝲行ؓ(f)是:(x)<br />    删掉.oalarm目录和两?desktop文g。记得ؓ(f)声音文g作备份?br /><br />d文g格式Q?br />    使用q月日时分命名。文件内W一行ؓ(f)d标题Q新ZQ务时必须填入Q第二行x件尾ZQ务内容,可选?br /><br />原理Q?br />    下蝲的oalarm.bashQ不带参数运行,是安装前使用Q安装后之后可以删掉?br />    从应用程?附g栏目的图标启动是?-start参数q行$HOME/.oalarm/oalarm.bash。用于新建,查看Qgq和删除d?br />    d囑Ş界面后,带参?-check自动启动$HOME/.oalarm/oalarm.bashQ用于检查关机或者登出图形界面期间到期的d。gq?0U之后开始检查?br />    囑Ş界面d期间Q如果Q务到期,则由atd守护q程?-check和Q务文件名两个参数启动$HOME/.oalarm/oalarm.bash。然后oalarm.bash从wait目录下的文g提取信息q行提示。(如果voice文g不存在,则提C没有声韻I<br /><br />    两个重要的假定:(x)<br />    1Q用如下命令判断用已l登录图形界面:(x)<br />        ps -eo ruid,comm | grep $UID.*gnome-session<br />    2Q?HOEM/.config/autostart下的.desktop文g指定的程序会(x)在登录图形界面后自动q行?br /><br />行ؓ(f)Q?br />    在Q务提醒之后选择延迟和在{待d中选择延迟是有区别的。如果选择延迟旉的时候取消了Q则提醒之后的gq会(x)被放弃,d被移到过期Q务?br /><br />bugsQ?br />    1Q由于命名Q务文件的时候没考虑刎ͼ同一个时间只能有一个Q务,否则?x)被覆盖?br />    2Q选择旉的方式有点别扭,但我也不知道怎么办?br />    3Qgq功能必重新选择日期旉Q有点不厚道<br /><br />关于Q?br />    oalarm 0.1.0<br />    By Onway 2012-03-06<br /><br />    debug yourself or report to:<br />    blog: www.shnenglu.com/onway<br />    mail: aluohuai@126.com<br /><br />    如果本程序让你错q了和女友的U会(x)Q或者把水烧q了Q或者出现其他问题,本h概不负责</div><img src ="http://www.shnenglu.com/Onway/aggbug/167510.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Onway/" target="_blank">Onway</a> 2012-03-09 18:39 <a href="http://www.shnenglu.com/Onway/archive/2012/03/09/167510.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>goldendict的有道词典扩展程?/title><link>http://www.shnenglu.com/Onway/archive/2012/02/12/165425.html</link><dc:creator>Onway</dc:creator><author>Onway</author><pubDate>Sun, 12 Feb 2012 12:33:00 GMT</pubDate><guid>http://www.shnenglu.com/Onway/archive/2012/02/12/165425.html</guid><wfw:comment>http://www.shnenglu.com/Onway/comments/165425.html</wfw:comment><comments>http://www.shnenglu.com/Onway/archive/2012/02/12/165425.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.shnenglu.com/Onway/comments/commentRss/165425.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Onway/services/trackbacks/165425.html</trackback:ping><description><![CDATA[<img src="http://www.shnenglu.com/images/cppblog_com/onway/021216_x3A_26_x3A_34.png" width="995" height="671" alt="" /><br /><br /><img src="http://www.shnenglu.com/images/cppblog_com/onway/021216_x3A_28_x3A_23.png" width="638" height="591" alt="" /><br /><br /><br /><img src="http://www.shnenglu.com/images/cppblog_com/onway/021216_x3A_52_x3A_52.png" width="295" height="228" alt="" /><br /><br /><br /><br /><br />׃有道词典的windows客户端是使用xslxml文g转换成html再显C的Q而恰好goldendict内嵌了webkitQ还可以d扩展E序?br />于是写了个小E序获取xml数据Q再借用了一下有道的安装文gQ打包发上来以此抛砖引玉Q希望有兴趣的各路神牛可以修改得更好?br /><a href="/Files/Onway/youdaodict.tar.gz.rar">/Files/Onway/youdaodict.tar.gz.rar</a><br /><a href="/Files/Onway/youdaodict.tar.gz.rar"><br /></a>其实文g不是rar压羃的,只是上传不了tar.gz的文Ӟrar只是加上ȝ?br /><br />Q之前上传那个,很不好意思的q有一个文件的路径没改q来Q还有顺便说_我的pȝ是ubuntu 11.10Qgnome3桌面Qgodendict?.0.1的版本,朋友?.9那个版本没有扩展E序功能的)<br /><img src ="http://www.shnenglu.com/Onway/aggbug/165425.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Onway/" target="_blank">Onway</a> 2012-02-12 20:33 <a href="http://www.shnenglu.com/Onway/archive/2012/02/12/165425.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.z5621.cn" target="_blank">avɫۺϾþavɫۺ</a>| <a href="http://www.3233567.cn" target="_blank">þþƷ99þþ </a>| <a href="http://www.classicastle.cn" target="_blank">aëƬ÷˾þ</a>| <a href="http://www.8x8z.cn" target="_blank">޺ݺۺϾþ</a>| <a href="http://www.208dj.cn" target="_blank">aaþʦ2021Ʒ </a>| <a href="http://www.yywhqy.cn" target="_blank">þþƷһAV</a>| <a href="http://www.lntyzx.com.cn" target="_blank">ɫþþۺ</a>| <a href="http://www.nbblack.cn" target="_blank">þþƷѴƬƬ</a>| <a href="http://www.xiguayo.cn" target="_blank">ŷaƬѿþ</a>| <a href="http://www.ssc992.cn" target="_blank">þҹɫƷվ</a>| <a href="http://www.oulihong.cn" target="_blank">ɫվwwwþþ </a>| <a href="http://www.scjyzj.cn" target="_blank">þþ뾫Ʒպ˳</a>| <a href="http://www.okboom.cn" target="_blank">þþƷ7777</a>| <a href="http://www.dzeuegg.cn" target="_blank">þþþƷձһ</a>| <a href="http://www.snailwr.cn" target="_blank">ۺϾþþƷ</a>| <a href="http://www.xibu520.cn" target="_blank">99þù뾫ƷѾþþþ </a>| <a href="http://www.yxcyfa.cn" target="_blank">ҹƷƬþ</a>| <a href="http://www.spiralstar.com.cn" target="_blank">8090Ʒþһ</a>| <a href="http://www.jumeiba.cn" target="_blank">Ҫþðѹۿ</a>| <a href="http://www.99605.com.cn" target="_blank">þw5www</a>| <a href="http://www.clg8.cn" target="_blank">޹Ʒþþѿ</a>| <a href="http://www.zjyht.cn" target="_blank">ɫۺϾþۺۺ</a>| <a href="http://www.24quba.com.cn" target="_blank">vaþþþ</a>| <a href="http://www.yweishang.cn" target="_blank">Ʒþ8xѹۿ</a>| <a href="http://www.gsm777.cn" target="_blank">һAëƬѹۿþþƷ</a>| <a href="http://www.rljps.cn" target="_blank">ٸִִˬëƬþú</a>| <a href="http://www.ntysjx.cn" target="_blank">þþþŮʦһ</a>| <a href="http://www.baiduotui.cn" target="_blank">һAëƬѹۿþþƷ</a>| <a href="http://www.73cc.cn" target="_blank">޾ƷŮþ777777</a>| <a href="http://www.ljhn.com.cn" target="_blank">þþƷ}Ů</a>| <a href="http://www.bnwpw.cn" target="_blank">99þù¶Ʒ</a>| <a href="http://www.sgcx.net.cn" target="_blank">˾Ʒþ</a>| <a href="http://www.2345i.cn" target="_blank">þùѹۿƷ3</a>| <a href="http://www.92625.cn" target="_blank">99þþƷѾƷ</a>| <a href="http://www.dmbetter.cn" target="_blank">ҹҹþݺ</a>| <a href="http://www.cutfat.com.cn" target="_blank">ԭƷ99þþƷ66</a>| <a href="http://www.jxjiahegs.cn" target="_blank">һþþƷ</a>| <a href="http://www.coldcha.cn" target="_blank">þֻоƷ18</a>| <a href="http://www.love5000.cn" target="_blank">þþþӰԺ</a>| <a href="http://www.goodyd.cn" target="_blank">þĻ</a>| <a href="http://www.suichuan.net.cn" target="_blank">˾þóۺӰԺ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>