??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久久久久66精品片,99久久国语露脸精品国产,久久精品女人天堂AV麻http://www.shnenglu.com/darkdestiny/(cond ((less 'code) (less 'bug)))zh-cnTue, 06 May 2025 20:53:15 GMTTue, 06 May 2025 20:53:15 GMT60感谢cppblog陪我多年Q我Chttp://www.shnenglu.com/darkdestiny/archive/2013/08/06/202375.htmlLOGOSLOGOSTue, 06 Aug 2013 15:02:00 GMThttp://www.shnenglu.com/darkdestiny/archive/2013/08/06/202375.htmlhttp://www.shnenglu.com/darkdestiny/comments/202375.htmlhttp://www.shnenglu.com/darkdestiny/archive/2013/08/06/202375.html#Feedback0http://www.shnenglu.com/darkdestiny/comments/commentRss/202375.htmlhttp://www.shnenglu.com/darkdestiny/services/trackbacks/202375.html在这里的时候,我是On The RoadQ一直在学习?br />如今自立门户Q只是一_abc。但我还是要走的Q走的时候,得在q里留个外链?br />从今以后Q请?strong>叫我ABC?img src ="http://www.shnenglu.com/darkdestiny/aggbug/202375.html" width = "1" height = "1" />

LOGOS 2013-08-06 23:02 发表评论
]]>
TCP协议的理解http://www.shnenglu.com/darkdestiny/archive/2013/03/21/tcpmtu.htmlLOGOSLOGOSThu, 21 Mar 2013 03:02:00 GMThttp://www.shnenglu.com/darkdestiny/archive/2013/03/21/tcpmtu.htmlhttp://www.shnenglu.com/darkdestiny/comments/198661.htmlhttp://www.shnenglu.com/darkdestiny/archive/2013/03/21/tcpmtu.html#Feedback1http://www.shnenglu.com/darkdestiny/comments/commentRss/198661.htmlhttp://www.shnenglu.com/darkdestiny/services/trackbacks/198661.htmlTCP是流协议Q不像UDP那样sendto发一ơ消息,另一端必然会收到完整消息Q或者没有收CQ何消息?br /> 当用TCP send发一ơ消息的时候,可能另一端在某时d能只收到一部分消息Q下一时刻才能收到另一部分。那如果一个消息很,是否可以保证另一端在某时刻能收到q条完整消息Q?/p>
  1. 调用send后,TCP数据拷贝到~冲区。缓冲区内可能不止一条用h息?/li>
  2. TCP按照一定算法,缓冲区的数据打包到1-n个TCP报文中,交给IP层发送。TCP报文是TCP协议的最发送单位,大小应该是可变的Qƈ且丢q话会重发?/p>

    • #q不能保证一个TCP报文中必然包含一条用h息的全部Q所以即使消息很,另一端也有可能在某时d收到部分
  3. IP层将TCP报文装进IP包,然后再交l链路层发送以太

    • #理论上IP包的大小应该会选择比MTU。一旦IP包比MTU大,意味着|络上的路由要帮你缓存多个以太Q拼出IP包后才知道如何\由到下一个节炏V向下一节点路由的时候还要再拆分成多个以太发?/li>
    • #所以TCP报文应该会比选择比MTU?br />
全文攉?a >我的知识׃n

