??xml version="1.0" encoding="utf-8" standalone="yes"?>国内精品久久久久影院网站,www性久久久com,亚洲AV日韩精品久久久久久久 http://www.shnenglu.com/ronliu/思A的自留地zh-cnWed, 07 May 2025 20:43:02 GMTWed, 07 May 2025 20:43:02 GMT60告别低水q重复工?/title><link>http://www.shnenglu.com/ronliu/archive/2009/06/21/88231.html</link><dc:creator>ronliu</dc:creator><author>ronliu</author><pubDate>Sun, 21 Jun 2009 12:18:00 GMT</pubDate><guid>http://www.shnenglu.com/ronliu/archive/2009/06/21/88231.html</guid><wfw:comment>http://www.shnenglu.com/ronliu/comments/88231.html</wfw:comment><comments>http://www.shnenglu.com/ronliu/archive/2009/06/21/88231.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ronliu/comments/commentRss/88231.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ronliu/services/trackbacks/88231.html</trackback:ping><description><![CDATA[      2009q?月的一天,我在甲方办公室加班调试程序,W记本的屏幕只有12英寸Q我得不停地在调试器和编辑器之间切换Q观察断点的执行情况Q发C码中的问题。在那一刻,我突然觉得所做的完全?span style="FONT-WEIGHT: bold"><wbr>低水q重复工?/span><wbr>?br>        1. 对业务流E不熟悉Q对自己的代码不熟悉Q编译运行后不能预测l果?br>        2. 做管理YӞ重复性工作太多?br>        3. 技术视野有限,不能从一个更q的角度ȝ待问题?br>        对于W一个问题,首要要求在写完代码后做reviewQ把代码详细M遍想一遍,认无误后才~译。review要随时地做,写完一个函数完成一个功能块Q都要检查,想一惌D代码在整个业务程中的位置。对代码做到心中有数Q而不至于不停的开调试器(调试器是一个效率低下的~由之一Q?br>       重复性工作多Q这个是理软g固有属性,能否重复性的工作抽离出来Q在之前的项目中Q做了很多这斚w的尝试。有一定成效。但另一斚wQ由于经验不I强扭地将一些个性化的东西抽d来,最后代码组l结构؜乱。要辑ֈ重用Q有很多条\可以辑ֈQ但׃技术的U篏不够Q看C条\׃条\是最好的Q一往无前地闯q去。其实还有很多更好的选择Q只是因为技术积累不够,而工期紧张,没得选了?br>       视野有限Q所看到仅仅是所写的Q而不能引发更加广度的联想。比如说在asp.net中的master面Q自定义控gQ管理Y件三层架构的优势Qmvc{等。没有深d了解和实际的体验Q在目中自然无法联惛_。所以只能做一些简单的重复工作? <img src ="http://www.shnenglu.com/ronliu/aggbug/88231.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ronliu/" target="_blank">ronliu</a> 2009-06-21 20:18 <a href="http://www.shnenglu.com/ronliu/archive/2009/06/21/88231.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>正则表达式(一Q?/title><link>http://www.shnenglu.com/ronliu/archive/2009/03/11/76268.html</link><dc:creator>ronliu</dc:creator><author>ronliu</author><pubDate>Wed, 11 Mar 2009 12:01:00 GMT</pubDate><guid>http://www.shnenglu.com/ronliu/archive/2009/03/11/76268.html</guid><wfw:comment>http://www.shnenglu.com/ronliu/comments/76268.html</wfw:comment><comments>http://www.shnenglu.com/ronliu/archive/2009/03/11/76268.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/ronliu/comments/commentRss/76268.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ronliu/services/trackbacks/76268.html</trackback:ping><description><![CDATA[<p>    在日常生zMQ经常有大量的文本需要处理,正则表达式正是基于此提出的。本文将l合一些具体的实例来解释它。虽然在不同的语a环境中,正则表达式有不同的语法规则,但其基本语义却是一致的?a title="http://en.wikipedia.org/wiki/Regular_expression" >http://en.wikipedia.org/wiki/Regular_expression</a>。这是一个系列教E。本节只是一个开胃菜:)</p> <p>    某一ơ同学很无聊Q然后问我电脑上有无说。这是显然的Q我是网l小说迷嘛!从v点down下无数小说存在电脑上Q名字都懒得改,都是以数字打_然后以?txt”结,比如23432.txt之类的。当Ӟ文g查找q是得用<a >Everything</a>Q要不然电脑上的上百万个文gQ手会抽{的?/p> <p>    Q注Q我以ؓEverything是史上最快的文g查找工具Q强烈推荐!Q?/p> <p>   先用"*.txt"试一下,:(Q给Z大堆文本文g呀。范围太qѝ还是得?strong>正则表达?/strong>来?/p> <p>  <font color="#800000">^[0-9]*\.txt</font></p> <p>    YesQ给Z我电脑上存储的所有小说了?/p> <p><a href="http://www.shnenglu.com/images/cppblog_com/ronliu/WindowsLiveWriter/EverythingVIMPython_113E4/image_2.png"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/ronliu/WindowsLiveWriter/EverythingVIMPython_113E4/image_thumb.png" width="335" height="132"></a> </p> <p>    解释一下: <br>    ^[0-9]表示文g名以0-9之间的数字开_^是开头的意思($l尾Q?<br>    *表示它前面的字符Q这里是数字Q要重复若干ơ(>=0Q?<br>    \.匚w139869.txt中的那个数炏V因为正则表辑ּ中,?’被占用了,表示L字符Q所以要转义一?<br>    txtQ这׃说了Q紧接着数点的是‘txt’三个字W?/p> <p>    Everything只支持部分正则表辑ּ, <font color="#800000">| () ? * + . [] [^] ^ $ {m,n} </font><font color="#000000">不过已经完全够用了?br><a >http://xbeta.info/everything/faq.htm#How_do_I_use_regex</a></font></p> <p><font color="#000000">    考虑q样一个问题:目l在验收的时候,被指Z码的注释量不够,需要达到至?0%才行Q也是臛_需要添?500行注释。此时老师提出Q要所有的函数加上注释Q函数的名称、功能、参数、返回倹{这个时候,考虑能不能用正则表达式,提取源代码中的函C息,然后自动生成注释模板Q比?</font></p> <blockquote> <p><font color="#000000">int foo(int x, int y); <br>替换为: <br></font>/** <br>* @method foo <br>* @para x <br>* @para y <br>* @return <br>*/ <br>int foo(int x, int y);</p></blockquote> <p>    注意刎ͼq个函数参数的个数和cd可以是变动的Q返回值限定符的个数和cd也是变动的,比如staticcd函数Q有两个限定W,而构造函敎ͼ则没有限定符Q还有部分virtualcd函数?/p><img src ="http://www.shnenglu.com/ronliu/aggbug/76268.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ronliu/" target="_blank">ronliu</a> 2009-03-11 20:01 <a href="http://www.shnenglu.com/ronliu/archive/2009/03/11/76268.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>QT~程之configue Dialoghttp://www.shnenglu.com/ronliu/archive/2009/03/08/75939.htmlronliuronliuSun, 08 Mar 2009 14:20:00 GMThttp://www.shnenglu.com/ronliu/archive/2009/03/08/75939.htmlhttp://www.shnenglu.com/ronliu/comments/75939.htmlhttp://www.shnenglu.com/ronliu/archive/2009/03/08/75939.html#Feedback0http://www.shnenglu.com/ronliu/comments/commentRss/75939.htmlhttp://www.shnenglu.com/ronliu/services/trackbacks/75939.html        本例学习QDialog。预期目的:1. l织多个H体?. 学习Dialog的相兛_性?. 学习一些widget?/p>

        1. 本例中,定义?个不同的PageWidgetQ都是从QWidget中派生。用户在左侧list更换后,切换C同的配置c?/p>

        2. QStackedWidget提供一lwidgetQ但一ơ只能有一个显C。将q个widgetd到layout中?/p>

        3. 在layout讄中,一般ؓMainWindow讄一个layoutQ然后向q个layout中添加不同的widgetQlayout?/p>

        4. 一个窗体是Window或者DialogQ向q个H体中添加其他的WidgetQ这些Widget可以使系l提供的Q也可以是用戯己定义的?/p>

        5. 本例中用两ơQListWidget。一ơؓ图文Q一ơؓ文字。setViewMode()Q设|ListWidget为图标模式。通过setIcon()Q设|Item的图标。configButton->setIcon(QIcon(":/images/config.png"));

        6. 定义QListWidgetItem的父cMؓQListWidgetQ设|QListWidget的项。或者用addWidget()之类的方法?/p>

        7. 左侧select切换Ӟif(!current)  current = previous;防止current?的意外情c?/p>

        8. 自定义了一个slotQ用来处理contentList被选中切换时Q相应的处理Ҏ。也是讄stackedWidget的被选中V通过contentlist的row()定indexQ然后设|第indexؓ当前item?/p>

