[{"data":1,"prerenderedAt":254},["ShallowReactive",2],{"page-11":3},{"title":4,"articles":5,"hot_article":43,"month_arch":102,"total":250,"cover":251},"第11页 - 独孤影的博客",[6,16,25,34],{"id":7,"title":8,"uri":8,"author":9,"tags":10,"created_at":13,"view_count":14,"content":15},4,"变形金刚4中的中国元素","duguying",[11,12],"中国元素","变形金刚","2014-07-09 16:55:32",3547,"\u003Cp>考完试和同学一起去放松了一下，看了一部3D电影——《变形金刚4绝迹重生》。第一次看3D电影，感觉还不错，只是戴两层眼镜有点不舒服，哈哈。电影的故事情节一般，各种特效的确很强大，自然少不了美国大片的打斗场景，大气磅礴的恢宏场面从一开始贯穿全片，电影中的各种建筑物自然是少不了被摧残，只是这次摧毁的不仅仅是美国的建筑物，也有中国的建筑。\u003C\u002Fp>\u003Cp>网上查了一下，《变形金刚4》是派拉蒙影业、中国电影频道以及加赋公司联合制作的。既然是中国人参与制作的电影，中国的戏份自然是少不了。因此，电影中的中国元素也是众多。在这之前值得一提的是，电影中的植入广告倒是挺多，不过还好植入广告并不那么让人反感，场景刚切换到中国，李冰冰就拿着一瓶怡宝矿泉水（怪不得最近买的怡宝矿泉水上面印有变形金刚4的广告），还有那个喝伊利牛奶的美国科学家，以及写着别人厂家名字的几个大烟囱。主角们来到中国后，首先就是在北京，于是便少不了鸟巢这些标志建筑，飞船在空中飞行的时候还有万里长城的背景，后来场景切换到了香港，主角们首先是在比较古老破败的街道巷子中活动，有比较土的电梯，中国功夫，以及多一个人就超重的电梯，更有麻将以及各种熟悉的中国式的普通家庭布局；噢，对啦，还有逃亡时购买路人的摩托车时候的本地方言对话。穿过狭隘的过道时遇到的几个白发老奶奶，尽管被挡道很着急，却没有做出什么不礼貌的举动。后来的场景中还有各种中国现代化的建筑，当然这些场景都成了机器人战斗的战场。\u003C\u002Fp>\u003Cp>电影全片气势恢宏，较之以前的几部又多出了恐龙机器人，还有更强悍的幕后人物，变形金刚和塞伯坦星球的创造者（尽管只出现在最后的镜头），那是一个屠杀有机生物星球并将其变为塞伯坦星球然后创造出机器人的神秘人物。那些恐龙形态的变形金刚貌似就是外星人在远古时代屠杀了恐龙之后创造的变形金刚。\u003C\u002Fp>\u003Cp>现在的美国大片中出现中国元素已经是屡见不鲜的事情了，从当年的《2012》中的诺亚方舟在中国建成，到《木乃伊3龙帝之墓》，以及现在的《变形金刚4》。一方面是中国电影的积极参与，另一方面也体现出了中国逐渐受到世界的重视，逐渐的矗立于世界强国之列。\u003C\u002Fp>",{"id":17,"title":18,"uri":18,"author":9,"tags":19,"created_at":22,"view_count":23,"content":24},3,"利用开源和免费资源搭建CI环境",[20,21],"CI","测试","2014-07-04 16:54:58",7732,"\u003Cp>前段时间偶然接触到了\u003Cem>持续集成\u003C\u002Fem>(Continuous Integration)这一概念，并对它做了进一步的了解；说是偶然接触到是有原因的，起初我在github上的某些项目里面发现了这些东西\u003C\u002Fp>\u003Cp style=\"text-align: center;\">\u003Ca href=\"\u002F\u002Fduguying.oss-cn-qingdao.aliyuncs.com\u002F2014\u002F9\u002F8\u002Fimage.png\">\u003Cimg src=\"\u002F\u002Fduguying.oss-cn-qingdao.aliyuncs.com\u002F2014\u002F9\u002F8\u002Fimage.png\" title=\"\" alt=\"image.png\"\u002F>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>吸引我的注意力的正是这些绿色的徽章，点入build那个徽章一看，连接到了一个叫做Travis CI的网站，里面有类似控制台输出的信息\u003C\u002Fp>\u003Cp style=\"text-align: center;\">\u003Cimg src=\"\u002F\u002Fduguying.oss-cn-qingdao.aliyuncs.com\u002F2014\u002F9\u002F9\u002Fimage1.png\" title=\"\" alt=\"image1.png\"\u002F>\u003C\u002Fp>\u003Cp>这个的确是控制台输出，看里面的内容知道是通过git clone将这个项目下载到某台linux服务器，然后sudo权限执行了一些shell脚本，再后来就是.\u002Fconfigure、make、make install之类的，这整个流程就是linux用户通过代码安装某个软件的过程。当然，部分项目里面并没有make install，而是make test，这是执行单元测试啊。\u003C\u002Fp>\u003Cp>经过进一步了解后，发现Travis CI就是一个专门提供在线编译以及运行单元测试等工作的一个云平台（或者直白点说就是服务器）。阅读了一下午的Travis CI英文文档后，自己尝试着利用Travis CI为自己的项目也创建一个这样的编译测试环境。\u003C\u002Fp>\u003Cp>首先，Travis&nbsp; CI是可以直接与Github连接，读取项目信息的。然后只要你的项目的根目录下面有一个名为.travis.yml的文件Travis CI即可识别你的项目，并且从这个文件里面读取它所要执行的步骤。当然.travis.yml这个配置文件必须遵守文档中所定义的各种约定，在这之前.travis.yml文件的内容也必须遵守.yml文件的语法格式约定（我有一次就是因为没注意到其中的语法错误导致排错很久）。\u003C\u002Fp>\u003Cul class=\" list-paddingleft-2\">\u003Cli>\u003Cp>yml文件语法应当注意的内容\u003C\u002Fp>\u003Cp>例如:\u003C\u002Fp>\u003Cpre class=\"brush:plain;\">env:\nglobal:\n&nbsp;&nbsp;&nbsp;#&nbsp;The&nbsp;next&nbsp;declration&nbsp;is&nbsp;the&nbsp;encrypted&nbsp;COVERITY_SCAN_TOKEN,&nbsp;created\n&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;via&nbsp;the&nbsp;&quot;travis&nbsp;encrypt&quot;&nbsp;command&nbsp;using&nbsp;the&nbsp;project&nbsp;repo&#39;s&nbsp;public&nbsp;key\n&nbsp;&nbsp;&nbsp;-&nbsp;secure:&nbsp;&quot;q5Wb1ChR5r\u002F52zmkssky4IIM2C3b\u002FItLjfGRuqPgAsU6pgnrJ7GvHC44A\u002Fjvba4rTElxWKXhTyWvskdwSzgCvBs0GIRXHxSYjtcD9IzIMLX7zHfczP2ekH2xGONXhZR1AWN6\u002FYHh1QZ2SwdrlbQv9jybZ9NxWvk9v2IPhdWr5MM=&quot;\nlanguage:&nbsp;c\ncompiler:&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&quot;gcc&quot;\n&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&quot;clang&quot;\nscript:\n&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&quot;chmod&nbsp;777&nbsp;.\u002Fcoverity.sh&quot;\n&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&quot;.\u002Fcoverity.sh&quot;\u003C\u002Fpre>\u003Cp>&nbsp; &nbsp; &nbsp; &nbsp;\u003C\u002Fp>\u003Cp>这其中有部分语法类似于key: value，但是要注意:后面必须有一个空格符，另外，语法还有与python类似的对齐规则，没对齐或者是伪对齐（空格与Tab符对齐）都会导致语法错误。最终的结果是Travis CI报错。\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cul class=\" list-paddingleft-2\">\u003Cli>\u003Cp>compiler项是设置系统编译器，上例中是使用gcc和clang编译器，因此会有两次编译，一次是gcc一次clang编译，当然多个值就会有多个编译，众多的编译构成编译矩阵，可以测试某个项目在不同的环境下面的编译结果。script项是命令Travis CI执行的具体命令，上例中我将命令全部写入到一个\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fduguying\u002FAzalea\u002Fblob\u002Fmaster\u002Fcoverity.sh\">shell文件\u003C\u002Fa>里面去了，script这一项的内容是执行这个shell脚本。详细的配置介绍可以自己查看Travis CI官网上的文档。\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>利用Travis CI你可以做些什么？首先，检测代码在语法上的正确性这是最基本的，简单来说就是检测你的项目是否能够编译通过，是否能够在不同个环境下编译通过。其次，你可以利用一些单元测试对项目进行更进一步的检测，这些根据你的测试代码可以检测出一些逻辑上的错误。\u003C\u002Fp>\u003Cp>其实Travis CI是可以有其他的一些功能的，比如程序发布。例如，我现在需要将编译后的可执行文件发布到项目的官方网站上供别人下载；我可以使用curl命令将可执行文件通过我事先准备好的上传接口上传到我的网站，这样一来，你每次更新代码Travis CI会自动编译完成后直接发送到你指定的网站上，然后你的程序发布可以自动的保持最新版本。\u003C\u002Fp>\u003Cp>事实上类似于Travis CI的网站还比较多，比如\u003Ca href=\"https:\u002F\u002Fdrone.io\">drone.io\u003C\u002Fa>等，当然还有一些收费的CI服务网站，这儿就不提了。最后值得一提的是虽然大部分的免费CI是Linux环境的，但是被我发现了一个Windows环境的CI，而且它有几种环境可以选择，例如Windows Server 2008，最重要的是它也是免费的而且支持许多版本的Visual Studio，也就是说C#、.NET或者是包含Windows API的这些仅能在Windows环境下编译的代码也能够编译，\u003Ca title=\"https:\u002F\u002Fci.appveyor.com\" href=\"https:\u002F\u002Fci.appveyor.com\">https:\u002F\u002Fci.appveyor.com\u003C\u002Fa>就是它，Windows应用程序开发者的福音。\u003C\u002Fp>",{"id":26,"title":27,"uri":27,"author":9,"tags":28,"created_at":31,"view_count":32,"content":33},1,"fork()函数",[29,30],"fork","进程","2013-09-24 06:34:00",5685,"\u003Cp>fork函数可以复制一个当前进程。看代码\u003C\u002Fp>\u003Cpre class=\"brush: cpp;\">#include&nbsp;&lt;stdio.h&gt;\nint&nbsp;main(void){\n&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;pid;\n&nbsp;&nbsp;&nbsp;&nbsp;pid=fork();\n&nbsp;&nbsp;&nbsp;&nbsp;if(pid&gt;0){\u002F\u002F在父进程\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(\"Parents&nbsp;Process,&nbsp;The&nbsp;son&nbsp;pid:&nbsp;%d\\n\",&nbsp;pid);\n&nbsp;&nbsp;&nbsp;&nbsp;}else&nbsp;if(0==pid){\u002F\u002F在子进程\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(\"Son&nbsp;Process,&nbsp;The&nbsp;pid&nbsp;return:&nbsp;%d\\n\",&nbsp;pid);\n&nbsp;&nbsp;&nbsp;&nbsp;}else{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(\"Error!\\n\");\n&nbsp;&nbsp;&nbsp;&nbsp;};\n&nbsp;&nbsp;&nbsp;&nbsp;for(;1;){\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1);\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;\n}\u003C\u002Fpre>\u003Cp>为了让程序不会运行结束自动退出我使用for死循环和sleep函数将程序阻塞，fork函数会创建一个进程，至於是否创建了进程我们看任务管理器的截图\u003C\u002Fp>\u003Cp>\u003Cimg src=\"\u002F\u002Fduguying.oss-cn-qingdao.aliyuncs.com\u002F2014\u002F9\u002F24\u002Ft1.png\" title=\"\" alt=\"t1.png\">\u003C\u002Fp>\u003Cp>任务管理器中有两个相同名称的进程了，这说明进程创建成功。 看终端运行结果\u003Cbr>&nbsp;\u003Cimg src=\"\u002F\u002Fduguying.oss-cn-qingdao.aliyuncs.com\u002F2014\u002F9\u002F24\u002Ft2.png\" title=\"\" alt=\"t2.png\">\u003C\u002Fp>\u003Cp>结果表明程序成功的创建了一个新进程。 fork()函数可以创建一个新进程并且返回子进程的ID，子进程与父进程完全一样，即执行相同的代码可是当子进程执行到fork()函数处的时候返回的值为0，却没有再创建进程；而父进程执行到fork()处创建了这个子进程并且返回了子进程的ID，至於为什么子进程不继续创建子子进程，这个我暂时就不知道了。 后来我又到fork()函数之前添加了一个printf作为标识，代码如下\u003C\u002Fp>\u003Cpre class=\"brush: cpp;\">#include&nbsp;&lt;stdio.h&gt;\nint&nbsp;main(void){\n&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;pid;\n&nbsp;&nbsp;&nbsp;&nbsp;printf(\"hello\\n\";);\n&nbsp;&nbsp;&nbsp;&nbsp;pid=fork();\n&nbsp;&nbsp;&nbsp;&nbsp;if(pid&gt;0){\u002F\u002F在父进程\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(\"Parents&nbsp;Process,&nbsp;The&nbsp;son&nbsp;pid:&nbsp;%d\\n\",&nbsp;pid);\n&nbsp;&nbsp;&nbsp;&nbsp;}else&nbsp;if(0==pid){\u002F\u002F在子进程\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(\"Son&nbsp;Process,&nbsp;The&nbsp;pid&nbsp;return:&nbsp;%d\\n\",&nbsp;pid);\n&nbsp;&nbsp;&nbsp;&nbsp;}else{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(\"Error!\\n\");\n&nbsp;&nbsp;&nbsp;&nbsp;};\n&nbsp;&nbsp;&nbsp;&nbsp;for(;1;){\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1);\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;\n}\u003C\u002Fpre>\u003Cp>运行，终端截图\u003C\u002Fp>\u003Cp>\u003Cimg src=\"\u002F\u002Fduguying.oss-cn-qingdao.aliyuncs.com\u002F2014\u002F9\u002F24\u002Ft3.png\" title=\"\" alt=\"t3.png\">\u003C\u002Fp>\u003Cp>图中并没有两行hello，这说明，如果子进程是完全复制父进程从代码的第一行开始执行的话子进程也会打印hello，很明显子进程不是这样干的。 再改代码，在fork函数之后添加printf，为了避开if分支就把printf函数添加到for阻塞代码的前一行[14]，代码如下\u003C\u002Fp>\u003Cpre class=\"brush: cpp;\">#include&nbsp;&lt;stdio.h&gt;\nint&nbsp;main(void){\n&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;pid;\n&nbsp;&nbsp;&nbsp;&nbsp;printf(\"hello\\n\");\n&nbsp;&nbsp;&nbsp;&nbsp;pid=fork();\n&nbsp;&nbsp;&nbsp;&nbsp;if(pid&gt;0){\u002F\u002F在父进程\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(\"Parents&nbsp;Process,&nbsp;The&nbsp;son&nbsp;pid:&nbsp;%d\\n\",&nbsp;pid);\n&nbsp;&nbsp;&nbsp;&nbsp;}else&nbsp;if(0==pid){\u002F\u002F在子进程\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(\"Son&nbsp;Process,&nbsp;The&nbsp;pid&nbsp;return:&nbsp;%d\\n\",&nbsp;pid);\n&nbsp;&nbsp;&nbsp;&nbsp;}else{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(\"Error!\\n\");\n&nbsp;&nbsp;&nbsp;&nbsp;};\n&nbsp;&nbsp;&nbsp;&nbsp;printf(\"world\\n\");\n&nbsp;&nbsp;&nbsp;&nbsp;for(;1;){\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(1);\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;\n}\u003C\u002Fpre>\u003Cp>运行截图\u003C\u002Fp>\u003Cp>\u003Cimg src=\"\u002F\u002Fduguying.oss-cn-qingdao.aliyuncs.com\u002F2014\u002F9\u002F24\u002Ft4.png\" title=\"\" alt=\"t4.png\">\u003C\u002Fp>\u003Cp>是的，结果如我所料，有两个world，这说明fork后的进程并不是从头开始执行的，而是从fork语句处开始执行的。这不就是在fork函数那个点产生了一个分支吗。对于长期在github里面混的我，这让我想起了github项目管理里面的fork，看样子他们的表达是一样的，github的fork截图\u003C\u002Fp>\u003Cp>\u003Cimg src=\"\u002F\u002Fduguying.oss-cn-qingdao.aliyuncs.com\u002F2014\u002F9\u002F24\u002Ft5.png\" title=\"\" alt=\"t5.png\">\u003C\u002Fp>\u003Cp>你理解了fork吗？反正我是懂了……\u003C\u002Fp>",{"id":35,"title":36,"uri":36,"author":9,"tags":37,"created_at":40,"view_count":41,"content":42},2,"Java线程编程",[38,39],"java","线程","2013-09-01 06:33:00",3925,"\u003Cp>最近学习了一下网络编程，因此就无可避免的学习了多线程编程，先后经过在C#、C以及Java环境下编程，有所斩获。以下是Java环境下线程编程的一些总结：\u003C\u002Fp>\u003Col class=\" list-paddingleft-2\">\u003Cli>\u003Cp>\u003Cspan style=\"font-size: 12.5px;\">创建线程\u003C\u002Fspan>\u003Cbr\u002F>\u003C\u002Fp>\u003C\u002Fli>\u003Cp>实例化Thread类\u003C\u002Fp>\u003Cpre class=\"brush:java;\">Receive&nbsp;rcv;\nThread&nbsp;th1=new&nbsp;Thread(rcv);\u003C\u002Fpre>\u003Cp>其中Receive rcv要通过override抽象类Runnable来实现\u003C\u002Fp>\u003Cli>\u003Cp>\u003Cspan style=\"font-size: 12.5px;\">重载抽象类Runnable\u003C\u002Fspan>\u003Cbr\u002F>\u003C\u002Fp>\u003C\u002Fli>\u003Cp>主要是重载其中的run方法，因为线程启动的目标函数就是重载后的run()方法，示例如下：\u003C\u002Fp>\u003Cpre class=\"brush:java;\">\n&nbsp;public&nbsp;class&nbsp;Receive&nbsp;implements&nbsp;Runnable{\n&nbsp;&nbsp;@Override\n&nbsp;&nbsp;public&nbsp;void&nbsp;run()&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(&quot;sdjfhsdjf&quot;);\n&nbsp;&nbsp;}\n&nbsp;&nbsp;public&nbsp;static&nbsp;Receive&nbsp;init(){\n&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;Receive();\n&nbsp;&nbsp;}\u003C\u002Fpre>\u003Cli>\u003Cp>\u003Cspan style=\"font-size: 12.5px;\">启动线程\u003C\u002Fspan>\u003Cbr\u002F>\u003C\u002Fp>\u003C\u002Fli>\u003Cpre class=\"brush:java;\">th1.start();\u003C\u002Fpre>\u003Cp>线程启动后将会执行rcv.run();\u003C\u002Fp>\u003C\u002Fol>",{"title":44,"list":45},"最热文章",[46,52,58,64,70,76,82,88,90,96],{"id":47,"title":48,"uri":49,"author":9,"created_at":50,"view_count":51},28,"docker容器目录与主机目录同步","\u002Farticle\u002Fdocker容器目录与主机目录同步","2014-12-31 12:34:08",15570,{"id":53,"title":54,"uri":55,"author":9,"created_at":56,"view_count":57},21,"beego中使用fis","\u002Farticle\u002Fbeego中使用fis","2014-12-03 10:47:56",9250,{"id":59,"title":60,"uri":61,"author":9,"created_at":62,"view_count":63},20,"用github登录，oauth开发","\u002Farticle\u002F用github登录，oauth开发","2014-11-23 13:33:37",9113,{"id":65,"title":66,"uri":67,"author":9,"created_at":68,"view_count":69},18,"windows服务注册工具nssm","\u002Farticle\u002Fwindows服务注册工具nssm","2014-10-31 21:34:39",9047,{"id":71,"title":72,"uri":73,"author":9,"created_at":74,"view_count":75},49,"用latex排版中文书籍","\u002Farticle\u002F用latex排版中文书籍","2016-10-31 11:12:02",8634,{"id":77,"title":78,"uri":79,"author":9,"created_at":80,"view_count":81},19,"texlive中文书签乱码","\u002Farticle\u002Ftexlive中文书签乱码","2014-11-15 02:54:01",8461,{"id":83,"title":84,"uri":85,"author":9,"created_at":86,"view_count":87},6,"Windows上的软件包管理器chocolatey","\u002Farticle\u002FWindows上的软件包管理器chocolatey","2014-08-10 15:55:22",8009,{"id":17,"title":18,"uri":89,"author":9,"created_at":22,"view_count":23},"\u002Farticle\u002F利用开源和免费资源搭建CI环境",{"id":91,"title":92,"uri":93,"author":9,"created_at":94,"view_count":95},16,"php-fpm网站目录权限配置","\u002Farticle\u002Fphp-fpm网站目录权限配置","2014-10-18 01:36:10",7274,{"id":97,"title":98,"uri":99,"author":9,"created_at":100,"view_count":101},27,"sublime text 2插件开发，外部修改文件无法重新加载","\u002Farticle\u002Fsublime text 2插件开发，外部修改文件无法重新加载","2014-12-26 20:24:13",7054,{"title":103,"list":104},"按月归档",[105,109,112,115,118,121,124,128,132,135,138,141,145,148,151,155,158,161,164,168,171,174,177,180,183,186,189,192,195,198,201,204,207,210,213,216,219,222,225,228,232,235,238,241,244,247],{"title":106,"uri":107,"view_count":108},"2026年7月","\u002Farchive\u002F2026\u002F7\u002F1","[1]",{"title":110,"uri":111,"view_count":108},"2026年1月","\u002Farchive\u002F2026\u002F1\u002F1",{"title":113,"uri":114,"view_count":108},"2025年4月","\u002Farchive\u002F2025\u002F4\u002F1",{"title":116,"uri":117,"view_count":108},"2024年6月","\u002Farchive\u002F2024\u002F6\u002F1",{"title":119,"uri":120,"view_count":108},"2024年5月","\u002Farchive\u002F2024\u002F5\u002F1",{"title":122,"uri":123,"view_count":108},"2024年4月","\u002Farchive\u002F2024\u002F4\u002F1",{"title":125,"uri":126,"view_count":127},"2023年12月","\u002Farchive\u002F2023\u002F12\u002F1","[6]",{"title":129,"uri":130,"view_count":131},"2023年11月","\u002Farchive\u002F2023\u002F11\u002F1","[2]",{"title":133,"uri":134,"view_count":108},"2023年10月","\u002Farchive\u002F2023\u002F10\u002F1",{"title":136,"uri":137,"view_count":108},"2023年7月","\u002Farchive\u002F2023\u002F7\u002F1",{"title":139,"uri":140,"view_count":131},"2023年6月","\u002Farchive\u002F2023\u002F6\u002F1",{"title":142,"uri":143,"view_count":144},"2023年5月","\u002Farchive\u002F2023\u002F5\u002F1","[3]",{"title":146,"uri":147,"view_count":131},"2023年4月","\u002Farchive\u002F2023\u002F4\u002F1",{"title":149,"uri":150,"view_count":131},"2023年3月","\u002Farchive\u002F2023\u002F3\u002F1",{"title":152,"uri":153,"view_count":154},"2023年2月","\u002Farchive\u002F2023\u002F2\u002F1","[5]",{"title":156,"uri":157,"view_count":108},"2023年1月","\u002Farchive\u002F2023\u002F1\u002F1",{"title":159,"uri":160,"view_count":131},"2022年12月","\u002Farchive\u002F2022\u002F12\u002F1",{"title":162,"uri":163,"view_count":154},"2022年11月","\u002Farchive\u002F2022\u002F11\u002F1",{"title":165,"uri":166,"view_count":167},"2022年10月","\u002Farchive\u002F2022\u002F10\u002F1","[4]",{"title":169,"uri":170,"view_count":127},"2022年9月","\u002Farchive\u002F2022\u002F9\u002F1",{"title":172,"uri":173,"view_count":154},"2022年8月","\u002Farchive\u002F2022\u002F8\u002F1",{"title":175,"uri":176,"view_count":108},"2019年7月","\u002Farchive\u002F2019\u002F7\u002F1",{"title":178,"uri":179,"view_count":108},"2019年2月","\u002Farchive\u002F2019\u002F2\u002F1",{"title":181,"uri":182,"view_count":108},"2018年9月","\u002Farchive\u002F2018\u002F9\u002F1",{"title":184,"uri":185,"view_count":108},"2018年8月","\u002Farchive\u002F2018\u002F8\u002F1",{"title":187,"uri":188,"view_count":108},"2017年11月","\u002Farchive\u002F2017\u002F11\u002F1",{"title":190,"uri":191,"view_count":108},"2017年8月","\u002Farchive\u002F2017\u002F8\u002F1",{"title":193,"uri":194,"view_count":108},"2017年5月","\u002Farchive\u002F2017\u002F5\u002F1",{"title":196,"uri":197,"view_count":108},"2017年4月","\u002Farchive\u002F2017\u002F4\u002F1",{"title":199,"uri":200,"view_count":108},"2016年11月","\u002Farchive\u002F2016\u002F11\u002F1",{"title":202,"uri":203,"view_count":108},"2016年10月","\u002Farchive\u002F2016\u002F10\u002F1",{"title":205,"uri":206,"view_count":131},"2016年9月","\u002Farchive\u002F2016\u002F9\u002F1",{"title":208,"uri":209,"view_count":108},"2016年8月","\u002Farchive\u002F2016\u002F8\u002F1",{"title":211,"uri":212,"view_count":131},"2016年7月","\u002Farchive\u002F2016\u002F7\u002F1",{"title":214,"uri":215,"view_count":154},"2016年6月","\u002Farchive\u002F2016\u002F6\u002F1",{"title":217,"uri":218,"view_count":108},"2015年12月","\u002Farchive\u002F2015\u002F12\u002F1",{"title":220,"uri":221,"view_count":108},"2015年10月","\u002Farchive\u002F2015\u002F10\u002F1",{"title":223,"uri":224,"view_count":131},"2015年2月","\u002Farchive\u002F2015\u002F2\u002F1",{"title":226,"uri":227,"view_count":108},"2015年1月","\u002Farchive\u002F2015\u002F1\u002F1",{"title":229,"uri":230,"view_count":231},"2014年12月","\u002Farchive\u002F2014\u002F12\u002F1","[8]",{"title":233,"uri":234,"view_count":131},"2014年11月","\u002Farchive\u002F2014\u002F11\u002F1",{"title":236,"uri":237,"view_count":154},"2014年10月","\u002Farchive\u002F2014\u002F10\u002F1",{"title":239,"uri":240,"view_count":144},"2014年9月","\u002Farchive\u002F2014\u002F9\u002F1",{"title":242,"uri":243,"view_count":144},"2014年8月","\u002Farchive\u002F2014\u002F8\u002F1",{"title":245,"uri":246,"view_count":144},"2014年7月","\u002Farchive\u002F2014\u002F7\u002F1",{"title":248,"uri":249,"view_count":131},"2013年9月","\u002Farchive\u002F2013\u002F9\u002F1",104,{"url":252,"title":253},"https:\u002F\u002Fimage.duguying.net\u002F2022\u002F09\u002Fij6x8o4s.webp","老家 摄于2020年秋",1790062284483]