LOGOS 2013-03-21 11:02 发表评论
]]>
人生常有qh?/title><link>http://www.shnenglu.com/darkdestiny/archive/2012/06/06/177831.html</link><dc:creator>LOGOS</dc:creator><author>LOGOS</author><pubDate>Wed, 06 Jun 2012 13:34:00 GMT</pubDate><guid>http://www.shnenglu.com/darkdestiny/archive/2012/06/06/177831.html</guid><wfw:comment>http://www.shnenglu.com/darkdestiny/comments/177831.html</wfw:comment><comments>http://www.shnenglu.com/darkdestiny/archive/2012/06/06/177831.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/darkdestiny/comments/commentRss/177831.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/darkdestiny/services/trackbacks/177831.html</trackback:ping><description><![CDATA[<style type="text/css"> p {font-size:18px;} </style> <h3>最q大姨夫又来了?/h3> <p>工作再次失去目标。失ȝ标加闲来无事Qh变得很焦w?br> 一斚w原因是公司缺程序员的更高阶D늚培养方向和条Ӟ另一斚w则是个h眼界和心态所限,在没zL׃知道d些什么才能对目有所贡献Q进而媄响到了^时的学习目标?br> q就是一般h常说的工作没有挑战性。当Ӟ其实多数工作都隐藏着挑战性领域,要靠自己L入挖掘? </p> <p>在事业上目标也迷惑了?br> 行的成功学都说成功的第一步是树立一个非常明的长期目标Q其实这个命题具有欺骗性。就我自׃会而言Q不是每个h都有能力扑ֈ所谓的长期目标Q要非常明确更难了。实际上我入q行成ؓ一个还凑合的开发h员曾l是我大学订的事业目标,那时以ؓ是长期目标。结果几q下来,发现已经实现了?br> 然后又不停的L新的目标Q此事不,许多看似长期目标Q要么慢慢都实现了,要么q开了。当然甩开的事情更多一些,毕竟常常是Qw和功利心主Dq心智? </p> <p>沉静下来Q想了一些整理思\的方式:<br> 首先是从现实角度考虑Q如果现在温p解决不了Q那么首要Q务则应该是找份能吃上饭的工作Q事业什么的先甩一边去吧。饱暖才能思淫Ԍ是不Q?br> 接着是尝试排除功利心Q应该不h的第一理性目标L从拥有很多钱开始,臛_我难免其俗。不q多Chq辈子只能手头略紧的zȝQ所以大可先做出惌Q现在有1000WQ?000WQ或者过亿,或者有个某部局的干爹干娘,M拥有C满为止Q然后你打算做什么。如果只是想疯玩疯买Q这套思考方式不太适合Q如果还是打拥有更多的钱,q套思考方式也解决不了?br> 接着是尝试排除休闲心Q排除一些梦惟뀂比如想去趟南极Q已l可以从阿根L团去了,或者上ơ珠峎ͼ或者去些h间仙境,天上人间什么的。你假设你都已经做完所有这些事情了Q就像假设你已经拥有很多׃P你开q飞机,上过宇宙Q见qETQ打q怪兽?br> 好了Q然后还q求什么呢Q是习惯无所事事呢,q是闲不住? </p> <p>l于Q闲不住的hQ考虑到自׃辈子都想做的一些事情了?br> 但是Q要l箋从事现在的行业或者工作吗Q或者换一个行业试试。无论是否喜Ƣ现在的行业Q都可以假设自己被迫d了其他行业,q且被努力做好。做技术的Q可以想惛_做销售是什么样子,或者想惛_是开个小卖部或者卖衣服Q做律师吉|Q要用什么Ş式才能做好那份工作?br> 其实很多事情Q只要做好了有充实感和满感。我觉得自己是乐于做很多行业的?br> 最后无论是选择留在当前行业或者换一个行业,要做的就是努力去做些能让自己不断有满xQ不断的被需要,不断的可以改q的事情? </p> <p>我呢Q暂时会在编E和互联|应用这块去挖掘一些满用户需求的事情。同Ӟ也会d一些当前没用途但是感兴趣的知识,多数时候学习实在太有功利性了?br> 公司的活Q打将惛_下个目要改q的内容挪到q个目来? </p><img src ="http://www.shnenglu.com/darkdestiny/aggbug/177831.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/darkdestiny/" target="_blank">LOGOS</a> 2012-06-06 21:34 <a href="http://www.shnenglu.com/darkdestiny/archive/2012/06/06/177831.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android ndk调试知识http://www.shnenglu.com/darkdestiny/archive/2012/03/12/ndk_gdb_arm.htmlLOGOSLOGOSMon, 12 Mar 2012 09:33:00 GMThttp://www.shnenglu.com/darkdestiny/archive/2012/03/12/ndk_gdb_arm.htmlhttp://www.shnenglu.com/darkdestiny/comments/167726.htmlhttp://www.shnenglu.com/darkdestiny/archive/2012/03/12/ndk_gdb_arm.html#Feedback2http://www.shnenglu.com/darkdestiny/comments/commentRss/167726.htmlhttp://www.shnenglu.com/darkdestiny/services/trackbacks/167726.html ndk-gdb
最q用NDK开发一些东西,l果调试相关的内容学习了不少。因׃手生Q所以就不保证接下来介绍的内容完全正?

~译可调试代?/h3>