ronliu 2009-03-08 22:20 发表评论
]]>
使用QTq行国际化语a版本的开?/title><link>http://www.shnenglu.com/ronliu/archive/2009/02/26/75006.html</link><dc:creator>ronliu</dc:creator><author>ronliu</author><pubDate>Thu, 26 Feb 2009 12:09:00 GMT</pubDate><guid>http://www.shnenglu.com/ronliu/archive/2009/02/26/75006.html</guid><wfw:comment>http://www.shnenglu.com/ronliu/comments/75006.html</wfw:comment><comments>http://www.shnenglu.com/ronliu/archive/2009/02/26/75006.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ronliu/comments/commentRss/75006.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ronliu/services/trackbacks/75006.html</trackback:ping><description><![CDATA[<p>2008.2.27 by RonLiu <p>Ҏ一Q用tr()函数 <p>QT中,用QString存储所有可见得文本/字符Ԍ使用tr()各U字W编码的文本转化为QStringQ然后既可以他们设|ؓ控g的显C文本? <p>在Widget的构造函C加入Q? <p>QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk")); <p>QFont font1("Times", 12, QFont::Normal, FALSE); <p>this->setFont(font1); <p>q样在该H体的其他位|,可以使用tr()讄控g的内容,他们均可以显CZؓ中文了? <p>setWindowTitle(tr("消息嗅探?)); <p>注意Q这U方式设|的中文昄对于整个控gQ以及它们的子控仉生效。如果在子控件中另外讄了setFont()Q那么全局的字体方案将会失效? <p>Ҏ二:使用translate()转换 <p>先将需要显C的中文转化为gbk~码的unicodeQ然后将unicode转化为QByteArrayQ在只转化为char指针Qƈ传递给translate()函数? <p>注意Q这U方法显CZ文时Q会出现失效的情c譬如在菜单栏中可以昄中文Q但是在Label或者Button中却无法昄中文? <p>另外Q这U方法仅仅徏议只有少数按钮显CZ文时选用Q否则,代码写得也麻烦呀? <p>如果使用QDesigner生成的ui文gQ后创徏的界面类Q一般都有一个retranslateUIQ就是做q个用的? <p>const char * stringToUnicode(const char *str) <p>{ <p>static QTextCodec *codec = QTextCodec::codecForName("gbk"); <p>QByteArray qba = (codec->toUnicode(str)).toLocal8Bit(); <p>const char * c_str = qba.data(); <p>return c_str; <p>} <p>menuFile->setTitle(QApplication::translate("MainWindow", stringToUnicode("文g"), 0, QApplication::CodecForTr)); <p>QTextCodeC用于在不同的~码Ҏ之间q行转换? <p>Ҏ三:使用Linguist <p>q是QT自带的用于Y件本地化的Y件的工具。没仔细研究q? <p>q种方式可以用于外文软g的本地化Q那么相比于前两者方式,处于更高的层ơ? <p>延生一Q编写多语言版本的QTE序 <p>Q本部分内容参考QT手册Internationalization一节) <p>在方法一和方法二U,仍然是一个程序对应一个语a。如果希望QTE序针对不同的语aQ有不同的版本,该如何操作? <p>准备一?pro文gQ如Q? <p>HEADERS         = funnydialog.h \ <p>                   wackywidget.h <p>SOURCES         = funnydialog.cpp \ <p>                   main.cpp \ <p>                   wackywidget.cpp <p>FORMS           = fancybox.ui <p>TRANSLATIONS    = superapp_dk.ts \ <p>                   superapp_fi.ts \ <p>                   superapp_no.ts \ <p>                   superapp_se.ts <p>1. 使用lupdateQ从QTE序中抽取可转换的文本,生成一个ts文g? <p>2. 使用Linguist工具Q在原始文本间{换。ts文g以xml格式保存Q可以手动修攏V? <p>3. q行lreleaseQ生成轻量的qm格式的消息文件。这U文件可以在E序中用? <p>4. In your application, you must QTranslator::load()  the translation files appropriate for the user's language, and install them using <a href="http://www.shnenglu.com/images/cppblog_com/ronliu/WindowsLiveWriter/QT_11AF3/qcoreapplication.html">QCoreApplication::installTranslator</a>().</p><img src ="http://www.shnenglu.com/ronliu/aggbug/75006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ronliu/" target="_blank">ronliu</a> 2009-02-26 20:09 <a href="http://www.shnenglu.com/ronliu/archive/2009/02/26/75006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse中CDT的设|?/title><link>http://www.shnenglu.com/ronliu/archive/2009/02/20/74395.html</link><dc:creator>ronliu</dc:creator><author>ronliu</author><pubDate>Fri, 20 Feb 2009 06:15:00 GMT</pubDate><guid>http://www.shnenglu.com/ronliu/archive/2009/02/20/74395.html</guid><wfw:comment>http://www.shnenglu.com/ronliu/comments/74395.html</wfw:comment><comments>http://www.shnenglu.com/ronliu/archive/2009/02/20/74395.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ronliu/comments/commentRss/74395.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ronliu/services/trackbacks/74395.html</trackback:ping><description><![CDATA[<p>1. Z么用Eclipseq行C++的开发?/p> <p>      因ؓEclipse的IDE支持多种语言Q如Java、Python、C++Q也支持不同的操作系l。这样不换C么环境,或者换一U语aQ熟悉的环境不会变化?/p> <p>2. 安装和设|Eclipse/CDT的环境?/p> <p>      a. mingw的安装与配置?a title="http://www.shnenglu.com/romangol/archive/2008/04/19/47595.html" href="http://www.shnenglu.com/romangol/archive/2008/04/19/47595.html">http://www.shnenglu.com/romangol/archive/2008/04/19/47595.html</a>。(PATHQC_INCLUDEPATHQCPLUS_INCLUDE_PATH, LIBRARY_PATHQ?/p> <p>      b. Java虚拟机的安装与设|。(PATHQ?/p> <p>      c. Eclipse/CDT的下载与安装?a title="http://www.ibm.com/developerworks/cn/linux/opensource/os-ecc/index.html" >http://www.ibm.com/developerworks/cn/linux/opensource/os-ecc/index.html</a></p> <p>3. toolchain讄</p> <p>      新徏一个自带makefile的helloworldE序Qbuild可以通过。但点击q行Ӟ<strong>提示找不到可执行文g</strong>。原因在于,新徏目Ӟ<strong>没有选择合适的toolchain</strong>。如果是下蝲后解压后得到的CDTQ那么toolchain已经内置在其中了。但如果是update的方式获取,则需要手动下载?/p> <p>     我安装的是mingw的编译环境,但选择cygwinQ却仍然可以生成可执行的E序。奇怪的事情。获取是因ؓQ设|configurationӞ通过查环境变量来获取实际调用的编译器Q?/p> <p>      <a href="http://www.shnenglu.com/images/cppblog_com/ronliu/WindowsLiveWriter/EclipseCDT_BDAE/image_2.png"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/ronliu/WindowsLiveWriter/EclipseCDT_BDAE/image_thumb.png" width="244" height="54"></a>   <img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/ronliu/WindowsLiveWriter/EclipseCDT_BDAE/image_thumb_1.png" width="226" height="52"><br>      <a href="http://www.shnenglu.com/images/cppblog_com/ronliu/WindowsLiveWriter/EclipseCDT_BDAE/image_6.png"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/ronliu/WindowsLiveWriter/EclipseCDT_BDAE/image_thumb_2.png" width="346" height="30"></a> </p> <p>4. 何ؓtoolchainQ?/p> <p>      A toolchain is a set of tools (such as a compiler, linker, and assembler) <u>intended to build your project</u>. Additional tools, such as a debugger, can be associated with a toolchain. There can be several toolchains available, depending on the compilers installed on your system.</p> <p>5. 有哪些toolchain可供选择Q?/p> <p>     CygwinQ通过支持GNU libcq行库,它完全实现gun toolchainQ用dll向上提供Windows的兼容层?/p> <p>     mingw。windowsq_下gnu toolchain的入口,它直接用windows cq行库,不需要兼容层Q但可移植性要差一些?/p> <p>6. Eclipse如何使用q些toolchainQ?TODO</p> <p>     The CDT is designed to provide an <strong>extensible architecture</strong>, that will provide support for <strong>integration of tools</strong> provided by Independent Software Vendors?/p> <p> </p> <p>附:</p> <p>       Eclipse q_只是用于开发者工L一个框Ӟ它不直接支持 C/C++Q它使用外部插g来提供支持。CDT 是完全用 Java 实现的开放源码项目(Ҏ Common Public License 特许的)Q它作ؓ Eclipse SDK q_的一l插件。这些插件将 C/C++ 透视图添加到 Eclipse 工作収ͼWorkbenchQ中Q现在后者可以用许多视图和向g及高U编辑和调试支持来支?C/C++ 开发?/p> <p>下面?CDT 插gQ组件的完整列表Q?<ul> <li><b>?CDT 插gQPrimary CDT plug-inQ?/b>是“框架”CDT 插g? <li><b>CDT 功能 EclipseQCDT Feature EclipseQ?/b>?CDT 功能lgQFeature ComponentQ? <li><b>CDT 核心QCDT CoreQ?/b>提供了核心模型(Core ModelQ、CDOM 和核心组ӞCore ComponentQ? <li><b>CDT UI</b>是核?UI、视图、编辑器和向对{? <li><b>CDT 启动QCDT LaunchQ?/b>如编译器和调试器之类的外部工h供了启动机制? <li><b>CDT 调试核心QCDT Debug CoreQ?/b>提供了调试功能? <li><b>CDT 调试 UIQCDT Debug UIQ?/b>?CDT 调试~辑器、视囑֒向导提供了用L面? <li><b>CDT 调试 MIQCDT Debug MIQ?/b>是用于与 MI 兼容的调试器的应用程序连接器?</li></ul><img src ="http://www.shnenglu.com/ronliu/aggbug/74395.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ronliu/" target="_blank">ronliu</a> 2009-02-20 14:15 <a href="http://www.shnenglu.com/ronliu/archive/2009/02/20/74395.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>QT~程之Layouthttp://www.shnenglu.com/ronliu/archive/2009/02/16/73971.htmlronliuronliuMon, 16 Feb 2009 14:28:00 GMThttp://www.shnenglu.com/ronliu/archive/2009/02/16/73971.htmlhttp://www.shnenglu.com/ronliu/comments/73971.htmlhttp://www.shnenglu.com/ronliu/archive/2009/02/16/73971.html#Feedback3http://www.shnenglu.com/ronliu/comments/commentRss/73971.htmlhttp://www.shnenglu.com/ronliu/services/trackbacks/73971.html      对于QT的学习,一直处于半懂不懂的状态,看文档也只处于“貌似”的境界Q导致真正碰到问题时׃屁掉。这ơ阅读basiclayout的demo说明Q甚感惭愧,之前学得太肤?/p>

      1. 设计一个窗体,安排好它的函数和属性?/p>

      2. 基本的layout包括四类QQHBoxLayoutQQVBoxLayoutQQGridLayoutQQFormLayout。前两个widget水^或竖直防止,gridwidget以格子的形式攄Qformlayoutwidget以row的Ş式放|?/p>

      3. layout的用方法是Q先定一个layoutQ再向这个layout中添加widgetQ然后用父cM的setlayout()Q设|这个widget的layout?/p>

      4. layout有一个setMenubarQ可以得Dialog也可以设|菜单栏?/p>

      5. 在定义类Ӟ定义一个enumQ之后就可以直接使用q个enum中的元素?/p>

      6. QT赋参数的Ҏ为tr("Button %1").arg(i + 1)?/p>

      7. QGridLayout有setColumnStretch(int, int)ҎQ用于设|grid中格子的伔R因子Q也是能够占用多大的空间?/p>

      8. QDialogButtonBox指用于确?退出的buttonl。它是这两类常用button的一个boxl合?/p>

      9. 本例中涉及到的其它widget包括Q?/p>

             a.  QTextEditQ文本编辑框Q支持plain text和html text

             b.  QPushButtonQ按?/p>

             c.  QGroupBoxQ将widget以box的Ş式组l在一?/p>

             d. QLineEditQ行~辑?/p>

             e. QComboBoxQ下拉框

             f. QSpinBoxQspin框,提供数值选择?/p>

ronliu 2009-02-16 22:28 发表评论
]]>
使用Python操作cppblog的metablog接口http://www.shnenglu.com/ronliu/archive/2009/02/11/73508.htmlronliuronliuWed, 11 Feb 2009 14:36:00 GMThttp://www.shnenglu.com/ronliu/archive/2009/02/11/73508.htmlhttp://www.shnenglu.com/ronliu/comments/73508.htmlhttp://www.shnenglu.com/ronliu/archive/2009/02/11/73508.html#Feedback0http://www.shnenglu.com/ronliu/comments/commentRss/73508.htmlhttp://www.shnenglu.com/ronliu/services/trackbacks/73508.html      cppblog提供了metablog接口Q供用户使用一些桌面工h作blog。MetaBlogAPI是一个XML-RPC Service。它可以让用戯E调用BlogE序提供的接口来完成一些功能,比如发布新的文章Q查看最新文章的列表{?a title="http://dudu.cnblogs.com/articles/411388.html" >http://dudu.cnblogs.com/articles/411388.html

      先看cppblog的一个接口:

metaWeblog.getCategories()的参?/p>

image

q回l构?/p>

image

      下面介绍使用Python来操作metablog接口。既然metablog是一个xml-rpc接口Q那么就使用Python的xmlrpc库吧Q好消息是这个库Python已经提供了,是xmlrpclib?/p>

      代码如下:

import xmlrpclib

user = 'ronliu'

pass = '123'

url = 'http://www.shnenglu.com/ronliu/services/metaweblog.aspx'

server = xmlrpclib.Server(url)

cata = server.metaWeblog.getCategories('', user, pass)    #典型的rpc调用

for e in cata:

     print e['categoryid'], e['title']

操作l果Q?/p>

image 

 

      使用xmlrpclib的Server()ҎQ可以创Z个rpc服务器的代理Q然后通过q个代理讉Kq程的方法。可以用Python提供的调试功能查看rpc的执行过E:

import httplib

httplib.HTTPConnection.debuglevel = 1

image

image



ronliu 2009-02-11 22:36 发表评论
]]>
体验51ditu的开放APIhttp://www.shnenglu.com/ronliu/archive/2009/02/11/73492.htmlronliuronliuWed, 11 Feb 2009 12:25:00 GMThttp://www.shnenglu.com/ronliu/archive/2009/02/11/73492.htmlhttp://www.shnenglu.com/ronliu/comments/73492.htmlhttp://www.shnenglu.com/ronliu/archive/2009/02/11/73492.html#Feedback0http://www.shnenglu.com/ronliu/comments/commentRss/73492.htmlhttp://www.shnenglu.com/ronliu/services/trackbacks/73492.html       使用q些apiQ即使一个门外汉也可以ؓ自己的网站添加地图?/p>

      下面的代码,会创徏一个简单的地图|页。如Q?/p>