NDK_DEBUG=1Qapk的androidmanifest.xml也要配置为debugable=true?br> 遇上ȝ的时候NDK_LOG=1,--verboseQV=1可以输出更详l的信息排查问题?

调试W号debug symbol

./obj/local/armeabi。如果动态库不放到这里,׃提示no debug symbol?br> 如果想知道当前哪些动态库包含了调试信息,使用shared指o?br> gdb)shared

汇编调试

  1. disassQdump函数的全部汇~?/li>
  2. niQ单步调试汇~?/li>
  3. siQ进入汇~子函数
  4. display/5i $pcQ这是我调试前喜Ƣ的讄Q这h调试一步,׃自动打印?条指令,很舒适?/li>

arm汇编

arm的汇~和x86的汇~有些不一P比较常见的是q几条:

  1. blQ类似callQ函数调用。r0-rn是传入参敎ͼ调用后r0是返回倹{?/li>
  2. ldrQ将内存载入寄存器?/li>
  3. strQ将寄存器写入内存?/li>
  4. ldr rn,[pc,#offset]
    add rn,pc,rn
    q种指ol合比较特别Q其实是这个函数外的变量地址加蝲q来Q也是讉K全局变量?
  5. 局部变量,包括当前函数参数Q用sp+#offset表示其内存位|?
其他的就跟x86的差不多了?



LOGOS 2012-03-12 17:33 发表评论
]]>
how to fix "cannot locate cxa_begin_catch" in Android NDKhttp://www.shnenglu.com/darkdestiny/archive/2012/03/02/ndk_libstdc.htmlLOGOSLOGOSFri, 02 Mar 2012 07:50:00 GMThttp://www.shnenglu.com/darkdestiny/archive/2012/03/02/ndk_libstdc.htmlhttp://www.shnenglu.com/darkdestiny/comments/166983.htmlhttp://www.shnenglu.com/darkdestiny/archive/2012/03/02/ndk_libstdc.html#Feedback0http://www.shnenglu.com/darkdestiny/comments/commentRss/166983.htmlhttp://www.shnenglu.com/darkdestiny/services/trackbacks/166983.htmlreproduce problem:

NDK version: r7
link to libstdc++.so or -lstdc++

output: (need high version SDK)

reloc_library cannot locate cxa_begin_catch

reason:

they renamed libstdc++.a to libgnustl_static.a starting from NDK r7, also inserting a new dummy libstdc++.so that contain these symbols when in the device emulator does not have.

how to fix:

LOCAL_LDFLAGS += $(MY_NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_static.a

WTF



LOGOS 2012-03-02 15:50 发表评论
]]>
paxos法的理?/title><link>http://www.shnenglu.com/darkdestiny/archive/2012/02/24/paxos.html</link><dc:creator>LOGOS</dc:creator><author>LOGOS</author><pubDate>Fri, 24 Feb 2012 12:36:00 GMT</pubDate><guid>http://www.shnenglu.com/darkdestiny/archive/2012/02/24/paxos.html</guid><wfw:comment>http://www.shnenglu.com/darkdestiny/comments/166448.html</wfw:comment><comments>http://www.shnenglu.com/darkdestiny/archive/2012/02/24/paxos.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/darkdestiny/comments/commentRss/166448.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/darkdestiny/services/trackbacks/166448.html</trackback:ping><description><![CDATA[<p> 一个分布式修改数据的一致性算法? </p> <h2>主要角色</h2> <p> 决策者:是否批准修改甌。对一个资源一ơ只能批准一个修改申P不能做墙头草?br> 甌者:提出修改甌?br> 学习者:记录被批准的修改? </p> <h2>主要q程</h2> <p> 多个甌者向多个决策者提Z改申P获得多数z批准的甌交l学习者进行学习? </p> <p> q个民主的过E将l过两轮表决Q在W?轮表决中获得多数z批准的甌可以被整体接受,保障数据在各个节点上的一致性? <ol> <li>甌者要决策者做W一轮表冻I试获得多数zֆ{者的支持Q同时获得已l进入第二轮表决的修改申请内宏V?/li> <li>甌者根据收集到的其他申误的甌内容的数量,在他们的修改甌和自q修改甌中选一个最可能通过的申请内容,发vW二轮表冟?/li> </ol> </p> <h2>决策者服?/h2> <p> 决策者的工作实际和申误,学习者之间没有太多关p,决策者对一个修改申h非要求以下内容: <ul> <li>甌者ID</li> <li>甌~号</li> <li>资源ID</li> <li>修改内容</li> </ul> 因此决策者这个角色可以做成一个相对独立的服务Qؓ各种cd的申误提供一致性支持? </p> <p> 另外׃多个学习者的学习可能出现不一_所以学习编号可以由决策者这辚w过唯一数据库递增理? </p> <br> <p> 看过上文但又不是很懂的就不要多看几次了。google一下能扑ֈ很多人的心得Q但是中文的心得普遍不容易理解。所以推荐阅读英文原版论? <a >paxos simple</a> </p><img src ="http://www.shnenglu.com/darkdestiny/aggbug/166448.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/darkdestiny/" target="_blank">LOGOS</a> 2012-02-24 20:36 <a href="http://www.shnenglu.com/darkdestiny/archive/2012/02/24/paxos.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vim插gQ快速生成函数定?/title><link>http://www.shnenglu.com/darkdestiny/archive/2011/12/05/vim_plugin.html</link><dc:creator>LOGOS</dc:creator><author>LOGOS</author><pubDate>Mon, 05 Dec 2011 13:03:00 GMT</pubDate><guid>http://www.shnenglu.com/darkdestiny/archive/2011/12/05/vim_plugin.html</guid><wfw:comment>http://www.shnenglu.com/darkdestiny/comments/161528.html</wfw:comment><comments>http://www.shnenglu.com/darkdestiny/archive/2011/12/05/vim_plugin.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/darkdestiny/comments/commentRss/161528.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/darkdestiny/services/trackbacks/161528.html</trackback:ping><description><![CDATA[今天一直想找一个vim插gQ功能是在头文g声明了一个函数后Q可以通过易的操作在对应的cpp文g中生成这个函数的无实现定义?br> 没能扑ֈ自己想用的那U,其中一个csupportQ通过交互输入cd和函数名在当前缓冲插入函数定义,q了;另一个snipemateQ是预先定义的模板复制到当前缓冲区Q类g预定义的代码补完Q东西不坏Q但不是我想要的那种?br> 理论上应该有完成q种d的vim插gQ可惜插件库实在太庞大了Q随便google几下大v捞针Q决定自己动手,丰衣食?br> <br> <h2>基本思\如下Q?/h2> <div style="font-size:24px"> <li style="font-size:16px">取当前行作ؓ函数声明行,然后通过正则表达式去掉virtual{修饰符?/li> <li style="font-size:16px">往前搜索第一个class关键字,能读到的话,通过正则表达式提取出cdQ然后和函数声明l合hQŞ成一个函数定义?/li> <li style="font-size:16px">取出当前文g的缓冲名Q通过正则表达式去掉文件名上的目录?h后缀Q然后拼成对应的cpp文g?/li> <li style="font-size:16px">在缓冲区里搜索生成的cpp文gQ搜索到后将函数声明q加到该文g中?/li> </div> <a href="http://www.shnenglu.com/Files/darkdestiny/c.vim.tar">c.vim插g下蝲</a> <img src ="http://www.shnenglu.com/darkdestiny/aggbug/161528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/darkdestiny/" target="_blank">LOGOS</a> 2011-12-05 21:03 <a href="http://www.shnenglu.com/darkdestiny/archive/2011/12/05/vim_plugin.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>|络lg支持telnet?/title><link>http://www.shnenglu.com/darkdestiny/archive/2011/06/12/telnet_netlib.html</link><dc:creator>LOGOS</dc:creator><author>LOGOS</author><pubDate>Sun, 12 Jun 2011 14:44:00 GMT</pubDate><guid>http://www.shnenglu.com/darkdestiny/archive/2011/06/12/telnet_netlib.html</guid><wfw:comment>http://www.shnenglu.com/darkdestiny/comments/148557.html</wfw:comment><comments>http://www.shnenglu.com/darkdestiny/archive/2011/06/12/telnet_netlib.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.shnenglu.com/darkdestiny/comments/commentRss/148557.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/darkdestiny/services/trackbacks/148557.html</trackback:ping><description><![CDATA[<h2>q是什么?</h2> 我的意思是Q一个网l组件在接受新连接后Q先以文本协议等候消息,以实现支持telnet查看的功能?br> <br> <h2>telnet查看功能</h2> <ol> <li><strong>echo value?/strong> |络lg收到消息后,像echo服务器那L接返回value。valueq可以是lg预置的变量,?timeq回服务器的当前旉? </li> <li><strong>name value?/strong> |络lg收到消息后,当前连接绑定到valueq个名字上,其目的是Z一条heartbeat指o提供操作对象? </li> <li><strong>heartbeat value?/strong> |络lg收到消息后,向valuel定的连接发起一个心x,回执通知telnet端? </li> </ol> <br> <h2>q有什么用Q?/h2> 以往telnet在开发中的作用就是ping具体的服务器地址和端口,无法q一步用。有时候想实时的从服务器中了解一些简单的q接信息Q但是网l组件只处理专有的二q制消息Q只能实C个不通用的客L?br> 若网l组件在接收二进制消息之前能够处理一些简单的文本协议Q那么telnet可q一步用,查看lg状态甚至简单调试组件?br> q有一U就是服务器E序监控服务Q通常q种监控服务只能判断服务器程序是否运行或者挂掉,但是无法判断服务器是否遇上死锁而无法提供服务。当|络lg支持q种文本协议之后Q监控服务就能够通过echo和heartbeat两种消息网l组件listen方和connectҎ否卡歅R?br> <br> <h2>内置一个http服务器不是更好?</h2> 其实在网l组件中内置一个http服务器不是更好,可以通过wget,curl甚至览器进行操作,可视化程度也比较高?br> 我不q么认ؓ。其实内|一个http服务器有点大了,搞不好比lg本nq大。再者http服务是和业务q接q一个端口呢q是拥有独立的服务端口,独立的服务端口增加了太多的配|,q端口的话从HTTP协议变迁Cq制协议是不是太ȝ了点?br><img src ="http://www.shnenglu.com/darkdestiny/aggbug/148557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/darkdestiny/" target="_blank">LOGOS</a> 2011-06-12 22:44 <a href="http://www.shnenglu.com/darkdestiny/archive/2011/06/12/telnet_netlib.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>bash的不同启动方式导致不同的讄http://www.shnenglu.com/darkdestiny/archive/2010/12/20/bash_shell_types.htmlLOGOSLOGOSMon, 20 Dec 2010 15:07:00 GMThttp://www.shnenglu.com/darkdestiny/archive/2010/12/20/bash_shell_types.htmlhttp://www.shnenglu.com/darkdestiny/comments/137074.htmlhttp://www.shnenglu.com/darkdestiny/archive/2010/12/20/bash_shell_types.html#Feedback2http://www.shnenglu.com/darkdestiny/comments/commentRss/137074.htmlhttp://www.shnenglu.com/darkdestiny/services/trackbacks/137074.html 一个通过sshq接启停指定服务器程序的理E序,其中一l启动的E序发生崩溃后无法dumpcore文g,但是改用手动启动的方式程序则会在崩溃后dumpcore.
在shell环境下检core文g大小讄:
$ulimit -c
unlimited