<html xmlns=" >
<head runat="server">
    <title>地图试</title>
    <script language="javascript" src="
</head>

<body>
    <form id="form1" runat="server">
        <div id="myMap" style="position:relative; width:400px; height:300px;"></div>
        <script language="javascript">
            var maps = new LTMaps( "myMap" );   //LTMapscL一个参敎ͼ是该地图所在div的name
            maps.cityNameAndZoom( "beijing" , 5 );
            var c = new LTSmallMapControl();   //单的攑֤~小?br>            maps.addControl(c);
            var point = new LTPoint( 11640969 , 3989945 );//北京
            var marker = new LTMarker( point );  //一个标?br>            maps.addOverLay( marker );  //标记覆盖到地图涂层?br>            var text = new LTMapText( marker );
            text.setLabel( "我的位置" );
            maps.addOverLay( text );
        </script>
    </form>
</body>
</html>

详细的API说明?a title="http://api.51ditu.com/docs/index.html" >http://api.51ditu.com/docs/index.html可以查询?/p>

51API架构



ronliu 2009-02-11 20:25 发表评论
]]>
socket~程之端口占?及socket高选项http://www.shnenglu.com/ronliu/archive/2009/01/06/71312.htmlronliuronliuTue, 06 Jan 2009 03:52:00 GMThttp://www.shnenglu.com/ronliu/archive/2009/01/06/71312.htmlhttp://www.shnenglu.com/ronliu/comments/71312.htmlhttp://www.shnenglu.com/ronliu/archive/2009/01/06/71312.html#Feedback0http://www.shnenglu.com/ronliu/comments/commentRss/71312.htmlhttp://www.shnenglu.com/ronliu/services/trackbacks/71312.html可以讄socket的选项为SO_REUSEADDRQ其允许完全重复的l定?br>    int rc = 1;
    setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *)&rc, sizeof(rc));
    bind(fd, (struct sockaddr *) &addr, sizeof(addr));