让管理程序读取core文g大小讄:
o = machine.StartApp('ulimit -c');
print(o.readline());

$python test.py
0
讄值是0,不是预期?但是在终端看到的却是unlimited.其中ulimit -c的初始设|是写在.bash_profile里的.

很幸q的看到.bashrc里提?U类型的shells:login shell,interactive shell.其中login shell加蝲.bash_profile,interactive shell加蝲.bashrc.
理E序q接到机器后,没有使用tty或者bash,因ؓ不需要交?同时,理E序执行命o的方式是bash -c,所以管理程序没有执?bash_profile中的讄,以致于子q程l承的core文g大小讄不符合期?
其中的一个解军_法是在每个执行命令前d ulimit -c unlimited,但是q写得有Ҏ.另一个解军_法是发现bash -c每次都会加蝲.bashrc,core文g大小讄写入.bashrc便可.
问题看v来解决了,但是我觉得这里面的一个细节和man对不?
An interactive shell is one started without non-option arguments and without the -c option whose standard input and error are both connected to terminals
理E序执行命o时候的bash -c表示的是non-interactive shell,应该不会加蝲.bashrc才是,cM于用crontabq行的脚本就不会加蝲.bashrc,但是理E序执行命o的时候设|竟然生效了...求解.
.

PS:最q?个月没写blog,好忙.................

LOGOS 2010-12-20 23:07 发表评论
]]>
一期一会[September]http://www.shnenglu.com/darkdestiny/archive/2010/09/24/month_flow.htmlLOGOSLOGOSFri, 24 Sep 2010 12:58:00 GMThttp://www.shnenglu.com/darkdestiny/archive/2010/09/24/month_flow.htmlhttp://www.shnenglu.com/darkdestiny/comments/127533.htmlhttp://www.shnenglu.com/darkdestiny/archive/2010/09/24/month_flow.html#Feedback3http://www.shnenglu.com/darkdestiny/comments/commentRss/127533.htmlhttp://www.shnenglu.com/darkdestiny/services/trackbacks/127533.html 入手milestone,主要是用来记事和todolist,全键盘打字手感很?不过用了以后p得买贵了,其实只要是有物理键盘的android可以了,但却选择了最늚一?

最q工作重心发生了一些变?公司斚w的就是开始接|络数据库组的Q?淡出逻辑~写.|数l的d,需求简z清?不像逻辑那样有太多纠~不清的内容,Ҏ辑ֈ一ơ编写极修改境?不舒服的地方则是有可?个月都不会上一ơ客L,只能对着控制台发?个h斚w也由独立的学习分支{入公司的工作q程?更多的考虑工作中的计划和安?同时也兼儡基础和erlang.
每每被老大问及职业规划都无a以对,制定长期目标和长期计划本w就是一U才?而拥有这U才能的人寥寥可?看不到远?q当下,总能看到一些短期目?好好安排,C步算一?q一ơ的重心变化,是目光从飘ؓ的远处移回了脚下,l果q个月是意外的忙?

中秋三天假玩得太?1天去北奥林公园,C很多?1天出M东西+打牌,l果4Ҏ?现在则处于一U不赶紧上床休息׃ȝ状?所?q个月的碎念就到这?国庆回家补补.

最?MonthFlowpd改名Z期一?



LOGOS 2010-09-24 20:58 发表评论
]]>
十步_N新语言http://www.shnenglu.com/darkdestiny/archive/2010/08/22/learn-new-language.htmlLOGOSLOGOSSun, 22 Aug 2010 02:20:00 GMThttp://www.shnenglu.com/darkdestiny/archive/2010/08/22/learn-new-language.htmlhttp://www.shnenglu.com/darkdestiny/comments/124262.htmlhttp://www.shnenglu.com/darkdestiny/archive/2010/08/22/learn-new-language.html#Feedback9http://www.shnenglu.com/darkdestiny/comments/commentRss/124262.htmlhttp://www.shnenglu.com/darkdestiny/services/trackbacks/124262.html

标题党一?....
昨天做了一个特D抓取的爬虫,不到50行python代码,痛痛快快的给我抓取了2000个flashgame和玩法说?除了感叹会写E序实在太好了之?q想C如何快速学习一门新语言的事?
严格来说,应该是学习命令式语言,和其他类型的语言可能一点交集都没有.
一门语a的本质只是简单的语法和基本IO,只要E微认知了这些内容就能开始写E序?要精通则是一个不断进行实际应用和调试的过E?

  1. hello world
    • 认识d数或者入口函?看看语言的基本风?
  2. 变量
    • 变量定义,变量cd,变量赋?
    • 数?字符?boolcd是最基础cd.
    • 区别全局变量,局部变?
    • l构体的使用.
  3. 标准输入输出
    • 从终端给变量赋?在终端打印变量的?q是学习新语a时最需要的调用.
  4. 函数
    • 函数定义语法,参数的格?q回值的格式.
  5. 分支,循环
    • 判断表达式的语法.
  6. 字符串操?/li>
    • format操作,字符串连接符.
    • 搜烦和提取子?
    • 字符集编码规定和接口.
    • 再高U一?正则表达?
  7. 容器
    • list和dict,cM的东?他们的用方?
  8. 文gd
    • 打开,关闭文g.文g数据的读取和写入.
    • d一行数?
  9. runtime
    • 语言自n的特D概?q里通常才是q门语言区别其他语言的精髓所?
    • 交互式控制台.
    • ~译E序,或者由解释器执行程?
    • q行环境,E序启动方式.
  10. 模块
    • 导入模块,使用模块.
    • 多文?分模?~写自己的模?

语言说到底只是工?拥有语言之外的良好的基础能力和领域能力才是最隄地方?