setsockopt的函数原型ؓQ?br>       int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen);
       int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen);
       其中optval为选项的开x志符Q例如我使用rcQ?开启SO_REUSEADDR?br>
fcntl 文g控制Qfile controlQ譬如控制socket为非dIOQ信号驱动IO{。类似的有ioctl


ronliu 2009-01-06 11:52 发表评论
]]>
三个月ȝ和三个月计划Q一Q?/title><link>http://www.shnenglu.com/ronliu/archive/2009/01/04/71113.html</link><dc:creator>ronliu</dc:creator><author>ronliu</author><pubDate>Sun, 04 Jan 2009 03:13:00 GMT</pubDate><guid>http://www.shnenglu.com/ronliu/archive/2009/01/04/71113.html</guid><wfw:comment>http://www.shnenglu.com/ronliu/comments/71113.html</wfw:comment><comments>http://www.shnenglu.com/ronliu/archive/2009/01/04/71113.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ronliu/comments/commentRss/71113.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ronliu/services/trackbacks/71113.html</trackback:ping><description><![CDATA[     Q一Q感冒了Q浑w发抖,头疼Q胸口疼Q胃疹{不注意保暖Q以及严重的不规律饮食带来的。现在只x些跑回去钻被H加衣服。网l小说是不能看了Q不规律的饮食很大程度与此有养I且媄响学习状态。可以多M些历Ԍ政治Q经方面的书,比如世界通史之类。关注养生,病殃D的状况实在隑֏Q学会调养自qw体。有条g的话Q可以多ȝ一些?br>     Q二Q找工作期间Q最遗憾的是Q没有拿得出手的技能,以及拿得出手的成果。在扑֮工作之后Q就开始急于求成Q一心想作一个东西出来,但经常是想了却不做,做时半途而废Q然后又开始新的想法。很躁Q急于求成。在今后的三个月Q可以多作技能方面的ȝ。比如编E语aQ能否作到精通?需要锻炼的技能包括:<br>      甌Ӏ语a是表达思想的工P语言说不好,不精通,再好的思想也表达不出来。反q来Q语a学得好了Q会促进思维的成ѝ然后,掌握一门专_语言Q也是将来安w立命,向更深层ơ的架构师成长的Ҏ。但q前,有什么语a是真正拿的出手的QCQ+是最熟悉的,却仍然谈不上_N。在今后的三个月Q对CQ+的深入锻|是重炏V?br>      乙。在q_的编E中Q算法用的似乎ƈ不多Q但对培养计机的思维Q培养设计能力,很有好处。更高层的,如设计模式之cR可以将语言的学习和法Q设计模式的学习l合h?br>     Q三Q新的一q_增大一岁。不知不觉,二十好几。回头看Ӟ什么也没有做成。感情上Q学业上Q以及和家h的关p,都不如意。这是Qw的Ҏ原因。但q些问题Q却不是一y而就的,需要时间的U篏Q需要精力的U篏Q不是随惛_有的。就像Scott信中的那位技术ȝQ没?q甚?q以上的技术沉淀Q能够将技术玩到如指臂使?淡然Q做好自p做的。清风抚山岗Q明月照大江。高三毕业那q_能够坐在沌Q对q场上h来h往充耳不闻,和尚늻般默诵这两句话,心中淡然。年龄增大,考虑增多Q却来Qw了。在躁和E然之_需要有一个^衡?br>     Q四Q做好接下来的三个月Q?br> <img src ="http://www.shnenglu.com/ronliu/aggbug/71113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ronliu/" target="_blank">ronliu</a> 2009-01-04 11:13 <a href="http://www.shnenglu.com/ronliu/archive/2009/01/04/71113.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.dlwz8.cn" target="_blank">þݺҹҹ96׽</a>| <a href="http://www.e-ben.cn" target="_blank">˾þ777777</a>| <a href="http://www.whruide.cn" target="_blank">99þþƷһ</a>| <a href="http://www.enepower.cn" target="_blank">ŷ糱þþXXXXx</a>| <a href="http://www.loverhouse.cn" target="_blank">ƷƷھþø </a>| <a href="http://www.1122sw.cn" target="_blank">˾ƷþѶ</a>| <a href="http://www.baicar.cn" target="_blank">Ʒһþò</a>| <a href="http://www.taobaoluntan.net.cn" target="_blank">99þ99ֻѷѾƷ</a>| <a href="http://www.kyxu.cn" target="_blank">99Ʒþþþþþ</a>| <a href="http://www.printinginfo.com.cn" target="_blank">պþþþĻ</a>| <a href="http://www.dangong02.cn" target="_blank">ҹþþƷ</a>| <a href="http://www.nieqiu.cn" target="_blank">þþƷӰԺ</a>| <a href="http://www.shbolangjixie.cn" target="_blank">þþþAV</a>| <a href="http://www.lzjrdfl.cn" target="_blank">þþþseɫ͵͵޾Ʒav</a>| <a href="http://www.acmpm.cn" target="_blank">99þۺϺݺۺϾþֹ</a>| <a href="http://www.oulihong.cn" target="_blank">ҹƷþþþó</a>| <a href="http://www.snaiye.cn" target="_blank">þ޾ƷƵ</a>| <a href="http://www.sh-ar.cn" target="_blank">þۺϺݺۺϾþۺ88</a>| <a href="http://www.um258.cn" target="_blank">ʵҶ԰׾ʾþ</a>| <a href="http://www.51d1.cn" target="_blank">˾þˬ</a>| <a href="http://www.xiaoneiweb.cn" target="_blank">ۺϾþøϾþúݺݺ97ɫ</a>| <a href="http://www.dztsc.cn" target="_blank">þ99Ʒ</a>| <a href="http://www.515176x.cn" target="_blank">þþþAVƬ</a>| <a href="http://www.swwpb.cn" target="_blank">ҹAVëƬþ</a>| <a href="http://www.yingongshe.cn" target="_blank">Ʒ99þþþþլ </a>| <a href="http://www.a88wx.cn" target="_blank">91Ըߺþþþ</a>| <a href="http://www.jrchen.cn" target="_blank">޹Ʒþþò</a>| <a href="http://www.awxsp.cn" target="_blank">þAVԴվ</a>| <a href="http://www.jtuw.cn" target="_blank">þü¶</a>| <a href="http://www.51kuyu.cn" target="_blank">Ʒþ</a>| <a href="http://www.hfpump.com.cn" target="_blank">þþþó˾ƷĻ</a>| <a href="http://www.manour.cn" target="_blank">ŷۺϾþͼƬ</a>| <a href="http://www.168sf.com.cn" target="_blank">ŷþþƷһcƬƬ</a>| <a href="http://www.021-10000.cn" target="_blank">VۺVŷþ</a>| <a href="http://www.eehqv.cn" target="_blank">þþAVҰ</a>| <a href="http://www.abcdds.cn" target="_blank">þˬˬƬAV</a>| <a href="http://www.galidun.cn" target="_blank">þˬˬƬAV</a>| <a href="http://www.xczg.org.cn" target="_blank">޹Ʒþþþվ </a>| <a href="http://www.gdlj2004.cn" target="_blank">þþƷҹƬ</a>| <a href="http://www.shuffley.cn" target="_blank">97þþþ</a>| <a href="http://www.qwqsd.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>