LOGOS 2010-08-22 10:20 发表评论
]]>
lua内存泄漏http://www.shnenglu.com/darkdestiny/archive/2010/08/14/lua-memory-leak.htmlLOGOSLOGOSSat, 14 Aug 2010 07:41:00 GMThttp://www.shnenglu.com/darkdestiny/archive/2010/08/14/lua-memory-leak.htmlhttp://www.shnenglu.com/darkdestiny/comments/123436.htmlhttp://www.shnenglu.com/darkdestiny/archive/2010/08/14/lua-memory-leak.html#Feedback2http://www.shnenglu.com/darkdestiny/comments/commentRss/123436.htmlhttp://www.shnenglu.com/darkdestiny/services/trackbacks/123436.html

引子

最q用机器人做NPC的压力测?H然发现一台机器能支持的机器h数量剧减,而且q行一D|间后整台机器直接内存耗光L.l过观察,发现1个机器h在运行一D|间之后内存能占用?20M之多,而且q在不断增加,同时内存无法手动回收.
以前1个机器h大概消?0M-20M的内?q次的消耗明昑ּ怺,所以初步判断逻辑上存在lua对象泄漏:在某些没有注意到的地斚w期引用着不再使用的lua对象,Dq些对象无法被gc.
Z解决q个问题,googleC相似问题的文章,lua内存泄漏查证.文章的大概思\是:

  1. 资源跟踪,定位哪些资源泄漏
  2. 引用?查找泄漏的资源被哪个模块引用

资源跟踪

定义:应用中分配的lua对象dC个弱表中.执行完整的gc?q能从弱表中索引到的对象表示它还在别的地方被引用着,可能是正常的引用,也可能是一处内存泄?
我用了一个弱键表,该表以要跟踪的lua对象为键,该对象的描述信息为?其中的描qC息包含了对象描述和对象创建时间两?对象描述用于区别不同的跟t对?创徏旉则用来在打印p的时候判断对象的存活旉是否合理.
我定义的接口?function TraceMem(obj, description);

虽然机器人可以动态的加蝲无尽的模?但是几乎所有的资源都是由几个基模块开始分配的,所以添加对象跟t相Ҏ较简?l过修改,q行,试,从弱表中打印出来的数据发?机器Z有大量的Ud包和Ud相关的计时器对象没有被gc?q些对象多数都已l存zM100U以?场景中NPC都是僵尸,每个Ud的时间应该在5U以?所以可判定q些Ud对象是泄?
问题的范围羃了,但还是看不出哪段代码造成了泄?泄漏的对象在哪一个模块中被引?

引用?/h4>

定义:从某个节点开始搜索所有该节点引用的对象以及递归搜烦子节?扑ֈ要搜索的对象,打印出引用\?
最常见的可以从_G开始搜?搜烦到的每个table,取其key和value递归搜烦;搜烦到的每个函数,取其upvalue递归搜烦.至于是否需要搜索对象的环境表和metatable,以及全局registry?则取决于具体需?我因为用不上,没有搜索这一部分.
搜烦的时候注意标记已l搜索过的节?避免重复搜烦.最好能~小搜烦范围,而不是从_G开始搜?另外应该能每ơ只搜烦指定的部分引用而非全部,可以极大的羃短等待时?搜烦所有的引用其实相当耗时.
我定义的搜烦接口?function Search_r(obj, node, mark, result);

l过引用索处理后,我看C计时器模块引用了那些泄漏的移动包和移动计时器对象,q些对象的创建时间和引用他们的激zL间居然是相同?q导致了q些计时器对象不会再Ȁz?同时也失MȀzd释放的机?造成了内存泄?而根本原?则是Ud处理模块在用计时器的时候传入了0时参数,因ؓ僵尸走得太慢?
到此,问题q全部解决?

PS:发现用html~辑blog非常不错?比cppblog自带的所见即所得编辑器好用多了,q可以用CSS和插入一些有的js.



LOGOS 2010-08-14 15:41 发表评论
]]>linux下如何提取mp3http://www.shnenglu.com/darkdestiny/archive/2010/07/19/extra_mp3_in_linux.htmlLOGOSLOGOSMon, 19 Jul 2010 00:02:00 GMThttp://www.shnenglu.com/darkdestiny/archive/2010/07/19/extra_mp3_in_linux.htmlhttp://www.shnenglu.com/darkdestiny/comments/120748.htmlhttp://www.shnenglu.com/darkdestiny/archive/2010/07/19/extra_mp3_in_linux.html#Feedback1http://www.shnenglu.com/darkdestiny/comments/commentRss/120748.htmlhttp://www.shnenglu.com/darkdestiny/services/trackbacks/120748.html 事情的v因大概是,x在某个游戏视频里哼哼了几?惛_用来做信息铃声可能会?于是动手了.

首先是将视频down下来,用的是firefox上的某个插g,格式是flv.下蝲后首先要做的是格式转换到mp3,|上搜烦?U方?只有最后一U成功了....

  1. 用mplayer的{?可ȝp|?/li>
  2. 用ffmpeg转换,可ȝp|?/li>
  3. 用mencoder转换,ȝ成功?/li>

接下?开始提取音乐的片段.因ؓx哼g大概7,8U吧,要从整个文g里提取这7,8U?其他什么凤姐啊著姐啊专家啊的最讨厌?提取的Y件用的是audacity,所见所?随便试了几下就提取出来?q程大概?

  1. 在音轨上选中要导出的区域,反复试听,满意为止.可以通过数D入微?/li>
  2. 在菜单上选中export selection,导出

导出后立卌入手Zn受一?l果声音太大,感觉p糕.要降低音量才?搜烦出可以用mp3gain降低音量,默认?9db,降音后感觉很?声音刚刚?柔柔?



LOGOS 2010-07-19 08:02 发表评论
]]>
month-flow [6]http://www.shnenglu.com/darkdestiny/archive/2010/06/27/118836.htmlLOGOSLOGOSSun, 27 Jun 2010 13:56:00 GMThttp://www.shnenglu.com/darkdestiny/archive/2010/06/27/118836.htmlhttp://www.shnenglu.com/darkdestiny/comments/118836.htmlhttp://www.shnenglu.com/darkdestiny/archive/2010/06/27/118836.html#Feedback0http://www.shnenglu.com/darkdestiny/comments/commentRss/118836.htmlhttp://www.shnenglu.com/darkdestiny/services/trackbacks/118836.html阅读全文

LOGOS 2010-06-27 21:56 发表评论
]]>
python code snippethttp://www.shnenglu.com/darkdestiny/archive/2010/05/24/116247.htmlLOGOSLOGOSMon, 24 May 2010 12:05:00 GMThttp://www.shnenglu.com/darkdestiny/archive/2010/05/24/116247.htmlhttp://www.shnenglu.com/darkdestiny/comments/116247.htmlhttp://www.shnenglu.com/darkdestiny/archive/2010/05/24/116247.html#Feedback0http://www.shnenglu.com/darkdestiny/comments/commentRss/116247.htmlhttp://www.shnenglu.com/darkdestiny/services/trackbacks/116247.html -- def __init__(self, **argss):
---- self.__dict__ = dict(argss)

player = LuaTable(name = 'p1', hp = 10)
print player.name
print player.hp

dog = LuaTable(name='dog', type='dog')
print dog.name
dog.food = 'bone'

I hate python dict, so make something like lua table.


LOGOS 2010-05-24 20:05 发表评论
]]>
99þùۺϾƷӰԺ| պþþþĻ| AVպAVþ| Ʒþһ| þþþþþ97| 99þþƷӰԺѼ| þþþþüƷþþ| vĻþ| ŷ˾þƬ| ŷպþAV| þþƷ99þ㽶| ޾ƷۺϾþ| պŷۺϾþӰԺd3| ŷѹۿþ| þۺ97ɫһһ| ݺɫۺϾþ| þþƷƷ޾Ʒ| þһ| ˹ھƷþþþһ| þ99Ʒþ99С˵| 99þù뾫ƷѾþþþ| 츾þþ| ޾Ʒרþͬ| þþþƷ| һaƬþëƬ| ޾þþһ| þþƷþý| þ99ۺϾƷҳ| 91þþƷ91ɫҲ| þù߳׽ѹۿ| þþ뾫Ʒպ˳| þþƷŷպ| þùҹAVӰԺ| þù鶹91| ŷһþ| ƷþëƬ| 99þɫĻ| þþþƷѹĻ| þùƷ99Ʒ987| 97rþþƷ99| Ʒþøһ|