<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>大鱼的鱼塘</title>
    <link>https://brucedone.com/</link>
    <description>Recent content on 大鱼的鱼塘</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-Hans</language>
    <lastBuildDate>Tue, 10 Jun 2025 11:37:19 +0000</lastBuildDate><atom:link href="https://brucedone.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>[置顶]scrapy爬虫教程导航</title>
      <link>https://brucedone.com/archives/771/</link>
      <pubDate>Sun, 22 May 2016 13:29:27 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/771/</guid>
      <description>教程导航 (1)分布式下的爬虫Scrapy应该如何做-安装 (2)分布式下的爬虫Scrapy应该如何做-关于对Scrapy的反思和核心对象的介绍 (3)分布式下的爬虫Scrapy应该如何做-递归爬取方式，数据输出方式以及数据库链接 (4)分布式下的爬虫Scrapy应该如何做-规则自动爬取</description>
    </item>
    
    <item>
      <title>uv对于gpu torch 的支持与管理</title>
      <link>https://brucedone.com/archives/1704/</link>
      <pubDate>Tue, 10 Jun 2025 11:37:19 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1704/</guid>
      <description>安装 按照官方指引，可以全局安装，也可以在具体的pyhon解释器用pip安装(换句话说可以和全局解释器共存，比如类似miniconda的版本管理器) https://github.com/astral-sh/uv 背景 最近在研究pytorch的gpu版本安装, 早期使用的时候只能使用 uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 没有和uv集成，导致每次安装都要手动指定inde</description>
    </item>
    
    <item>
      <title>新python环境和项目管理工具-rust uv</title>
      <link>https://brucedone.com/archives/1703/</link>
      <pubDate>Fri, 06 Sep 2024 11:37:19 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1703/</guid>
      <description>安装 按照官方指引，可以全局安装，也可以在具体的pyhon解释器用pip安装(换句话说可以和全局解释器共存，比如类似miniconda的版本管理器) https://github.com/astral-sh/uv Rust出品，属实精品！ 使用 初看 (base) [root@VM-113-76-centos /data/projects/personal]# uv -h An extremely fast Python package manager. Usage: uv [OPTIONS] &amp;lt;COMMAND&amp;gt; Commands: run Run a command or script init Create a new project add Add dependencies to the project remove Remove dependencies from the project sync Update the project&amp;#39;s environment lock Update the project&amp;#39;s lockfile export</description>
    </item>
    
    <item>
      <title>博客的重生与未来</title>
      <link>https://brucedone.com/archives/1700/</link>
      <pubDate>Sun, 13 Aug 2023 11:37:19 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1700/</guid>
      <description>开始 2023.8.13, 博客终于还是要迁移至腾讯云了，三个原因： wordpress常年疏于打理，写作习惯自从迁移至markdown后难以切回去 阿里云到期了，续期的性价比真的不高，还不如轻量云服务 hugo相对于wp, 速度更快，更轻量, 也是go写的，方便自己二次开发 准备 wordpress导出插件 - https://github.com/SchumacherFM/wordpress-to-hugo-exporter 相</description>
    </item>
    
    <item>
      <title>[c&#43;&#43;] vscode c&#43;&#43; clang格式化定义</title>
      <link>https://brucedone.com/archives/1604/</link>
      <pubDate>Wed, 19 Jan 2022 11:37:19 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1604/</guid>
      <description>这是个人的c++ vscode代码定义，存在这里备份一下 根文件下新增.clang-format文件 贴上以下内容 # 基本的语言规范 BasedOnStyle: LLVM # 访问说明符(public、private等)的偏移 AccessModifierOffset: -4 # 开括号(开圆括号、开尖括号、开方括号)后的对齐: Align, DontAlign, AlwaysBreak(总是在开括号后换行</description>
    </item>
    
    <item>
      <title>从0到1设计一套高性能隧道代理系统</title>
      <link>https://brucedone.com/archives/1590/</link>
      <pubDate>Tue, 12 Oct 2021 11:35:46 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1590/</guid>
      <description>目录 背景 现状 挑战 设计 实测 不足 总结 背景 旧系统随着节点数量增多，平均TPS处理能力越来越低下, 延迟越来越高，在业务不断扩张的同时，旧系统越来越难以满足需求 现状 低可用 旧系统在设计之初主要是满足于100台以内集群规模，随着业务增长，目前集群规模已经上升到1000多台，量级增长了10多倍，</description>
    </item>
    
    <item>
      <title>[python好库推荐] selenium-driver 自动安装</title>
      <link>https://brucedone.com/archives/1579/</link>
      <pubDate>Mon, 10 May 2021 09:24:53 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1579/</guid>
      <description>背景 在新创建python环境之后，总是免不了要去找selenium-driver 二进制文件，然后安装相应的python selenium包，实在是太麻烦了，下面介绍一种省时省力的方法 pip install webdriver-manager 使用以上命令安装咱们的主角: webdriver-manager 使用方式 使用Chrome: from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install()) 使用Chromi</description>
    </item>
    
    <item>
      <title>[Clock]没错!就是让你点点点完成可视化任务调度!</title>
      <link>https://brucedone.com/archives/1551/</link>
      <pubDate>Wed, 15 Jul 2020 16:41:02 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1551/</guid>
      <description>Clock 基于go cron的可视化调度轻量级调度框架，支持DAG任务依赖，支持bash命令，前端及后端编译完成(基于packr2)后仅有一个二进制文件，轻松部署 地址 https://github.com/BruceDone/clock 环境 后端 go 1.13+ packr - 静态文件打包 cron - 定时调度器 echo gorm 前端 vue iview-admin 使用 直接使用 下载git上的release列表，根据系统下载相应的二进</description>
    </item>
    
    <item>
      <title>[经验]入手golang,对比python聊聊想法</title>
      <link>https://brucedone.com/archives/1525/</link>
      <pubDate>Wed, 18 Dec 2019 10:23:35 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1525/</guid>
      <description>入手golang,对比python聊聊想法 背景 学习 感悟 背景 入职几个月以来，花了一点时间入门go ，平时上下班路上读读&amp;lt;Go语言编程&amp;gt;或者&amp;lt;Go语言实践&amp;gt;，写了大量的书本代码，然后上手写了两个项目:一个后端高IO的api，另外一个是 web 调度系统，等到第一个系统写</description>
    </item>
    
    <item>
      <title>[回炉]阻塞与非阻塞,同步与异步</title>
      <link>https://brucedone.com/archives/1503/</link>
      <pubDate>Sat, 17 Aug 2019 12:02:43 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1503/</guid>
      <description>背景 在接触一些新的技术时，某些名词总会频繁出现，之前一直没花时间来去专注了解这些东西，本质上是自己太过于懒惰，所以花了一点时间，找寻了关于这方面的资料，这一期先总结这些内容，然后再进一步的去讲解python下的GIL 解析 直接上经典的图 blocking IO Non-blocking IO IO multiplexing signal-driven IO async IO 总结 应用 read write connect</description>
    </item>
    
    <item>
      <title>[后端] python下的web framework大比拼</title>
      <link>https://brucedone.com/archives/1477/</link>
      <pubDate>Thu, 18 Jul 2019 03:25:35 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1477/</guid>
      <description>目录 背景 简介 测试 结论 背景 一直以来，python的web框架给别人的感觉就是: 一个能打的都没有。社区也在不断的努力,特别在 asyncio 爆发之后，出现了一些新的异步框架，比如sanic,比如vibora,相比传统的flask, django，这些新的框架相对成熟了很多，而且在性能上已经有长足的进</description>
    </item>
    
    <item>
      <title>[读书]代码整洁之道</title>
      <link>https://brucedone.com/archives/1470/</link>
      <pubDate>Tue, 21 May 2019 08:23:26 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1470/</guid>
      <description>混乱的代价 稍后等于永不 勒布朗法则 简单代码规则 能通过所有的测试 没有重复的代码 体现系统中的全部设计理念 包括尽量少的实体，比如类，方法，函数等 更改的原则 更改一个变量名 拆分一个过长的函数 消除重复的代码 清理嵌套的if语句 函数 函数要么做事情，要么回答什么事 要么do什么操作 要么返回值 这种指定需</description>
    </item>
    
    <item>
      <title>Mac下对Chrome插件请求的监听</title>
      <link>https://brucedone.com/archives/1459/</link>
      <pubDate>Thu, 09 May 2019 10:36:08 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1459/</guid>
      <description>目录 背景 分析 环境 实践 总结 最近一段时间忙于搬家和适应新的环境，接下来可以正常分享一些工作中用到的东西和学习技巧相关 背景 接手一个需求，想要调研一下某个chrome 的插件为什么能拿到数据 当打开这个链接的时候 https://www.aliexpress.com/af/1PC-Simulation-Grass-figurine-Micro-Landscape-home.html?SearchText=1PC+Simulation+Grass+figurine+Micro+Landscape+home&amp;amp;d=y&amp;amp;initiative_id=SB_20190424011710&amp;amp;origin=n&amp;amp;catId=0&amp;amp;isViewCP=y&amp;amp;jump=afs 安装插件:https://chrome.google.com/webstore</description>
    </item>
    
    <item>
      <title>Tinox</title>
      <link>https://brucedone.com/tinox/</link>
      <pubDate>Thu, 11 Apr 2019 03:56:46 +0000</pubDate>
      
      <guid>https://brucedone.com/tinox/</guid>
      <description></description>
    </item>
    
    <item>
      <title>cende</title>
      <link>https://brucedone.com/cende/</link>
      <pubDate>Wed, 10 Apr 2019 02:02:11 +0000</pubDate>
      
      <guid>https://brucedone.com/cende/</guid>
      <description></description>
    </item>
    
    <item>
      <title>2018-自由与死亡</title>
      <link>https://brucedone.com/archives/1440/</link>
      <pubDate>Mon, 18 Feb 2019 14:26:50 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1440/</guid>
      <description>写这么大的一个标题一开始认为自己可能会Hold不住，小人物有小人物的悲欢离合，大人物有大人物的大事大非，我从一个主观的小角度来谈2018年经历的事事非非，心态的起伏 自由 思想前行 整个2018年知识付费了三个专辑 卓老板聊科技 前哨 卓老板聊天科技第二季 因为是本身是学文科的专业，在思考和面</description>
    </item>
    
    <item>
      <title>Xpower功能简介</title>
      <link>https://brucedone.com/support/</link>
      <pubDate>Wed, 16 Jan 2019 02:31:00 +0000</pubDate>
      
      <guid>https://brucedone.com/support/</guid>
      <description>Xpower功能简介</description>
    </item>
    
    <item>
      <title>[工程] gunicorn下的深度学习api 如何合理分配gpu</title>
      <link>https://brucedone.com/archives/1426/</link>
      <pubDate>Wed, 19 Dec 2018 08:29:11 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1426/</guid>
      <description>背景 老大提了一个需求: gunicron 起多个进程的时候，如何保证pytorch的模型均匀分配到不同的gpu上，按道理，如果能拿到类似每个进程的序号，那分配起来应该都是简单的，那核心问题提炼出来了，如何拿到进程的序号 分析 顺手直接去找一个相关的问题和分析，https://github.com/be</description>
    </item>
    
    <item>
      <title>[深度学习] 使用Darknet YOLO 模型破解中文验证码点击识别</title>
      <link>https://brucedone.com/archives/1411/</link>
      <pubDate>Tue, 11 Dec 2018 09:12:08 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1411/</guid>
      <description>内容 背景 准备 实践 结果 总结 引用 背景 老规矩，先上代码吧 代码所在: https://github.com/BruceDone/darknet_demo 最近在做深度学习相关的项目的时候，了解在现有的深度学习检测流派里面有one-stage ,two stage 两种流派，one-stage流派中yolo模型十分的抢眼 OK，在进一步了解了yolo模型之后，发现不仅有提供速度非快的yolo v3</description>
    </item>
    
    <item>
      <title>2016 收获与新起点</title>
      <link>https://brucedone.com/archives/945/</link>
      <pubDate>Thu, 25 Oct 2018 03:25:22 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/945/</guid>
      <description>章节 收获 总结 展望 收获 技术 linux vim shell docker python web flask django spider scrapy pyspider system &amp;amp; other DB mysql mongo redis 2016年从.net转入到python ，技术的思维不再局限于win的整套平台，而是向着更多的优秀框架与技术起点的linux，从之前的win的下一步一步下一步的傻瓜式操作，到bash command 的常用操作，感谢自己义无反顾，以0知识</description>
    </item>
    
    <item>
      <title>[技巧] chrome headless 爬虫抓取websoket 数据</title>
      <link>https://brucedone.com/archives/1201/</link>
      <pubDate>Fri, 28 Sep 2018 02:34:28 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1201/</guid>
      <description>目录 源起 分析 实践 总结 源起 周末答应了一个朋友帮他看一下一个网站应该怎么爬，费话不说直接先上网站 https://datacenter.jin10.com/price 数据一直在不停的闪，直觉判断这种高频的显示应该不会用ajax 轮询的方式，至少也是websocket的方式 分析 老规矩，直接上chrome 的f12来分析看看 直接看到，右边正边疯狂的刷新数据，</description>
    </item>
    
    <item>
      <title>[工程] pytorch gpu docker 镜像下的无法正常启动应用分析</title>
      <link>https://brucedone.com/archives/1198/</link>
      <pubDate>Tue, 18 Sep 2018 12:33:58 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1198/</guid>
      <description>目录 发现 分析 解决 总结 发现 在使用了 nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04 作为底层镜像后，重新构建了pytorch的底层镜像做为应用的基础镜像，一切都构建的很顺利，就是在正常启动镜像的时候，出现了如下的错误 CUDA driver version is insufficient for CUDA runtime version 分析 按照以往的经验 ，无非是没有使用nvidia-docker启动，又或者当前实体机的nvidia</description>
    </item>
    
    <item>
      <title>[经验] opencv 不同的视频输出以及文件过大的解决方法</title>
      <link>https://brucedone.com/archives/1194/</link>
      <pubDate>Fri, 31 Aug 2018 08:11:31 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1194/</guid>
      <description>目录 发现 分析 解决 总结 发现 目前的一个项目需要使用opencv 录制视频，并且将录制的视频上传到我方服务器上，所以，视频的大小直接影响视频分析的时时性，针对这个情况，需要在不同的压缩格式下进行测试，在测试的时候发现，录制1080p的视频，大多分布在300M左右，还有更夸张的1.5G，如</description>
    </item>
    
    <item>
      <title>[经验]解决使用opencv 高分辨率下的摄像头卡顿不流畅</title>
      <link>https://brucedone.com/archives/1193/</link>
      <pubDate>Thu, 30 Aug 2018 06:09:53 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1193/</guid>
      <description>目录 发现 分析 解决 总结 发现 环境 ubuntu 16.04 python 2.7 (anaconda 的环境) cv 版本 3.4 安装方式 pip install opencv-contrib-python 问题 最近在做一个项目，需要使用opencv 打开摄像头，然后录制视频，在默认的参数下，opencv打开摄像头都是非常流畅的，但是在高分辨率下，摄像头使用如下的代码的时候就非常的不流畅，而且很卡，比如如下的代码做演示</description>
    </item>
    
    <item>
      <title>[经验] python下的消息队列选择-rq</title>
      <link>https://brucedone.com/archives/1178/</link>
      <pubDate>Thu, 19 Jul 2018 09:43:02 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1178/</guid>
      <description>目录 项目代码所在: https://github.com/BruceDone/web_message_queue_app 背景 准备 实践 总结 背景 某个web api项目需要将api的每次调用情况都记录下来，统一收集之后存入数据库，然后每个小时进行汇总与统计。这样方便业务部门进行数据分析，逻辑流程如下 用户请求 -&amp;gt; web api(记录请求) -&amp;gt; 请求返回数据 并记录本次请求 -&amp;gt; 业务人员汇总数据 从上面的看出</description>
    </item>
    
    <item>
      <title>[定义] 关于网络状态码的工程标准</title>
      <link>https://brucedone.com/archives/1181/</link>
      <pubDate>Fri, 13 Jul 2018 03:27:09 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1181/</guid>
      <description>内容 我相信大多数写http api的时候，关于网络的状态码大家都有各自的定义，现在有一个好的库来定义各种各样的情况，方便大家在写api的时候返回合理的状态码 代码 # Informational Responses 100: message: &amp;#34;Continue&amp;#34; category: &amp;#34;Informational Responses&amp;#34; description: &amp;#34;This interim response indicates that everything so far is OK \ and that the client should continue with the request or ignore \ it if it is already finished.&amp;#34; 101: message: &amp;#34;Switching Protocol&amp;#34; category: &amp;#34;Informational Responses&amp;#34; description: &amp;#34;This code is sent in response to an Upgrade request header by \ the</description>
    </item>
    
    <item>
      <title>[工程] tmux的一些操作技巧</title>
      <link>https://brucedone.com/archives/1176/</link>
      <pubDate>Fri, 29 Jun 2018 02:45:24 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1176/</guid>
      <description>tmux简介 tmux是一个优秀的终端复用软件，类似GNU Screen，但来自于OpenBSD，采用BSD授权。使用它最直观的好处就是，通过一个终端登录远程主机并运行tmux后，在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机；当然其功能远不止于此。 直接使用yu</description>
    </item>
    
    <item>
      <title>[scrapy] images pipeline分析– 下载图片如何上传到阿里云服务</title>
      <link>https://brucedone.com/archives/1160/</link>
      <pubDate>Mon, 28 May 2018 03:58:03 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1160/</guid>
      <description>目录 源起 准备 分析 实践 总结 源起 现在网上已经有很多方便的云存储了，比如阿里云的oss，亚马逊的s3 ，Azure 的blob，云的储存对于大数据量的文件或者图片来说，绝对是相当的方便，现在我们就来分析一下，如何使用scrapy的pipeline ，将我们下载图片直接上传到我们的阿里云oss</description>
    </item>
    
    <item>
      <title>Log In</title>
      <link>https://brucedone.com/log-in/</link>
      <pubDate>Thu, 24 May 2018 04:02:55 +0000</pubDate>
      
      <guid>https://brucedone.com/log-in/</guid>
      <description>[discussion_board_login_form] [is_logged_in]You are already logged in[/is_logged_in]</description>
    </item>
    
    <item>
      <title>New Topic</title>
      <link>https://brucedone.com/new-topic/</link>
      <pubDate>Thu, 24 May 2018 04:02:55 +0000</pubDate>
      
      <guid>https://brucedone.com/new-topic/</guid>
      <description>[discussion_board_form]</description>
    </item>
    
    <item>
      <title>Topics</title>
      <link>https://brucedone.com/topics/</link>
      <pubDate>Thu, 24 May 2018 04:02:55 +0000</pubDate>
      
      <guid>https://brucedone.com/topics/</guid>
      <description>[discussion_topics] [new_topic_button]</description>
    </item>
    
    <item>
      <title>给我留言</title>
      <link>https://brucedone.com/comments/</link>
      <pubDate>Thu, 24 May 2018 03:58:16 +0000</pubDate>
      
      <guid>https://brucedone.com/comments/</guid>
      <description>欢迎在这里给我留言</description>
    </item>
    
    <item>
      <title>[爬虫]python下的xpath清洗数据之html数据清洗</title>
      <link>https://brucedone.com/archives/1149/</link>
      <pubDate>Mon, 14 May 2018 03:21:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1149/</guid>
      <description>目录 源起 分析 解决 总结 源起 现在我们面对一些爬虫数据，特别是对于web网页的爬取的时候，网页总有一些不规整的数据来导致拿数据的麻烦，比如如下这种 &amp;lt;html&amp;gt; &amp;lt;p&amp;gt;111&amp;lt;/p&amp;gt; &amp;lt;p&amp;gt;222&amp;lt;/p&amp;gt; &amp;lt;p&amp;gt;333&amp;lt;/p&amp;gt; &amp;lt;p&amp;gt;444 &amp;lt;script&amp;gt; eeeeeeeeeeee &amp;lt;/script&amp;gt; &amp;lt;/p&amp;gt; &amp;lt;p&amp;gt;555 &amp;lt;script&amp;gt; aabbccddd &amp;lt;/script&amp;gt; &amp;lt;/p&amp;gt; &amp;lt;/html&amp;gt; 我只想拿到111,222,333,444,555这些有效的信息，因为有些p标签里面会引入script元素，导致</description>
    </item>
    
    <item>
      <title>[系统] 阻塞非阻塞，同步与异步</title>
      <link>https://brucedone.com/archives/1146/</link>
      <pubDate>Mon, 07 May 2018 03:59:12 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1146/</guid>
      <description>目录 前言 示意 分析 总结 前言 我们在写代码的时候，会遇到大量的IO操作，http请求，读写文件，读数据库，对于IO的操作，我们听到了太多的异步，同步，阻塞与非阻塞的操作，可是我们一直没有去深入的理解他的意义到底在哪里，这次我们就具体的分析原理 示意 我们假设有这样一次IO操作，A发出请求，</description>
    </item>
    
    <item>
      <title>[工程] linux操作下的利器-tmux</title>
      <link>https://brucedone.com/archives/1143/</link>
      <pubDate>Fri, 04 May 2018 03:07:59 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1143/</guid>
      <description>内容 源起 使用 注意 总结 源起 某天小伙伴看我正在辛勤的打开一个又一个窗口，然后跑一些长时间任务然后又要开另外一个窗口重新ssh到服务器上的繁琐操作，如下图所示 小伙伴顺口来了一句，你为啥不用tmux呢。你这样挂起任务要是你退出机器登录或者不小心点错了那你这个任务不就挂了？还有切换终端se</description>
    </item>
    
    <item>
      <title>[tmux] version 2.1 存在缓存bug</title>
      <link>https://brucedone.com/archives/1123/</link>
      <pubDate>Tue, 20 Mar 2018 07:31:53 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1123/</guid>
      <description>目录 起因 分析 解决 起因 在tmux session 之中 ，尝试修改一个文件内容，发现于tmux 外部 查看该文件内容压根就没有修改到，只能从外部来进行处理 分析 在folder文件夹下有如下两个文件夹 test 以及test_1 ├── test │ └── test.txt └── test_1 └── test.txt 注意，两个文件夹下虽然都有相同的文件test.txt ，不</description>
    </item>
    
    <item>
      <title>[工程] python下的测试利器pytest</title>
      <link>https://brucedone.com/archives/1121/</link>
      <pubDate>Sat, 03 Mar 2018 10:01:05 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1121/</guid>
      <description>目录 引言 准备 项目 总结 引言 我想现在应该很少有公司一直在主推TDD了，因为这无形之中增加了工作量，在追求极致开发的时候，一般都是能先上就先上，把主体的功能不管三七二十一怼出来再说，出了问题就直接改，也不管你的代码和之前兼容不兼容，一个大的工程，测试是绝对少不了的，覆盖率更是必须达到一</description>
    </item>
    
    <item>
      <title>29之前，29之后</title>
      <link>https://brucedone.com/archives/1107/</link>
      <pubDate>Sat, 10 Feb 2018 14:48:11 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1107/</guid>
      <description>引言 大概在3年前，我写过 &amp;lt;26之前,26之后&amp;gt;，从刚参加工作到工作2年之后一些蜕变与感悟，如果将之前的时间比作新手上路，体会到了道路的崎岖与速度的激情，我想这一年的更多的时间就是停车自检，自省身上发生的问题 目录 遇到困难，正面面对 子非鱼，安知鱼之乐 世间之事，无非多花时间</description>
    </item>
    
    <item>
      <title>[可视化抓取]portia2.0尝鲜体验以及自动化畅想-数据存储入mongodb</title>
      <link>https://brucedone.com/archives/1096/</link>
      <pubDate>Mon, 09 Oct 2017 03:35:27 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1096/</guid>
      <description>总览 环境 分析 猜想 实施 总结 环境 mac or ubuntu 16.04 docker 分析 上一章节，==&amp;gt; [可视化抓取]portia2.0尝鲜体验以及自动化畅想-数据输出以及原理分析 &amp;lt;== 我们已经分析了portia 数据 输出的方式，以及从代码的层面来分析它实际的运作原理，群里有小伙伴以及微信私信问我：大鱼，这个怎么和我们的数据</description>
    </item>
    
    <item>
      <title>[经验]如何优雅的在docker下断点调试debug</title>
      <link>https://brucedone.com/archives/1088/</link>
      <pubDate>Thu, 28 Sep 2017 07:50:26 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1088/</guid>
      <description>纲领 前言 使用 过程 配置 总结 前言 随着docker的普及，现在更多的生产线上的程序都是打包成docker 应用，这样方便环境的隔离，也能提高资源的利用率，不过一旦出了问题，怎么debug就成了一个难题，我可暂时没有学会大神们的pdb debug大法，只会用pycharm 打断点调试，那如何处</description>
    </item>
    
    <item>
      <title>python对象下的可变类型与不可变类型</title>
      <link>https://brucedone.com/archives/1085/</link>
      <pubDate>Wed, 13 Sep 2017 03:50:47 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1085/</guid>
      <description>前言 python对象对于修改这个行为，大家的操作方式都是不一样的。有些对象是可变类型，所以他就可以直接修改。其它的都是不可变类型，那我们要修改他时怎么办呢，这个时候就新生成的一个对象，然后将变量名指向这个新对象，修改动作就完成了。关于可变类型与不可变类型的一个特点，我们可以先看看</description>
    </item>
    
    <item>
      <title>[转载]Python垃圾回收机制</title>
      <link>https://brucedone.com/archives/1082/</link>
      <pubDate>Tue, 05 Sep 2017 03:52:30 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1082/</guid>
      <description>转载自:http://www.jianshu.com/p/1e375fb40506 ,感谢作者 先来个概述，第二部分的画述才是厉害的。 Garbage collection(GC) 现在的高级语言如java，c#等，都采用了垃圾收集机制，而不再是c，c++里用户自己管理维护内存的方式。自己管理内存极其自由，可以任意申请内存，但</description>
    </item>
    
    <item>
      <title>[渲染利器]Google官方出品的js渲染环境</title>
      <link>https://brucedone.com/archives/1077/</link>
      <pubDate>Tue, 29 Aug 2017 02:47:05 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1077/</guid>
      <description>源起 今早儿打开群，没想到D总就顺手推荐了这个git https://github.com/GoogleChrome/rendertron 进去一看，熟悉的字样 A dockerized, headless Chrome rendering solution https://render-tron.appspot.com/ 使用docker 打包google headless 浏览器，集成在一个环境，外部预留一些常见的api ,也有node的使用包 使用 打开git地址，将代码拷到本地，切换到含有Dockerfile的目录，使用命令 docker build -t rendertron</description>
    </item>
    
    <item>
      <title>[scrapy]scrapy源码分析–信号事件是如何加载以及自定义信号</title>
      <link>https://brucedone.com/archives/1069/</link>
      <pubDate>Mon, 14 Aug 2017 07:52:28 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1069/</guid>
      <description>环境 python 2.7 scrapy 1.3.0 背景 我们在写scrapy一些拓展功能的时候，少不了会用到scrapy的extention机制，官网也有提供各种的示例，比如我们在自己手动创建一个新的project的时候，template 会创建一个middlewares.py的文件 ，里面也会有各种和信号打交道的机制,比</description>
    </item>
    
    <item>
      <title>[可视化抓取]portia2.0尝鲜体验以及自动化畅想-数据输出以及原理分析</title>
      <link>https://brucedone.com/archives/1059/</link>
      <pubDate>Wed, 02 Aug 2017 09:58:35 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1059/</guid>
      <description>目录 环境准备 启动事项 使用指南 代码分析 总结分享 环境准备 mac os (或者ubuntu 14.04 , 16.04 也可以) docker (搜索安装) docker-compose (pip安装) docker加速 ==&amp;gt; 点击导航 &amp;lt;== 有人会问了，这次怎么多了一个镜像加速啦？因为国内的某些不可知的原因，我们docker默认的镜像点是在hub.docker.com的，所</description>
    </item>
    
    <item>
      <title>[心得]如何学一门编程语言</title>
      <link>https://brucedone.com/archives/1056/</link>
      <pubDate>Tue, 01 Aug 2017 10:10:40 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1056/</guid>
      <description>背景 第一次学语言？怎么入手？ 去哪找资源？ 要不要买书？还是要不要报培训班？ 要不要准备一台高性能的装备？ 如果你存在以上的问题话，建议你先沉下心来，把文章看完，然后我会一条一条的分析里面的原因，给出自己的一点见解 入门 很多人都会问，我想入门语言，最快的方式是什么？你一想着快的时候，基本上</description>
    </item>
    
    <item>
      <title>[python]yield使用的最佳实践[3]</title>
      <link>https://brucedone.com/archives/1047/</link>
      <pubDate>Fri, 28 Jul 2017 00:54:48 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1047/</guid>
      <description>从数据处理到并发编程 协程和生成器的关系 你可以合理的编写一些组件来连接协程和生成器 你可以自己做一个数据流，工作流的方式来处理这种场景下的数据 你可以自己编写一个事件驱动系统 一个常见的主题 将数据交由协程处理 将数据交由线程处理(通过queue) 将数据交由进程处理(通过消息) 线程和协程共同</description>
    </item>
    
    <item>
      <title>[python]yield使用的最佳实践[2] - 数据管道的处理</title>
      <link>https://brucedone.com/archives/1041/</link>
      <pubDate>Sun, 16 Jul 2017 12:21:30 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1041/</guid>
      <description>回顾 上一篇我们就简单的介绍了yield的两种场景 yield生产数据 (生成器) yield消费数据 (协程) Coroutines,Pipelines 以及Dataflow 数据流处理的pipeline [串行方式] 我们使用coroutine 可以将数据以pipeline的方式进行处理 send() -&amp;gt; coroutine -&amp;gt; send() -&amp;gt; coroutine -&amp;gt; send() -&amp;gt; coroutine 我们将整个的corouti</description>
    </item>
    
    <item>
      <title>[python]yield使用的最佳实践[1]</title>
      <link>https://brucedone.com/archives/1040/</link>
      <pubDate>Sun, 16 Jul 2017 09:50:42 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1040/</guid>
      <description>http://www.dabeaz.com/coroutines/Coroutines.pdf 准备 python: 2.7.12 os: mac os 结论 [使用场景] 迭代生成数据(生产者) 接收数据(消费者) 中断(协作式的任务) 任何脱离以上三个场景的使用yield，请使用其它方法处理，yield是很好用，但不至于到处都可以使用的地步 协程和生成器-Coroutines and Generators 在python2.5 开始 ，生成器就已经加入一</description>
    </item>
    
    <item>
      <title>[重大更新]可视化调度器tiktok 问世了</title>
      <link>https://brucedone.com/archives/1033/</link>
      <pubDate>Tue, 11 Jul 2017 10:01:37 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1033/</guid>
      <description>项目 地址 https://github.com/BruceDone/Tiktok 背景 在很早之前，博主有介绍过可视化的调度工具，dagobah，不过，那个时候dagobah相当的不稳定，动不动就会奔溃，页面就直接打不开，在尝试过各种进程保护模式，或者docker化之后，都完全无法满足工作里面的需求，后来干脆就直接打算在python2的flask，换成</description>
    </item>
    
    <item>
      <title>[Docker]ELKS收集容器日志就是这么简单</title>
      <link>https://brucedone.com/archives/1024/</link>
      <pubDate>Thu, 22 Jun 2017 08:01:28 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1024/</guid>
      <description>场景 随着容器的大量使用，现在docker已经在很多生产环境得到实践，不过，容器的日志，状态，确是一个大问题，我们知道，一般可以使用命令docker logs 来查看一个特定的容器，那如果想要收集当前机器所有容器的日志呢？难不成还要将所有应用都标准化一个日志组件出来，然后将日志挂载到特定目录</description>
    </item>
    
    <item>
      <title>[selenium-grid]多机分布式环境下的selenium集群</title>
      <link>https://brucedone.com/archives/1021/</link>
      <pubDate>Wed, 14 Jun 2017 08:15:16 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1021/</guid>
      <description>源起 还是爬虫里面的某个场景需要重度使用selenium场景 ，所以需要起这样一个集群 对比 单机 docker docker-compose 分布式集群 我们在使用selenium 的时候，我们一般就使用以上的环境和模式,单机怎么操作呢，下载相应的webdriver 单机 对于小型的使用环境，比如单线程操作，我们直接下载好相应版本的d</description>
    </item>
    
    <item>
      <title>[nginx]azure上使用docker配置爬虫集群及负载均衡</title>
      <link>https://brucedone.com/archives/1018/</link>
      <pubDate>Fri, 02 Jun 2017 13:25:25 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1018/</guid>
      <description>起因 最近阿里的费用消耗过高，所以打算从阿里迁移到有一定的优惠的azure china上，其实我本人是抗拒的 一，azure 的生态还不够完善，比如类似阿里的容器系统，一键部署的服务都得自己用k8s，或者swarm进行控制统一部署 二，部署时会有和种安全性的配置，还需要去里面自己管理平台进</description>
    </item>
    
    <item>
      <title>如何编写最佳的Dockerfile</title>
      <link>https://brucedone.com/archives/1014/</link>
      <pubDate>Wed, 24 May 2017 11:48:53 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1014/</guid>
      <description>译者按: Dockerfile的语法非常简单，然而如何加快镜像构建速度，如何减少Docker镜像的大小却不是那么直观，需要积累实践经验。这篇博客可以帮助你快速掌握编写Dockerfile的技巧。 原文: How to write excellent Dockerfiles 译者: Fundebug 为了保证可读性，本文采用意译而非直译。另外，本文版权归原作者所有</description>
    </item>
    
    <item>
      <title>[深度学习]Tensorflow破解验证码</title>
      <link>https://brucedone.com/archives/1005/</link>
      <pubDate>Tue, 18 Apr 2017 13:24:47 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/1005/</guid>
      <description>缘起 登录 IP 验证码 在爬虫的世界里面，大家一定会经常遇到以上的这些问题，我们除了甩锅给第三方打码平台，IP提供商，copy cookie这样的方式方案，大家可以自己尝试自己解决，多去思考一些原理，本次就将爬虫中遇到的字符型的验证码做一些自己的总结和分析 准备 Tensorflow 1.0.1 captcha 0.2.2 思路 现在的解决验证码一</description>
    </item>
    
    <item>
      <title>[可视化抓取]portia2.0尝鲜体验以及自动化畅想[1]</title>
      <link>https://brucedone.com/archives/986/</link>
      <pubDate>Fri, 10 Mar 2017 09:23:19 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/986/</guid>
      <description>缘起 最近一直在思考如何更改智能化抓取的事情，每当来了一个新的task，都要自己手动分析，手动写xpath ，然后写正则，各种测试，各种部署，其实说来，这些事情的重复度很高，那我们能不能把一些重复性的动作抽象出来，做成一个独立的单元呢？在参考佷多类似的自动化的工具之后，猜想了如下的动</description>
    </item>
    
    <item>
      <title>[crontab]linux下简单的调度配置及使用</title>
      <link>https://brucedone.com/archives/985/</link>
      <pubDate>Mon, 06 Mar 2017 08:29:58 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/985/</guid>
      <description>介绍 虽然在几篇博客之前介绍了Dagobah这个调度框架，不过对于一些固定调度，很稳定的那种，可以考虑使用linux内置调度器，crontab ,这是系统内置的，相当稳定 ，不用人工干预 优点 可以实现不同的用户调度不同的东西，cron 表达式功能强大，很容易写出符合你需求的周期表达式 使用 登</description>
    </item>
    
    <item>
      <title>scrapy下的一些常见错误处理</title>
      <link>https://brucedone.com/archives/955/</link>
      <pubDate>Thu, 02 Mar 2017 06:46:40 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/955/</guid>
      <description>常见的一些小错误分类处理 内部错误 逻辑错误 其它错误 内部错误 TypeError 表现形式:TypeError: ‘float’ object is not iterable 相关搜索:https://github.com/scrapy/scrapy/issues/2461 解决方法:sudo pip install -U Twisted==16.6.0 ERROR: Unable to read the instance data ,giving up 表现形式: 直接error 报错</description>
    </item>
    
    <item>
      <title>大鱼的鱼塘更新了</title>
      <link>https://brucedone.com/archives/971/</link>
      <pubDate>Wed, 01 Mar 2017 03:55:38 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/971/</guid>
      <description>过程 hi，各位，大鱼的鱼塘在昨天更新了一个新的主题，在这之前，一直在折腾各种静态博客，一开始想玩玩hexo，然后各种封装在docker下，各种编译，通过编译之后，又要将数据导入到hexo，各种出错，索性就不折腾了。之前的简书主题的又太难看了(我自己深深的觉得)，索性干脆换了主题，</description>
    </item>
    
    <item>
      <title>赞助作者</title>
      <link>https://brucedone.com/donate/</link>
      <pubDate>Tue, 28 Feb 2017 11:58:15 +0000</pubDate>
      
      <guid>https://brucedone.com/donate/</guid>
      <description>如果您认为本网站的内容质量不错或者读后成功配置出自己心仪的站点，觉得收获很大，那么不妨小额赞助一下，让我有动力继续写出高质量的教程与更棒的程序。 赞助说明 您的每一笔的赞助的70%金额都将作为网站的正常运营费用 您的每一笔的赞助的30%金额将为捐给壹基金 您的每一笔赞助均会在赞助记录中得</description>
    </item>
    
    <item>
      <title>关于爬虫的架构，经验，以及分享</title>
      <link>https://brucedone.com/archives/937/</link>
      <pubDate>Tue, 07 Feb 2017 11:40:32 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/937/</guid>
      <description>要点包含 架构 个人 分享 架构 如何设计一个复杂的分布式爬虫系统 DCOS应用案例（一）：登陆爬虫——微服务架构典型 社会化海量数据采集爬虫架构构建 记一次企业级爬虫系统升级改造(一) 总结 2016,我对爬虫的总结 使用python，scrapy写（定制）爬虫的经验，资料，杂 分享 设计爬虫Hawk背</description>
    </item>
    
    <item>
      <title>scrapy经验分享-同一项目不同的spider启用不同的配置</title>
      <link>https://brucedone.com/archives/918/</link>
      <pubDate>Thu, 29 Dec 2016 09:40:18 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/918/</guid>
      <description>在群里经常被问到如何解决同一个爬虫启用不同的piepline的问题，一般的解决通过参数的不同解决这个 def process_item(self, item, spider): self._client.create_index([(&amp;#39;msg_id&amp;#39;, pymongo.DESCENDING)], background=True) self._client.update_one(filter={&amp;#39;msg_id&amp;#39;: item[&amp;#39;msg_id&amp;#39;]}, update={&amp;#39;$set&amp;#39;: dict(item)}, upsert=True) return item 代码中有两个重要的参数item,还有一个spider ,我们打个断点来看看spider 里面的都有些什么 简单点我们可以通过name做逻辑上的判断 if spider.name == &amp;#39;spider_1&amp;#39;: do sth....</description>
    </item>
    
    <item>
      <title>[scrapy]scrapy源码分析–中间件是如何加载的</title>
      <link>https://brucedone.com/archives/883/</link>
      <pubDate>Wed, 16 Nov 2016 10:28:21 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/883/</guid>
      <description>中间件是scrapy的核心部分，数据的传递，队列的维护，都是靠中间件，所以了解他的生命周期还是很有必要的 https://github.com/scrapy/scrapy/blob/master/scrapy/core/spidermw.py def _add_middleware(self, mw): super(SpiderMiddlewareManager, self)._add_middleware(mw) if hasattr(mw, &amp;#39;process_spider_input&amp;#39;): self.methods[&amp;#39;process_spider_input&amp;#39;].append(mw.process_spider_input) if hasattr(mw, &amp;#39;process_spider_output&amp;#39;): self.methods[&amp;#39;process_spider_output&amp;#39;].insert(0, mw.process_spider_output) if hasattr(mw, &amp;#39;process_spider_exception&amp;#39;): self.methods[&amp;#39;process_spider_exception&amp;#39;].insert(0, mw.process_spider_exception) if hasattr(mw, &amp;#39;process_start_requests&amp;#39;): self.methods[&amp;#39;process_start_requests&amp;#39;].insert(0, mw.process_start_requests) 将中间件的每内置的方法加入到方法链上，注意，这里的数值越小，处理越靠前，下同 https://github.com/scrapy/scrapy/blob/master/scrapy/core/scraper.py 这里就去处理spiderMiddleWare class Scraper(object):</description>
    </item>
    
    <item>
      <title>[scrapy]scrapy源码分析--数据是如何处理的</title>
      <link>https://brucedone.com/archives/870/</link>
      <pubDate>Mon, 14 Nov 2016 10:18:20 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/870/</guid>
      <description>目录 下载中间件(Download MiddleWare)是如何加载的 Spider MiddleWare是如何加载的 配置文件是如何起作用的 整体的执行流程是怎样的 扩展件是如何工作的 数据是怎么处理的 分析 我们正常的思路就是从spider的parse方法来着手，因为我们写的最多的代码就是从这里开始的，这</description>
    </item>
    
    <item>
      <title>[爬虫资源]各大爬虫资源大汇总,做我们自己的awesome系列</title>
      <link>https://brucedone.com/archives/852/</link>
      <pubDate>Tue, 11 Oct 2016 03:45:51 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/852/</guid>
      <description>大数据的流行一定程序导致的爬虫的流行，有些企业和公司本身不生产数据，那就只能从网上爬取数据，笔者关注相关的内容有一定的时间，也写过很多关于爬虫的系列，现在收集好的框架希望能为对爬虫有兴趣的人，或者想更进一步的研究的人提供索引，也随时欢迎大家star,fork ,或者提issue，让</description>
    </item>
    
    <item>
      <title>[搜索引擎searx]10分钟搭建一个好玩的python全文搜索引擎</title>
      <link>https://brucedone.com/archives/838/</link>
      <pubDate>Tue, 04 Oct 2016 12:14:22 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/838/</guid>
      <description>源起 之前有一个群友在群里问个如何快速搭建一个搜索引擎，在搜索之后我看到了这个 代码所在 Git:https://github.com/asciimoo/searx 官方很贴心，很方便的是已经提供了docker 镜像，基本pull下来就可以很方便的使用了，执行命令 cid=$(sudo docker ps -a | grep searx | awk &amp;#39;{print $1}&amp;#39;) echo searx cid is $cid if [ &amp;#34;$cid&amp;#34; != &amp;#34;&amp;#34; ];then sudo docker stop $cid sudo docker rm $cid fi sudo docker run -d --name searx -e IMAGE_PROXY=True -e BASE_URL=http://yourdomain.com -p 7777:8888 wonderfall/searx 然后就可以</description>
    </item>
    
    <item>
      <title>[Nancy On .Net Core] 轻量级的web框架</title>
      <link>https://brucedone.com/archives/843/</link>
      <pubDate>Fri, 30 Sep 2016 10:09:55 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/843/</guid>
      <description>.net core现在已经有了大的发展，虽然笔者现在已经从事python开发，但是一直在关注.net的发展，在逛博客园的时候，发现有大家都会提到Nancy这个框架，在简单的使用之后，发现竟然是如此的简单而优雅 public class SampleModule : Nancy.NancyModule { public SampleModule() { Get[&amp;#34;/&amp;#34;] = _ =&amp;gt; &amp;#34;Hello World!&amp;#34;; } } 代码已经上传到git上，包含源代码和docke</description>
    </item>
    
    <item>
      <title>(13)分布式下的爬虫Scrapy应该如何做-分布式架构</title>
      <link>https://brucedone.com/archives/805/</link>
      <pubDate>Thu, 11 Aug 2016 12:06:04 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/805/</guid>
      <description>上一篇我们已经讲了是什么，为什么的问题，从我们一些简单的实例中分析了分布式的一些优势，以及一些现有的，基于scrapy的分布式的框架。接下来就是分享我工作中使用的框架基本思想 源码 我们先从scrapy的Spider源码来看 def from_crawler(cls, crawler, *args, **kwargs): spider = cls(*args, **kwargs) spider._set_crawler(crawler) return spider def set_crawler(self, crawler): warnings.warn(&amp;#34;set_crawler is deprecated, instantiate and bound the &amp;#34; &amp;#34;spider to this crawler with from_crawler method</description>
    </item>
    
    <item>
      <title>(12)分布式下的爬虫Scrapy应该如何做-浅析分布式</title>
      <link>https://brucedone.com/archives/795/</link>
      <pubDate>Thu, 04 Aug 2016 07:26:50 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/795/</guid>
      <description>我们先了解一下分布式，以下的内容在很早之前分享在一个爬虫群里面，现在拿出来重新回顾一下。 大家面试或者聊天的时候，装逼都会问，分布式，你会吗？那什么是分布式，为什么要分布式，怎么样实现分布式，我们先从逻辑上思考这三个问题 是什么 为什么 怎么样 啥是分布式 分布式说白了，就是你是一个有钱的地</description>
    </item>
    
    <item>
      <title>[调度]可视化的调度架构-Dagobah</title>
      <link>https://brucedone.com/archives/865/</link>
      <pubDate>Sun, 22 May 2016 12:19:50 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/865/</guid>
      <description>Dagobah 简介 Dagobash 是用 python 编写的一个简单的基于依赖关系的作业调度器。 Dagobah 允许你使用 Cron 语法安排调度工作，你可以非常简单的通过 web 界面点击拖动来定义每个工作的一系列任务的依赖关系。 Dagobash 可以让你重试失败的单个任务，给你发送有用的工作任务成功和失败的报告，并且可以在多种后台持久化你的数据，这样你就不用担心</description>
    </item>
    
    <item>
      <title>[python代码生成器]jinja2模板引擎下的代码生成器</title>
      <link>https://brucedone.com/archives/733/</link>
      <pubDate>Sun, 24 Apr 2016 11:46:21 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/733/</guid>
      <description>当慢慢了解做一些重复性的工作时候，我们都会思考，有没有什么办法简化工作，人因为懒洗衣服，所以有洗衣机，因为懒打扫，所以洗尘器，洗碗机，程序员们的懒，更多的是简化工作和抽象上，比如某个动作能不能封装成函数，进而封装成类，或者包，这样的懒才会有进步，才能将更多的时间放在一些值得关注的</description>
    </item>
    
    <item>
      <title>[读书]编写高质量的python程序的91个建议(3)</title>
      <link>https://brucedone.com/archives/727/</link>
      <pubDate>Sat, 23 Apr 2016 09:06:08 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/727/</guid>
      <description>声明，这些读书笔记我都是跳跃性的去找对我项目有帮助的，有一些废话我就直接删除了，所以一般不会特定的保留顺序，如果需要参考原版，请参考书中的内容。 9.数据交换值的时候不推荐使用中间变量。 之前大家一般都会使用中间变量来交换值，现在推荐直接交互。比如 x,y = y,x 那我们更深入一点，为什么会快呢</description>
    </item>
    
    <item>
      <title>(11)分布式下的爬虫Scrapy应该如何做-关于ajax渲染环境splash的一些使用技巧总结</title>
      <link>https://brucedone.com/archives/700/</link>
      <pubDate>Tue, 19 Apr 2016 14:11:46 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/700/</guid>
      <description>老规矩，先把相关的git地址上齐 scrapyjs：===&amp;gt;scrapyjs&amp;lt;==== splash: ===&amp;gt;splash&amp;lt;==== 文档地址：===&amp;gt;doc for splash&amp;lt;=== 在上一篇文档：关于动态js或者ajax的处理，我简单的说了一下splash的使用,如果融入到scrapy中，我们需要使用官网的提供做法，先安装sc</description>
    </item>
    
    <item>
      <title>[读书]编写高质量的python程序的91个建议(2)</title>
      <link>https://brucedone.com/archives/694/</link>
      <pubDate>Sun, 10 Apr 2016 08:05:51 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/694/</guid>
      <description>4.在代码中添加适当的注释。 5。通过适当加添加空行使代码布局更为优雅，合理。 在一组代码表达完一个完整的思路之后，应该使用空白行进行间隔 尽量保持上下文语义的易理解性 避免过长的代码 不要为了保持水平对齐而使用多余的空格。 6.编写函数的4个原则 原则1 函数设计要尽量短小，嵌套层次不要太深 原</description>
    </item>
    
    <item>
      <title>[读书]编写高质量的python程序的91个建议(1)</title>
      <link>https://brucedone.com/archives/679/</link>
      <pubDate>Tue, 05 Apr 2016 05:15:28 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/679/</guid>
      <description>1，理解pythonic（python化）的概念 美胜丑，显胜隐，简胜杂，杂胜乱，平胜陡，疏胜密(以最小，最明显的逻辑单元来写方法) 找到简单问题的一个方法，最好是唯一的方法(正确的解决之道) 难以解释的实现，源自不好的主意；如有非常 棒的主意，它的实现肯定易于解释(一个需求过来，先看自</description>
    </item>
    
    <item>
      <title>ubuntu下mysql的远程访问开启</title>
      <link>https://brucedone.com/archives/684/</link>
      <pubDate>Wed, 30 Mar 2016 12:06:35 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/684/</guid>
      <description>ubuntu下的linux开启稍微有点麻烦，查了一些资料才搞定，总结一下当作以后的速查表。 1.首先，机器要开启了3306端口 root@iZ94vs9ps2zZ:~# netstat -an | grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 如果前缀是127.0.0.1:3306，那至少证明没有开启端口，那如何处理呢，接下来看第二步 2.修改mysql 配置文件 cd /etc/mysql 我们查看一</description>
    </item>
    
    <item>
      <title>Git的三道菜，提升你的git水平</title>
      <link>https://brucedone.com/archives/669/</link>
      <pubDate>Fri, 11 Mar 2016 06:27:06 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/669/</guid>
      <description>最近发现了scrapyd官方的一个bug，在fix的过程中被维护者吐嘈git水平太低了，然后多次commit了一些无用的信息，导致git的树相对混乱，这对于我这个只使用git commit push add的人提了一个醒，平常都只是将git当作一个存代码的地方，从来没有正儿八经的去看这个问题(这个问题</description>
    </item>
    
    <item>
      <title>(10)分布式下的爬虫Scrapy应该如何做-关于动态内容js或者ajax处理(2)</title>
      <link>https://brucedone.com/archives/560/</link>
      <pubDate>Tue, 08 Mar 2016 03:54:42 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/560/</guid>
      <description>不知不觉这个系列就已经写到了第十篇，如果你跟着前面教程一步一步来，我想你对于scrapy的熟练的程度已经超过了很多人了，这个时候你可能会思考，如果我自己去写这样一个爬虫框架，我会怎么来写，如果是我，我对于队列，数据库的解析又应该怎么来处理呢。如果你能深入到这样的一个地步，我想你一</description>
    </item>
    
    <item>
      <title>ssh免登陆实现</title>
      <link>https://brucedone.com/archives/554/</link>
      <pubDate>Wed, 02 Mar 2016 07:20:01 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/554/</guid>
      <description>背景 最近在维护mongo集群与spider集群之中，经常来回ssh 登录，非常的不方便，以下的操作可以省去大部分的工作精力 简短命令 我们可以切换到本地的ssh config 目录来重命名，这样就可以不用输入ip了 cd ~/.ssh/ vim config 结果展示 Host mongo001 HostName 192.168.8.4 Host mongo002 HostName 192.168.8.5 Host mongo003 HostName 192.168.8.6 免登录 1.在A机下生成公钥/私钥对 [hadoop@wang-PC ~]$ ssh-keygen -t rsa -P</description>
    </item>
    
    <item>
      <title>基于scrapy可见可得的爬虫工具arachnado</title>
      <link>https://brucedone.com/archives/496/</link>
      <pubDate>Wed, 24 Feb 2016 08:00:07 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/496/</guid>
      <description>效果预览和项目所在 先上Git地址：https://github.com/TeamHG-Memex/arachnado 这个库在去年8月就已经上线了，作者写的东西和整体的UI界面满不错的， 这是从youtube下载下来后上传到youku的演示效果 整体的效果确实真的很不错，基于torna</description>
    </item>
    
    <item>
      <title>关于我</title>
      <link>https://brucedone.com/aboutme/</link>
      <pubDate>Wed, 13 Jan 2016 06:51:39 +0000</pubDate>
      
      <guid>https://brucedone.com/aboutme/</guid>
      <description>个人简介 coder,努力学习数据方面,scrapyd,portia 的贡献者 Github:BruceDone的GitHub cnblogs:博客园的博客 技术支持请联系邮件nicefish66@gmail.com QQ群交流:330672178 个人公众号 博客版本 2016-02-23 正式开启博客和独立域名 2017-02-23</description>
    </item>
    
    <item>
      <title>转[开发环境配置]在Ubuntu下配置舒服的Python开发环境</title>
      <link>https://brucedone.com/archives/17/</link>
      <pubDate>Tue, 12 Jan 2016 21:11:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/17/</guid>
      <description>在Ubuntu下配置舒服的Python开发环境 # 安装 Python 发布版本，dev包必须安装，很多用pip安装包都需要编译 sudo apt-get install python2.7 python2.7-dev python3.2 python3.2-dev # 很多pip安装的包都需要libssl和libevent编译环境 sudo apt-get install build-essential libssl-dev libevent-dev libjpeg-dev libxml2-dev libxslt-dev # 安装 pip sudo apt-get install python-pip # 安装 virtualenv sudo pip install virtualenv # 安装 python2.7 virtualenv virtualenv --no-site-packages -p /usr/bin/python2.7 ~/.venv/python2.7 # 安装 python3.2 virtualenv virtualenv --no-site-packages -p /usr/bin/python3.2 ~/.venv/python3.2 &amp;lt;p&amp;gt;</description>
    </item>
    
    <item>
      <title>转自coolshell--vim的基本操作</title>
      <link>https://brucedone.com/archives/19/</link>
      <pubDate>Sun, 10 Jan 2016 23:48:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/19/</guid>
      <description>你想以最快的速度学习人类史上最好的文本编辑器VIM吗？你先得懂得如何在VIM幸存下来，然后一点一点地学习各种戏法。 Vim the Six Billion Dollar editor Better, Stronger, Faster. 学习 vim 并且其会成为你最后一个使用的文本编辑器。没有比这个更好的文本编辑器了，非常地难学，但是却不可思议地好用。 我建议下面这四个步骤： 存活 感觉良好 觉得</description>
    </item>
    
    <item>
      <title>[pyspider]初识，安装以及本地的Dashbord的使用</title>
      <link>https://brucedone.com/archives/30/</link>
      <pubDate>Wed, 09 Dec 2015 06:30:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/30/</guid>
      <description>在正式进入之前，我自己在本地试验了win7和ubuntu的环境，由于phantomjs(解析ajax和js的环境，所以最后还是使用了ubuntu 14.04 64 bit 的环境)，不得不感叹，ubuntu真的是给开发者用的。 一，pip安装 介于国外的pip官网只是会出现各种蛋疼的反应，可以使用阿里云来</description>
    </item>
    
    <item>
      <title>[python基础]列表和元组</title>
      <link>https://brucedone.com/archives/31/</link>
      <pubDate>Wed, 09 Dec 2015 00:51:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/31/</guid>
      <description>一，结构图 二，序列的相关 1.大致的预览 在python的世界里，有6种内建的序列 列表 : [1,2,3,4,5,6,7] 元组: (1,2,3,5,6) 字符串:’今天天气不错呀’ Unicode字符串:’\u9007\u8222&amp;amp;#8217; buffer对象: xrange对象: 列表和元组区分开：是列表可以修改，元组不可以修改. 如果</description>
    </item>
    
    <item>
      <title>[python基础]关于包，类，模块的那些事儿</title>
      <link>https://brucedone.com/archives/33/</link>
      <pubDate>Tue, 08 Dec 2015 23:06:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/33/</guid>
      <description>在理解python的包，类，模块之前，我一直是将他类比为dll，C#的类，命名空间的这种参照，这其实和C#还是存在差异的，我们先从宏观上来看这些单位. 类 关于类的定义出现在各个语言之中，在OOP中几乎是最小的封装单元了，方便更高的复用 模块 我们知道，在C#如果新建一个文件夹folde</description>
    </item>
    
    <item>
      <title>[python IDE] 舒服的pycharm设置</title>
      <link>https://brucedone.com/archives/38/</link>
      <pubDate>Tue, 08 Dec 2015 05:51:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/38/</guid>
      <description>个人使用的IDE有国产的ulipad,sublime text 3 ,或者vs集成下的，不过讲到好用跨平台，还真是只有pycharm 写python最舒服，一个是因为有社区版，免费，不存在版权问题，另外跨平台，ubuntu ,windows,mac 都用的很舒服，然后配置一些常用设置，就能达到很好的效果，OK我将我自己</description>
    </item>
    
    <item>
      <title>[python基础]关于中文编码和解码那点事儿</title>
      <link>https://brucedone.com/archives/43/</link>
      <pubDate>Thu, 03 Dec 2015 08:25:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/43/</guid>
      <description>我们在用python处理中文的时候，或多或少会遇到这样一些错误 常见错误1: SyntaxError: Non-ASCII character &#39;\xe4&#39; in file C 常见错误2: UnicodeEncodeError: &#39;ascii&#39; codec can&#39;t encode characters in position 0-1: ordinal not in range(128) 毫无疑问，我们在用python2.7.x的时候都会遇到这种问题，我们常规的解法又是怎么样的呢 # coding:utf-8 import requests def print_text(): url = &amp;#39;http://www.cnblogs.com/&amp;#39; print requests.get(url).text.encode(&amp;#39;utf-8&amp;#39;) print_text() 首先在文件py文件的头部加上标识cod</description>
    </item>
    
    <item>
      <title>[python基础]关于装饰器</title>
      <link>https://brucedone.com/archives/47/</link>
      <pubDate>Wed, 02 Dec 2015 08:47:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/47/</guid>
      <description>在面试的时候，被问到装饰器，在用的最多的时候就@classmethod ,@staticmethod,开口胡乱回答想这和C#的static public 关键字是不是一样的，等面试回来一看，哇，原来是这样，真佩服我当时厚着脸皮回答的那些问题&amp;hellip; OK,先来张图看看装饰器内容： OK，我们</description>
    </item>
    
    <item>
      <title>从.net转型，聊聊最近一些面试,薪资和想法</title>
      <link>https://brucedone.com/archives/49/</link>
      <pubDate>Tue, 01 Dec 2015 06:27:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/49/</guid>
      <description>上一个星期，一篇名为《.net估计要写在你手里了》几乎点燃了整个园子，有人群情激愤了，有人点赞的，有人上去打算喷博主个体无完肤的，总之，这篇博客很成功的引起一些.net 从业者的思考，也包括我。 写那篇博客的人是一名从业6年的.net coder，之所以定义为coder，我在回顾了博主</description>
    </item>
    
    <item>
      <title>(9)分布式下的爬虫Scrapy应该如何做-关于ajax抓取的处理(1)</title>
      <link>https://brucedone.com/archives/58/</link>
      <pubDate>Tue, 24 Nov 2015 19:38:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/58/</guid>
      <description>转载请注明出处：http://www.cnblogs.com/codefish/p/4993809.html 最近在群里频繁的被问到ajax和js的处理问题，我们都知道，现在很多的页面都是用动态加载的技术，这一方面带来了良好的页面体验，另一方面，在抓取时或者或少的带来了相当大的麻烦</description>
    </item>
    
    <item>
      <title>数学之美--关于图论引申出来的爬虫构想</title>
      <link>https://brucedone.com/archives/64/</link>
      <pubDate>Mon, 16 Nov 2015 23:47:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/64/</guid>
      <description>转载请注明出处：http://www.cnblogs.com/codefish/p/4971664.html在了解爬虫之前，我一直认为是简单的对单一网站的采集，无非就是对于一个域名内定点的数据抓取而已，2012年买了《数学之美》后，就一直没有正儿八经的看，或者当时看了之后，由于自</description>
    </item>
    
    <item>
      <title>(8)分布式下的爬虫Scrapy应该如何做-图片下载(源码放送)</title>
      <link>https://brucedone.com/archives/65/</link>
      <pubDate>Sun, 15 Nov 2015 19:00:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/65/</guid>
      <description>转载主注明出处：http://www.cnblogs.com/codefish/p/4968260.html 在爬虫中，我们遇到比较多需求就是文件下载以及图片下载，在其它的语言或者框架中，我们可能在经过数据筛选，然后异步的使用文件下载类来达到目的，Scrapy框架中本身已经实现了文</description>
    </item>
    
    <item>
      <title>【转】Bloom Filter布隆过滤器的概念和原理</title>
      <link>https://brucedone.com/archives/68/</link>
      <pubDate>Fri, 13 Nov 2015 06:56:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/68/</guid>
      <description>转自：http://blog.csdn.net/jiaomeng/article/details/1495500 之前看数学之美丽，里面有提到布隆过滤器的过滤垃圾邮件，感觉到何其的牛，竟然有这么高效的算法，一直在听这个名词，但一直没有正儿八经的去了解，今天看到了一篇关于Bloom Filter</description>
    </item>
    
    <item>
      <title>【转】Python中的GIL、多进程和多线程</title>
      <link>https://brucedone.com/archives/86/</link>
      <pubDate>Fri, 13 Nov 2015 06:00:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/86/</guid>
      <description>&amp;lt;ul&amp;gt; &amp;lt;li&amp;gt; [1. GIL(Global Interpretor Lock,全局解释器锁)](http://lesliezhu.github.io/public/2015-04-20-python-multi-process-thread.html#sec-1) &amp;lt;/li&amp;gt; &amp;lt;li&amp;gt; [2. threading](http://lesliezhu.github.io/public/2015-04-20-python-multi-process-thread.html#sec-2) &amp;lt;ul&amp;gt; &amp;lt;li&amp;gt; [2.1. 创建线程](http://lesliezhu.github.</description>
    </item>
    
    <item>
      <title>(7)分布式下的爬虫Scrapy应该如何做-关于伪装和防Ban的那点事儿</title>
      <link>https://brucedone.com/archives/88/</link>
      <pubDate>Tue, 10 Nov 2015 00:18:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/88/</guid>
      <description>背景 写好的爬虫放在网上爬，被ban其实是一件很郁闷的事情，现在各个网站都会有相应的防爬的措施，一般来说模拟请求头一般都够了，不过仅仅是模拟请求头够么，答案当然是否定的，我们至少需要手动的打开一个网站，用fiddler 或者Chrome 的 F12 来具体看看我们一次真实的请求都做了哪些操作。</description>
    </item>
    
    <item>
      <title>python下的orm基本操作(1)--Mysql下的CRUD简单操作(含源码DEMO)</title>
      <link>https://brucedone.com/archives/97/</link>
      <pubDate>Sun, 08 Nov 2015 20:21:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/97/</guid>
      <description>最近逐渐打算将工作的环境转移到ubuntu下，突然发现对于我来说，这ubuntu对于我这种上上网，收收邮件，写写博客，写写程序的时实在是太合适了，除了刚接触的时候会不怎么完全适应命令行及各种权限管理，apt-get命令相当的方便，各种原先在windows下各种奇怪错误在ubunt</description>
    </item>
    
    <item>
      <title>爬虫应该怎么部署到ubuntu上</title>
      <link>https://brucedone.com/archives/100/</link>
      <pubDate>Sat, 07 Nov 2015 08:59:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/100/</guid>
      <description>环境准备 ubuntu服务器 scrapyd scrapyd-client 一个写好的scrapy爬虫文件 开始执行 安装package pip install scrapyd pip install scrapyd-client 开启scrapyd服务器 直接在某个窗口执行命令scrapyd,会得到以下信息 2017-06-23T12:05:35+0800 [-] Loading /Users/brucedone/anaconda/envs/scrapy_project/lib/python2.7/site-packages/scrapyd/txapp.py... 2017-06-23T12:05:36+0800 [-] Scrapyd web console available at http://127.0.0.1:6800/ 2017-06-23T12:05:36+0800 [-] Loaded. 2017-06-23T12:05:36+0800 [twisted.scripts._twistd_unix.UnixAppLogger#info] twistd 16.5.0 (/Users/brucedone/anaconda/envs/scrapy_project/bin/python 2.7.12) starting up. 2017-06-23T12:05:36+0800 [twisted.scripts._twistd_unix.UnixAppLogger#info] reactor class: twisted.internet.selectreactor.SelectReactor. 2017-06-23T12:05:36+0800 [-] Site starting on 6800 2017-06-23T12:05:36+0800 [twisted.web.server.Site#info] Starting factory &amp;lt;twisted.web.server.Site instance at 0x106da50e0&amp;gt; 2017-06-23T12:05:36+0800 [Launcher] Scrapyd 1.2.0 started: max_proc=32, runner=u&amp;#39;scrapyd.runner&amp;#39; 如上所示</description>
    </item>
    
    <item>
      <title>(6)分布式下的爬虫Scrapy应该如何做-关于打断点Debug的那些事儿</title>
      <link>https://brucedone.com/archives/101/</link>
      <pubDate>Thu, 05 Nov 2015 22:17:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/101/</guid>
      <description>写完了一个爬虫，最重要的就是测试，然后各种Debug，下面我用三种方式来介绍我总结出来的Debug，由浅入深的深入里面的细节部分。 初级的Debug 一般来说，当选中了一个页面，最重要的逻辑一般都包含在xpath表达式里面，所以，在这里我们可以直接scrapy shell的方式来去验证</description>
    </item>
    
    <item>
      <title>(5.1)分布式下的爬虫Scrapy应该如何做-windows下的redis的安装与配置</title>
      <link>https://brucedone.com/archives/108/</link>
      <pubDate>Wed, 04 Nov 2015 22:51:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/108/</guid>
      <description>软件版本： redis-2.4.6-setup-64-bit.exe — Redis 2.4.6 Windows Setup (64-bit) 系统： win7 64bit 本篇的内容是为了给分布式下的爬虫做好预热的环境准备，我们知道单机的爬虫始终会有一个性能瓶颈，特别是对于是否爬过的URL来说，存在本地关系型的数据库始终会有一个性能上的考究，这里引入redis，可以很方便的通过集群来解决这个问题，在任何大的问题解决</description>
    </item>
    
    <item>
      <title>django book 阅读笔记</title>
      <link>https://brucedone.com/archives/112/</link>
      <pubDate>Mon, 19 Oct 2015 15:35:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/112/</guid>
      <description>思考 django是一个十分优秀的python web的框架，那框架的是什么？ 假设我们不使用框架来进行编写，我们要用如下的代码进行web脚本： #!/usr/bin/env python import MySQLdb print &amp;#34;Content-Type: text/html\n&amp;#34; print &amp;#34;Books&amp;#34; print &amp;#34;&amp;#34; print &amp;#34;``` &amp;lt;h1&amp;gt;Books&amp;lt;/h1&amp;gt; &amp;#34; print connection = MySQLdb.connect(user=&amp;#39;me&amp;#39;, passwd=&amp;#39;letmein&amp;#39;, db=&amp;#39;my_db&amp;#39;) cursor = connection.cursor() cursor.execute(&amp;#34;SELECT name FROM books ORDER BY pub_date DESC LIMIT 10&amp;#34;) for row in cursor.fetchall(): print &amp;#34;&amp;lt;li&amp;gt;%s&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/ul&amp;gt;&amp;#34; % row[0] connection.close() 那我们如果有很多的页面 ，那针对于各种网页来都要编写不同的</description>
    </item>
    
    <item>
      <title>30分钟快速搭建Web CRUD的管理平台--django神奇魔法</title>
      <link>https://brucedone.com/archives/113/</link>
      <pubDate>Sun, 18 Oct 2015 14:43:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/113/</guid>
      <description>加上你的准备的时间，估计30分钟完全够用了，因为最近在做爬虫管理平台，想着快速开发，没想到python web平台下有这么非常方便的框架，简洁而优雅。将自己的一些坑总结出来，方便给大家的使用。 准备环境： 系统：win7 or ubuntu django版本：1.8.5 python版本：2.7.6 数据库</description>
    </item>
    
    <item>
      <title>Python基础学习导引--条件，循环和其它语句(读书笔记)</title>
      <link>https://brucedone.com/archives/120/</link>
      <pubDate>Wed, 14 Oct 2015 05:42:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/120/</guid>
      <description>一，打印 Print语句可以用来打印由逗号隔开的多个值。如果语句以逗号结尾，后面的语句会在同一行内被继续打印，这一点和VB的语法有点像 name = &amp;#39;this&amp;#39; name_1 = &amp;#39;is&amp;#39; name_2 = 2 print name,name_1,&amp;#39;not&amp;#39;,name_2 输出： this is not 2 二，导入 有些时候，你可以将import &amp;hellip;.as&amp;hellip;.语句进行函数的局部重命名，和.ne</description>
    </item>
    
    <item>
      <title>一个开发者的独白--ubuntu下的常用命令及常用软件及设置</title>
      <link>https://brucedone.com/archives/121/</link>
      <pubDate>Mon, 12 Oct 2015 15:41:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/121/</guid>
      <description>命令合集 1.最常用的 sudo apt-get install 软件名 2.cd 命令 切换目录 直接打cd命令，切换到home目录之下 打完cd然后 按tab ，可以自动完成一些命令，相当的实用 3.mkdir 创建文件夹 4.rm -r 删除文件夹或者文件 5.ls -al 列出全部的文件 6.ls -l 列出权限信息 7.pwd 列出当前的目录 8.sh 脚本名，运行shell 脚本 9.find / -name 要找的文件名 10.chmod 更改文件夹</description>
    </item>
    
    <item>
      <title>一个开发者的独白-linux的转入使用</title>
      <link>https://brucedone.com/archives/124/</link>
      <pubDate>Thu, 24 Sep 2015 04:09:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/124/</guid>
      <description>背景 昨天花了一点的时间安装ubuntu14.04，安装的过程满快的，说实话，ubuntu带给我的不仅仅是惊奇，确实相当的好用。到现在为止，遇到了相当多的坑，我在这里记录一下自己的历程 下载与版本选择 先说说自己的配置，公司发的笔记本，500g硬盘，双核CPU , 2G 内存，相当的一般的配置</description>
    </item>
    
    <item>
      <title>python下的自动化测试--selenium 验证码输入问题</title>
      <link>https://brucedone.com/archives/126/</link>
      <pubDate>Tue, 22 Sep 2015 10:35:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/126/</guid>
      <description>背景 之前一直在研究scrapy下数据抓取，在研究ajax数据抓取时碰巧研究了一下selenium，确实很实用，不过只做scrapy下的数据抓取，不怎么合适 一是性能的损耗，一直需要开一个浏览器 二是对于爬虫来说，分析ajax的请求才是正事 好吧，说远了，今天来扯一下我对于自动化测试一些</description>
    </item>
    
    <item>
      <title>(4)分布式下的爬虫Scrapy应该如何做-规则自动爬取及命令行下传参</title>
      <link>https://brucedone.com/archives/129/</link>
      <pubDate>Tue, 15 Sep 2015 00:48:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/129/</guid>
      <description>本次探讨的主题是规则爬取的实现及命令行下的自定义参数的传递，规则下的爬虫在我看来才是真正意义上的爬虫。 我们选从逻辑上来看，这种爬虫是如何工作的： 我们给定一个起点的url link ，进入页面之后提取所有的ur 链接，我们定义一个规则，根据规则(用正则表达式来限制)来提取我们想要的连接形式，然</description>
    </item>
    
    <item>
      <title>【实用】如何将sublime text 3 打造成实用的python IDE 环境</title>
      <link>https://brucedone.com/archives/134/</link>
      <pubDate>Mon, 14 Sep 2015 05:42:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/134/</guid>
      <description>前段时间写脚本，一直使用的是pycharm ，无奈机器不配置实在不怎么样，我记得之前用过subline text，这是我用过的最酷炫的文本编辑器，参考了一下网上的文章，自己走了一些弯路，将心得写在这里，方便给需要帮助的人： 这是完成配置后的界面： 一，下载subline text 3 官网:http</description>
    </item>
    
    <item>
      <title>(5)分布式下的爬虫Scrapy应该如何做-关于爬虫的调度机制与调度架构的构想</title>
      <link>https://brucedone.com/archives/139/</link>
      <pubDate>Thu, 10 Sep 2015 00:36:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/139/</guid>
      <description>调度组件 scrapyd (pip 安装) tiktok (docker安装) - 点击跳转 环境:ubuntu14.04 分析 我们使用scrapyd作为爬虫的执行者，关于scrapyd部署爬虫，请参考文章爬虫应该怎么部署到ubuntu上，这样在每一台机器都留出了http的api接口，我们只需要使用一个定时任务就可以正常的轮</description>
    </item>
    
    <item>
      <title>(3)分布式下的爬虫Scrapy应该如何做-递归爬取方式，数据输出方式以及数据库链接</title>
      <link>https://brucedone.com/archives/140/</link>
      <pubDate>Sun, 06 Sep 2015 23:35:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/140/</guid>
      <description>[2016-11-21更新]关于demo代码，请参考: ===&amp;gt;scrapy_demo&amp;lt;=== 放假这段时间好好的思考了一下关于Scrapy的一些常用操作，主要解决了三个问题 如何连续爬取 数据输出方式 数据库链接 如何连续爬取 思考：要达到连续爬取，逻辑上无非从以下的方向着手 预加载需要爬取的列表，直接到这个列表都处理完，相应的</description>
    </item>
    
    <item>
      <title>使用scrapy有用的一些细节点</title>
      <link>https://brucedone.com/archives/144/</link>
      <pubDate>Wed, 02 Sep 2015 18:26:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/144/</guid>
      <description>使用心得 extract()方法得到的都是数组，所以如果你要撮出来一个字符串，使用join方法就可以了，记得判断是否为空 settings如果你要自己定义的header,记得禁用cookie_enable ，不然会带上自定义的header 可以使用respose.body_as_unic</description>
    </item>
    
    <item>
      <title>Winform下的语言国际化，几行代码轻松实现</title>
      <link>https://brucedone.com/archives/149/</link>
      <pubDate>Wed, 02 Sep 2015 04:50:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/149/</guid>
      <description>最近做了一些关于winform的项目，需要用到winform的语言国际化，在初使化的时候用起来非常方便。可以参考一下： 核心逻辑： 预览效果演示： OK，以下是核心代码和操作流程 using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WFInfor { public class LanguageHelper { #region SetAllLang /// &amp;lt;summary&amp;gt; /// Set language /// &amp;lt;/summary&amp;gt; /// private static void SetAllLang(string lang) { System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(lang); Form frm = null; string name = &amp;#34;MainForm&amp;#34;; frm = (Form)Assembly.Load(&amp;#34;CameraTest&amp;#34;).CreateInstance(name); if (frm</description>
    </item>
    
    <item>
      <title>(2)分布式下的爬虫Scrapy应该如何做-关于对Scrapy的反思和核心对象的介绍</title>
      <link>https://brucedone.com/archives/145/</link>
      <pubDate>Wed, 02 Sep 2015 01:07:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/145/</guid>
      <description>本篇主要介绍对于一个爬虫框架的思考和，核心部件的介绍，以及常规的思考方法： 猜想 我们说的爬虫，一般至少要包含几个基本要素： 1.请求发送对象(sender,对于request的封装，防止被封) 2.解析文档对象(将请求的网页当作是html文档还是字符串) 3.承载所需要的解析对象(标准格</description>
    </item>
    
    <item>
      <title>(1)分布式下的爬虫Scrapy应该如何做-安装</title>
      <link>https://brucedone.com/archives/155/</link>
      <pubDate>Mon, 31 Aug 2015 20:41:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/155/</guid>
      <description>windows 关于Scrapy的安装，网上一搜一大把，一个一个的安装说实话是有点麻烦，那有没有一键安装的？答案显然是有的，下面就是给神器的介绍： 主页：http://conda.pydata.org/docs/ 下载地址:http://continuum.io/downloads 两个版本，64位</description>
    </item>
    
    <item>
      <title>.net下的摄像头操作及截图和录像功能的实现(1)--源码放送</title>
      <link>https://brucedone.com/archives/157/</link>
      <pubDate>Mon, 24 Aug 2015 16:24:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/157/</guid>
      <description>关于.net下的摄像头操作，一般选用Aforge.net 框架的几个dll文件，功能强大，操作简单，不过在实际操作中坑中的不少，下面我就来演示常用的操作。 Aforge.net 官网：http://www.aforgenet.com/aforge/framework/ 关于Aforge.net的简介：=&amp;</description>
    </item>
    
    <item>
      <title>SQL Server 2005 技术内幕：查询，调整和优化</title>
      <link>https://brucedone.com/archives/164/</link>
      <pubDate>Sun, 19 Jul 2015 15:01:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/164/</guid>
      <description>1.应用程序的体系结构； 1.将用户的请求结果缓存以最小化的重复计算。缓存技术的使用 2.多个服务器使用，负载均衡 2.应用程序的设计 1.数据库的设计规范直接影响性能的拓展，数据库的设计有5个范式，满足的范式越高，数据库数据的一致性就越高。数据库的范式主要是为了消除冗余的数据。 2.根据</description>
    </item>
    
    <item>
      <title>面试都问了些什么及解答</title>
      <link>https://brucedone.com/archives/165/</link>
      <pubDate>Thu, 16 Jul 2015 09:25:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/165/</guid>
      <description>-恢复内容开始- 一，大数据类: 问：一亿条字符串，固定长度，其中有重复的两条数据，如何找到(不限制方法) 1.linux系统下一条命令 2.导入数据库添加非聚焦索引，一条select 命令 3.文件流写成1000个文件，并计算hash值 % 100 这样就有100个文件，开多线程并行计算hashse</description>
    </item>
    
    <item>
      <title>不用找了,比较全的signalR例子已经为你准备好了(2)---JqGrid 服务端刷新方式-注释详细-DEMO源码下载</title>
      <link>https://brucedone.com/archives/169/</link>
      <pubDate>Wed, 08 Apr 2015 09:24:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/169/</guid>
      <description>上次用客户端进行数据刷新的方式,和官方的Demo实现存在差异性,今天花了一点时间好好研究了一下后台时时刷新的方式.将写的代码重新update了一次,在这之前找过好多的资料,发现都没有找到好的例子,自己查了一下官方的DEMO然后本地实现了一次,结合Jqgrid的前端库,发现还是非常</description>
    </item>
    
    <item>
      <title>不用找了,比较全的signalR例子已经为你准备好了.</title>
      <link>https://brucedone.com/archives/172/</link>
      <pubDate>Mon, 30 Mar 2015 14:46:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/172/</guid>
      <description>这几天想着将一个winform的工具上线到web上,因为对时时性的要求比较高,找朋友咨询了一下推荐了SignlarR 框架,比较强大.昨天才看到,今天研究了一下将里面的例子都拿出来共享. 官方的参考:http://www.asp.net/signalr/overview/gettin</description>
    </item>
    
    <item>
      <title>SQL杂粮铺</title>
      <link>https://brucedone.com/archives/178/</link>
      <pubDate>Thu, 27 Nov 2014 03:13:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/178/</guid>
      <description>一，提升工作效率 --Ctrl+F1：显示表或视图的前100行，选定&amp;amp;ldquo;tablename,1000&amp;amp;rdquo;按Ctrl+F1可显示表的前1000行。 sp_executesql N&amp;#39;IF OBJECT_ID(@tablename) IS NOT NULL EXEC(N&amp;#39;&amp;#39;SELECT TOP(&amp;#39;&amp;#39;+@n+N&amp;#39;&amp;#39;) * FROM &amp;#39;&amp;#39;+@tablename)&amp;#39;,N&amp;#39;@tablename nvarchar(100),@n int=100&amp;#39;, --Ctrl+3：显示视图、存储过程、函数、触发器的定义脚本。 sp_helptext --Ctrl</description>
    </item>
    
    <item>
      <title>26之前,26之后</title>
      <link>https://brucedone.com/archives/182/</link>
      <pubDate>Sat, 20 Sep 2014 03:47:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/182/</guid>
      <description>人人都说25岁是一道坎，我却之后的一年时间才明白这道坎在哪里 从毕业到现在快整2年了，回望刚参加工作时的羞涩，在到现在的种种变化，感觉2年时间过的很充实，也很有意义 工资水平也从刚来的2k，到今天的过了及格线；从当初什么都不懂的技术新手，到现在水平上的显著提升；从之前和别人讲话都会和</description>
    </item>
    
    <item>
      <title>SSIS从理论到实战,再到应用(7)----常用的数据类型转换操作</title>
      <link>https://brucedone.com/archives/183/</link>
      <pubDate>Thu, 08 May 2014 14:10:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/183/</guid>
      <description>上期回顾: SSIS从理论到实战,再到应用(6)&amp;ndash;SSIS的自带日志功能 在抽取各种应用的数据时候，经常会遇到数据需要转换类型的操作，比如日期在源数据库是dbtime类型，在本地需要用到字符串，这个时候有两种常用的方案来解决： 1.通过语法在源数据库进行类型转换，类似sql</description>
    </item>
    
    <item>
      <title>SSIS从理论到实战,再到应用(6)----SSIS的自带日志功能</title>
      <link>https://brucedone.com/archives/190/</link>
      <pubDate>Fri, 25 Apr 2014 13:40:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/190/</guid>
      <description>上期回顾: SSIS从理论到实战,再到应用(5)&amp;ndash;流程控制之Foreach循环 博主最近新负责了一个ssis大项目的架构，压力山大，所以都没有怎么正儿八经的更文章了，给园友们说声抱歉，接下来的一些文章可能都比较偏重于实用技巧方面^_^. 我们都知道，不论在任何一个项目，日志</description>
    </item>
    
    <item>
      <title>SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环</title>
      <link>https://brucedone.com/archives/200/</link>
      <pubDate>Tue, 01 Apr 2014 11:43:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/200/</guid>
      <description>上期回顾: SSIS从理论到实战,再到应用(4)&amp;ndash;流程控制之For循环 上一期讲了For循环，Foreach循环相比而言要更复杂一点，里面涉及变量的类型，数据接收问题，下面我用一个简单的示例来演示Foreach循环容器： 假设我们有这样一个需求: 从数据库中取出一列数据，循环</description>
    </item>
    
    <item>
      <title>SSIS从理论到实战,再到应用(4)----流程控制之For循环</title>
      <link>https://brucedone.com/archives/207/</link>
      <pubDate>Tue, 01 Apr 2014 03:22:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/207/</guid>
      <description>上期回顾: SSIS从理论到实战,再到应用(3)&amp;ndash;SSIS包的变量，约束，常用容器 在SSIS体系中，控制流可能经常会遇到，比如你取得一列数据，需要循环这列数据然后做相应的操作时，就需要用到循环，下面，我来操作两种循环方式，FOR循环和Foreach循环. 一，For循环 写</description>
    </item>
    
    <item>
      <title>SSIS从理论到实战,再到应用(3)----SSIS包的变量，约束，常用容器</title>
      <link>https://brucedone.com/archives/212/</link>
      <pubDate>Mon, 17 Mar 2014 09:41:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/212/</guid>
      <description>上期回顾： SSIS从理论到实战,再到应用(2)&amp;ndash;SSIS包的控制流 SSIS包变量分为两种，一种是系统的内置变量，是一个SSIS包初使化都会自带的，一种是用户自己定义的变量。 在SSIS包中，常用的变量的类型包含以下：Int32，String,Boolean,DateTi</description>
    </item>
    
    <item>
      <title>SSIS从理论到实战,再到应用(2)----SSIS包的控制流</title>
      <link>https://brucedone.com/archives/227/</link>
      <pubDate>Fri, 14 Mar 2014 08:54:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/227/</guid>
      <description>前文回顾: SSIS从理论到实战,再到应用(1)&amp;ndash;创建自己的第一个包 上次说到创建了自己的第一个包，完成了简单的数据从数据库=&amp;gt;数据库，以及Excel文件=&amp;gt;数据库过程,这一次咱们回看看一个包里面到底有哪些好玩的元素构成: 咱们一般写过代码的人都知道，很多的看似</description>
    </item>
    
    <item>
      <title>SSIS从理论到实战,再到应用(1)----创建自己的第一个包</title>
      <link>https://brucedone.com/archives/231/</link>
      <pubDate>Sun, 09 Mar 2014 07:15:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/231/</guid>
      <description>其实，如果你使用sql2008的导出导入工具的时候，你就已经在使用包了。 目标：使用sql2008 导入导出工具，导入excel数据，并得到一个package，然后查看package的设置 ====&amp;gt;最后得到SSIS包 我们梳理一下，我们的目标是什么：将excel的数据导入到了数据</description>
    </item>
    
    <item>
      <title>SSIS从理论到实战,再到应用</title>
      <link>https://brucedone.com/archives/255/</link>
      <pubDate>Thu, 06 Mar 2014 12:18:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/255/</guid>
      <description>一，是什么(What?)1.SSIS是Microsoft SQL Server Integration Services的简称，是生成高性能数据集成解决方案（包括数据仓库的提取、转换和加载 (ETL) 包）的平台.以上的这段文字来自于百度，脱离这个概念，我一直再思考如何向普通人解释SSIS这一套体系：我觉得我自己解释很有可能不到位，</description>
    </item>
    
    <item>
      <title>[面试记录-附部分面试题]2014第一波的找工作的记录</title>
      <link>https://brucedone.com/archives/259/</link>
      <pubDate>Wed, 12 Feb 2014 13:12:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/259/</guid>
      <description>放完假回来，人心真的有点浮躁了，特别是对于这样一份工作：外包，而且要你身兼数职，今天可能你干着BI很爽快的样子，明天就要调去做web了，再然后就是winform了，再然后就是运维了。虽说人还年轻，但是如此频繁的岗位转换，实在让人沉不下心来做点踏实的事情。所以估摸着要不要去试下水的</description>
    </item>
    
    <item>
      <title>项目总结(二)-&gt;一些常用的工具浅谈</title>
      <link>https://brucedone.com/archives/261/</link>
      <pubDate>Mon, 03 Feb 2014 12:21:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/261/</guid>
      <description>程序员是否应该沉迷于一个编程的世界，为了磨砺自己的编程技能而两耳不闻窗外事，一心只为写代码；还是说要做到各有涉猎，全而不精。关于这点每个人心中都有一套自己的工作体系和方法体系。 我一直认为，程序员你首先要摘掉自己给自己带的“程序员”的帽子，以一种”求知者“的身份不停的去学习一些新的</description>
    </item>
    
    <item>
      <title>项目总结(一)-&gt;项目的七宗罪</title>
      <link>https://brucedone.com/archives/265/</link>
      <pubDate>Wed, 22 Jan 2014 16:56:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/265/</guid>
      <description>大半夜来这一份总结，心中夹杂着各种各样的心情，酸甜苦辣都有，今天为止，整个项目终于完结了，对于这样一个本可以正而八经吃吃薯片，看看毛片就可以完成项目，最后演变成一个一月之内连续加班105个小时的项目，有自己经验的不足，也有能力不足，写下这样的一份总结，让自己沉下心来反思在一下自己</description>
    </item>
    
    <item>
      <title>别在迷恋正则表达式解析html了，好吗？</title>
      <link>https://brucedone.com/archives/271/</link>
      <pubDate>Sat, 18 May 2013 09:14:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/271/</guid>
      <description>近段时间在论坛上面兴起了一股正则之风，不论做什么都喜欢用正则 你在后台解析json格式字符串，必须要用正则，好吧，你可能不知道用JavaScriptSerializer类，你解析类似www.xxx.com?a=a1&amp;amp;b=b2&amp;amp;c=c3的querystring参数，必</description>
    </item>
    
    <item>
      <title>LinqToExcel 简洁与优美开源库</title>
      <link>https://brucedone.com/archives/273/</link>
      <pubDate>Mon, 08 Apr 2013 14:44:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/273/</guid>
      <description>正在做项目，同事问道有啥简单的方法读取excel到DataTable里面呢？ 想也不想直接回到NPOI呀，我觉得满不错的，同事说太麻烦了，要不你找找看。反正手上的项目做的差不多的，习惯性的打开google，感觉已经有了LinqToXml,那LinqToExcel呢？没成想一搜出来了</description>
    </item>
    
    <item>
      <title>MS_SQL_杂记(一)</title>
      <link>https://brucedone.com/archives/279/</link>
      <pubDate>Wed, 20 Mar 2013 14:06:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/279/</guid>
      <description>最近一段时间项目转入SSIS，从DB2和TeraData向MSSql中迁入，其中又穿插了perl一些的知识，感觉这段时间相当的充实，以前一直关注C#,javascript,不怎么写sql，现在一天写一两千行的sql，脸不红，气不喘，一口气连上八楼都不心跳加速了. 因为一些知识只是临</description>
    </item>
    
    <item>
      <title>Lambda下的常用操作=&gt;(1)</title>
      <link>https://brucedone.com/archives/283/</link>
      <pubDate>Fri, 01 Feb 2013 16:21:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/283/</guid>
      <description>使用Linq or Lambda进行查询，能感觉思路很清晰，昨天花了一个下午，今天花了一个下午，自己动手做了一些练习，总算是摸清了一些常用的操作。下面是我一些练习的代码。 int[] intarr = { 6, 1, 2, 3, 4, 5, 7, 8 }; string[] strarr = { &amp;#34;7&amp;#34;, &amp;#34;10&amp;#34;, &amp;#34;11&amp;#34;, &amp;#34;8&amp;#34;, &amp;#34;9&amp;#34; }; List&amp;lt;Person&amp;gt; list = new List&amp;lt;Person&amp;gt; { new Person(18,&amp;#34;well&amp;#34;,&amp;#34;a&amp;#34;,800), new Person(19,&amp;#34;mike&amp;#34;,&amp;#34;b&amp;#34;,600), new Person(25,&amp;#34;bruce&amp;#34;,&amp;#34;a&amp;#34;,700), new Person(28,&amp;#34;summer&amp;#34;,&amp;#34;b&amp;#34;,500), new Person(33,&amp;#34;energy&amp;#34;,&amp;#34;a&amp;#34;,900), new Person(50,&amp;#34;water&amp;#34;,&amp;#34;c&amp;#34;,1000), new Person(60,&amp;#34;spring&amp;#34;,&amp;#34;d&amp;#34;,1200), new Person(61,&amp;#34;fisher&amp;#34;,&amp;#34;a&amp;#34;,1100), new Person(65,&amp;#34;fish&amp;#34;,&amp;#34;a&amp;#34;,400) }; Console.Wr</description>
    </item>
    
    <item>
      <title>细节成就效率----平时积累的优化小细节(1)</title>
      <link>https://brucedone.com/archives/284/</link>
      <pubDate>Fri, 01 Feb 2013 13:45:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/284/</guid>
      <description>JavaScript:1.==(相等表达式)和===(恒等表达式) 在一定的情况下，使用===来判断值是否相等 两个例子: var p = ‘1’;console.log(p==1);输出:true&amp;lt;span class=&amp;quot;console-message-text source-code&amp;quot;&amp;gt;var p =&amp;amp;#8217;1&amp;amp;#8242;;&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;console-message-text source-code&amp;quot;&amp;gt;console.log(p===1);&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;console-message-text source-code&amp;quot;&amp;gt;输出:false&amp;lt</description>
    </item>
    
    <item>
      <title>[读书笔记]JavaScrpit基础知识----对象</title>
      <link>https://brucedone.com/archives/285/</link>
      <pubDate>Sun, 27 Jan 2013 14:25:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/285/</guid>
      <description>1.属性特性 *可写() *可枚举,表明是否可以通过for/in循环返回属性 *可配置,表明是否可以删除或修改该属性 2.对象特性 对象的原型(prototype)指向另外一个对象，本对象的属性继承自它的原型对象 对象的类(class)是一个标识对象类型的字符串 对象的扩展标记指明了是否可以向</description>
    </item>
    
    <item>
      <title>JavaScript基础知识--逻辑表达式的另一个层面</title>
      <link>https://brucedone.com/archives/288/</link>
      <pubDate>Mon, 14 Jan 2013 13:35:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/288/</guid>
      <description>分成两个部分讲 逻辑与:&amp;amp;&amp;amp; 第一层理解: x == 0 &amp;amp;&amp;amp; y == 0 ; //如果x 和 y都是0的话，那结果就返回true，反之任意一个不为0 返回false 这种理解很简单，求交集的结果 第二层理解： “&amp;amp;&amp;amp;&amp;quot; 可以对真值和假值进行布尔与(AND)运算。 第三层理解: 运</description>
    </item>
    
    <item>
      <title>【转】JavaScript代码风格推荐</title>
      <link>https://brucedone.com/archives/290/</link>
      <pubDate>Sun, 13 Jan 2013 15:15:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/290/</guid>
      <description>前言：好的代码风格可以让你写起来事半功倍，而混乱或者没有代码风格会让你事倍功办，起写越乱 1. Javascript代码应符合Douban-JSLint检验标准 2. Javascript命名规则 &amp;lt;td class=&amp;quot;c5&amp;quot;&amp;gt; &amp;lt;p class=&amp;quot;c0&amp;quot;&amp;gt; Element &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;td class=&amp;quot;c4&amp;quot;&amp;gt; &amp;lt;p class=&amp;quot;c0&amp;quot;&amp;gt; Example &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td class=&amp;quot;c6&amp;quot;&amp;gt; &amp;lt;p class=&amp;quot;c0&amp;quot;&amp;gt; n &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;td class=&amp;quot;c5&amp;quot;&amp;gt; &amp;lt;p class=&amp;quot;c0&amp;quot;&amp;gt; integer &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;td class=&amp;quot;c4&amp;quot;&amp;gt; &amp;lt;p class=&amp;quot;c0&amp;quot;&amp;gt; nVariableName &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td class=&amp;quot;c6&amp;quot;&amp;gt; &amp;lt;p class=&amp;quot;c0&amp;quot;&amp;gt; i,j,k,m,n, etc. * &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt;</description>
    </item>
    
    <item>
      <title>开发的经验准备之谈-不要写垃圾代码</title>
      <link>https://brucedone.com/archives/291/</link>
      <pubDate>Thu, 10 Jan 2013 03:50:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/291/</guid>
      <description>1.sql语句准备 string sqlstr = “select * from t_person where name=@name 最好是预留一个where条件 在分页的时候sql语句里面 一定要预留一个&amp;quot;where&amp;quot;和&amp;quot;order by “的字段准备 2.开始开发之前，好好回顾一下以犯的错，不要一犯再犯 3.在没有理解完全理解需求之前(至少要达</description>
    </item>
    
    <item>
      <title>服务器端控件--爱你恨你拥抱你</title>
      <link>https://brucedone.com/archives/292/</link>
      <pubDate>Wed, 09 Jan 2013 05:50:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/292/</guid>
      <description>服务器端控件，拖拖真舒服，一拖，datasource绑定数据源，一下子，一个完整的CRUD(增删改查)的功能就做出来了，真爽快！ 对，如果仅仅在内网或者追求极致速度的情况下，完全可以这样做，但是，右键，查看源代码的时候，你可以清晰的看到一大串ViewState.大量的ViewSta</description>
    </item>
    
    <item>
      <title>[转]30个提高Web程序执行效率的好经验</title>
      <link>https://brucedone.com/archives/293/</link>
      <pubDate>Tue, 08 Jan 2013 04:53:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/293/</guid>
      <description>1.尽量避免使用DOM。当需要反复使用DOM时，先把对DOM的引用存到JavaScript本地变量里再使用。使用设置innerHTML的方法来替换document.createElement/appendChild()方 法。 2.eval()有问题，new Fuction()构造函数</description>
    </item>
    
    <item>
      <title>回头看看，那些曾经陪伴我的低端错误【2013-12-26号新更新】</title>
      <link>https://brucedone.com/archives/294/</link>
      <pubDate>Mon, 07 Jan 2013 06:57:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/294/</guid>
      <description>痛苦就是财富，这纯属扯蛋，痛苦之后的思考，才会是财富。知识也是一样的道理，只知道一味的着急前进，却忘记自己留下的脚印，如果没有经过整理，思考，消化，吸收的过程，那它只是短暂的停留在自己的大脑里面。 这些看似简单问题，是我正式从9月份正式踏入程序员行业以来经验总结，若有什么不好的地方</description>
    </item>
    
    <item>
      <title>[转]LINQ图解</title>
      <link>https://brucedone.com/archives/297/</link>
      <pubDate>Tue, 01 Jan 2013 23:30:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/297/</guid>
      <description>原创地址：http://www.cnblogs.com/jfzhu/archive/2013/01/01/2841332.html LINQ，语言集成查询（Language INtegrated Query）是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以</description>
    </item>
    
    <item>
      <title>JavaScript你常用的方法</title>
      <link>https://brucedone.com/archives/307/</link>
      <pubDate>Sun, 30 Dec 2012 17:02:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/307/</guid>
      <description>1.for(var propertyname in obj) { alert(obj[propertyname]) } 遍历循环对象obj的属性数组，这个非常有用，特别是在前台拼接json数组的时候 2.var arr = [];arr.push();arr.join(&amp;quot; “); 声明一个数组，添加元素 这种方式的效率要远远高于jsonstr += 这种直接拼接的方式</description>
    </item>
    
    <item>
      <title>Access那点事儿</title>
      <link>https://brucedone.com/archives/308/</link>
      <pubDate>Sun, 30 Dec 2012 12:49:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/308/</guid>
      <description>1.建表的默认值 日期类型:Now() 或 Date() 字符串类型:&amp;quot;&amp;quot; 2.增删查改为了保证保证数据的有效性，请将字段包含在[]中 如:[type] 3.分页没有row_number()函数 可以采用top方式分页: SELECT TOP pagenum * FROM [t_product] WHERE [pid]&amp;lt;=(SELECT MIN([pid]) FROM (SELECT TOP pagenum*(pageindex-1)+1 [pid] FROM [t_product] ORDER BY [pid] DESC) AS Temp) ORDER BY [pid] DESC) 4.如果出现不</description>
    </item>
    
    <item>
      <title>老题新理解-在话winform之间的窗体传值</title>
      <link>https://brucedone.com/archives/310/</link>
      <pubDate>Sun, 30 Dec 2012 12:36:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/310/</guid>
      <description>也许当你看到标题的时候，你会想，这窗体间传值方法就这么多，无非就是那几种： 1.静态变量(这个最简单) 非时性的传递： 1.窗体的属性 2.构造函数 时时性的传递： 1.委托 2.静态变量(这个最简单) 几乎很多人都可以很根据简单方便的原则选用静态变量的方式。如果少量的数据传送，完全没有问题，但</description>
    </item>
    
    <item>
      <title>程序员，不要说你这些快捷键你都知道.</title>
      <link>https://brucedone.com/archives/313/</link>
      <pubDate>Thu, 27 Dec 2012 16:33:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/313/</guid>
      <description>假如你没有了鼠标，你还可以进行那些常用的操作吗？这个问题对于离不开鼠标我的来说，简直难以想象，使用专业快捷键可以大幅度的提高效率 下面就让我来为各位一一道来在不来的环境下我我们所使用的快捷键吧~ SQL环境： 一，文本选中 1.shift+home 当前光标向左 使用环境:当你写完一行sql语句的时候，需要执行效</description>
    </item>
    
    <item>
      <title>那些你不知道的Chrome(1)</title>
      <link>https://brucedone.com/archives/315/</link>
      <pubDate>Wed, 26 Dec 2012 17:33:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/315/</guid>
      <description>-做web的，左手火狐，右手chrome,中间还有一个IEtest- 可以说，chrome不仅仅是web开发人员的最爱，一般的人使用chrome都觉得很清爽，舒适，扩展功能强，打开速度快，兼容性好等优点都比某打着“安全浏览器”的x60好的多。 chrome的F12功能，有非常的多的用</description>
    </item>
    
    <item>
      <title>砖头书《C#高级编程之旅》-2(泛型)</title>
      <link>https://brucedone.com/archives/323/</link>
      <pubDate>Mon, 17 Dec 2012 14:16:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/323/</guid>
      <description>泛型不仅是C#编程语言的一部分，而合且是与程序集中的IL代码紧密地集成。有了泛型，可以创建独立于被包含类型的类和方法。 1.性能 个人理解，在使用泛型的时候，你在规定了数据的类型，那相当在执行方法时，没有去使用装箱与拆箱的动作，这样对于程序的性能有很大的提高 2.命名的约定 泛型的名称用</description>
    </item>
    
    <item>
      <title>砖头书《C#高级编程之旅》-1</title>
      <link>https://brucedone.com/archives/324/</link>
      <pubDate>Wed, 12 Dec 2012 15:14:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/324/</guid>
      <description>.Net的体系结构 1.CLR CLS CTS CLR:Common Language Runtime 公共语言运行库 CLS:Common Language Specifiation 公共语言规范 CTS:Common Type System 能通用语言类型系统 贴有国家3c认证 2.应用程序域 以前：很多实例(程序)运行在一个进程中，当一个实例崩溃了，其它的程序也会受到影响 现在:一个新实例，一个进程，一个应用程序哉，在物理上(每一个应用程序域在32位的系统</description>
    </item>
    
    <item>
      <title>Linq的学习之路-1</title>
      <link>https://brucedone.com/archives/325/</link>
      <pubDate>Tue, 11 Dec 2012 15:31:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/325/</guid>
      <description>语法 查询表达 式必须是from 子句的开头，以select 或 group子句结束。在这两个字句之间，可以where,orderby,join,let和其它from子句 其它 AsParallel 并行查询 Stopwatch sw = new Stopwatch(); Stopwatch sw2 = new Stopwatch(); var list = new List&amp;lt;Person&amp;gt;(); for (int i = 0; i &amp;lt; 2000000; i++) { list.Add(new Person(i.ToString() + &amp;#34;名&amp;#34;, &amp;#34;中国&amp;#34;,</description>
    </item>
    
    <item>
      <title>【转】译- 26 个 jQuery使用技巧</title>
      <link>https://brucedone.com/archives/326/</link>
      <pubDate>Tue, 20 Nov 2012 01:28:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/326/</guid>
      <description>禁用右键点击（Disable right-click） $(document).bind(&amp;quot;contextmenu&amp;quot;,function(e){ return false; }); });``` 2. 禁用搜索文本框 ```$(document).ready(function() { $(&amp;quot;input.text1&amp;quot;).val(&amp;quot;Enter your search text here&amp;quot;); textFill($(&#39;input.text1&#39;)); }); function textFill(input){ //input focus text function var originalvalue = input.val(); input.focus( function(){ if( $.trim(input.val()) == originalvalue ){ input.val(&#39;&#39;); } }); input.blur( function(){ if( $.trim(input.val()) == &#39;&#39; ){ input.val(originalvalue); } }); }``` 3. 新窗口打开链接 ```$(document).ready(function() { //Example 1: Every link will open in a new window $(&#39;a[href^=&amp;quot;http://&amp;quot;]&#39;).attr(&amp;quot;target&amp;quot;, &amp;quot;_blank&amp;quot;); //Example 2: Links with the rel=&amp;quot;external&amp;quot; attribute will only open in a new window $(&#39;a[@rel$=&#39;external&#39;]&#39;).click(function(){ this.target = &amp;quot;_blank&amp;quot;; }); }); // how to use [open link](http://www.opensourcehunter.com) 检测浏览器 // Target Firefox 2 and above if ($.browser.mozilla</description>
    </item>
    
    <item>
      <title>[转载]JavaScript世界的一等公民 - 函数</title>
      <link>https://brucedone.com/archives/328/</link>
      <pubDate>Sun, 18 Nov 2012 07:14:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/328/</guid>
      <description>在很多传统语言（C/C++/Java/C#等）中，函数都是作为一个二等公民存在，你只能用语言的关键字声明一个函数然后调用它，如果需要把函数作为参数传给另一个函数，或是赋值给一个本地变量，又或是作为返回值，就需要通过函数指针(function pointer)、代理(delegate</description>
    </item>
    
    <item>
      <title>(2)个人使用小爬虫---------关于一次被论坛封号而搜索的思考</title>
      <link>https://brucedone.com/archives/329/</link>
      <pubDate>Sat, 17 Nov 2012 10:48:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/329/</guid>
      <description>回顾 上次说到关于已经成功得到数据了。 请看第一期链接：个人使用小爬虫-关于一次被论坛封号而搜索的思考 分析 那现在就是如何利用正则表达到获取相应的标签部分了，请看标签的格式 [双十精选11.17] 这是神马电影？你们是不是过分低估了观众的智商啊？[20P]以开始，结束 那简单的正则表达就应该</description>
    </item>
    
    <item>
      <title>(1)个人使用小爬虫---------关于一次被论坛封号而搜索的思考</title>
      <link>https://brucedone.com/archives/332/</link>
      <pubDate>Fri, 16 Nov 2012 23:59:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/332/</guid>
      <description>前段时间上了某论坛的技术讨论区，习惯性的打开搜索看有没有我需要的内容，一登陆账号，发现自己被禁言了，连基本的搜索功能也被限制了。无奈只能手动的一个一个会找帖子。我去，竟然有200多页，每页有40第数据，这样纯手工的方式实在是太蛋疼了。 前段时间自己不是写了一个小爬虫吗？于是我的个人</description>
    </item>
    
    <item>
      <title>JavaScript触发asp.net服务器端控件事件</title>
      <link>https://brucedone.com/archives/339/</link>
      <pubDate>Sun, 11 Nov 2012 08:15:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/339/</guid>
      <description>当一个服务器控件要同时下列两种事时： 1.服务器端的点击事件 2.客户端的点击时执行ajax请求 需要的效果： 先执行ajax请求，然后根据ajax的结果，决定是否执行服务器的响应事件 当一个服务器控件同时执行这两种操作时，由于网速，响应速度，网络环境等多方面的因素，要么是后者的结果将前者</description>
    </item>
    
    <item>
      <title>JavaScript基础知识-类型、值，变量(1)</title>
      <link>https://brucedone.com/archives/340/</link>
      <pubDate>Mon, 05 Nov 2012 07:40:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/340/</guid>
      <description>1.JavaScript的数据类型分为两类：原始类型(primitive type)和对象类型(object type)。 2.JavaScript的原始类型包括数字、字符串和布尔值。 3.JavaScript除了数字，字符串，布尔值，null和undefined之外就是对象了。 4.字符</description>
    </item>
    
    <item>
      <title>JavaScript基础知识-词法结构</title>
      <link>https://brucedone.com/archives/341/</link>
      <pubDate>Mon, 05 Nov 2012 07:25:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/341/</guid>
      <description>2.1字符集 JavaScript程序是Unicode字符集编写的. 2.1.1大小写 JavaScript是区分大小写的语言，那就是说，关键字，变量，函数名和所有的标识符都必须采取一致的大小写形式。 2.1.2空格，换行符和格式控制符 回车符(\u000D)加换行符(\u000A)在一起</description>
    </item>
    
    <item>
      <title>C#基础知识回顾一多态下的接口与抽象类</title>
      <link>https://brucedone.com/archives/343/</link>
      <pubDate>Thu, 01 Nov 2012 06:52:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/343/</guid>
      <description>面试的时候，抽象类和接口的比较提的比较多，所以专门拿出来复习一下 一，抽象类 1.抽象类不能被实例化.抽象类中可以有普通成员 2.抽象类存在的意义: 1)抽象类不能被实例化，只能被其他类继续(长的太抽象，所以没对象囧) 2)继承类的子类必须把抽象类中的所有成员都重写(实现)(除非子类也是抽</description>
    </item>
    
    <item>
      <title>JavaScript的闭包</title>
      <link>https://brucedone.com/archives/344/</link>
      <pubDate>Thu, 01 Nov 2012 06:30:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/344/</guid>
      <description>和其它的大多数现代编程语言一样，JavaScript也采用词法作用域,也就是说，函数的执行依赖于变量作用域，这个作用域在函数定义时就决定的，而不是函数调用时决定的(很简单这样理解，只要有Function()，就会有闭包),为了实现这种词法作用域，JavaScript函数对象的内部</description>
    </item>
    
    <item>
      <title>C#基础知识回顾一ref 和 out</title>
      <link>https://brucedone.com/archives/347/</link>
      <pubDate>Tue, 30 Oct 2012 09:34:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/347/</guid>
      <description>今天重新看 &amp;laquo;C#图解教程&amp;raquo;发现了里面的一段话 5.7值参数 有几种参数，它们使用稍微不同的方法从方法传入或传出数据。你到现在一直看到的这种类型是默认的类型，称为值参数 使用值参数，数据通过复制实参到形参的方式传递到方法。方法调用时，系统做如下的操作：[]在栈中为</description>
    </item>
    
    <item>
      <title>WinForm窗体间传值大全</title>
      <link>https://brucedone.com/archives/349/</link>
      <pubDate>Sat, 14 Jul 2012 21:42:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/349/</guid>
      <description>第一种方法： 创建一个类，里面声明用于存储接收的字段。传的时候存储于字段中，要用的时候，直接类名.字段名 进行调用。（这种方法传递是双向的） 第二种方法： 1.在Form1里定义 public string Name = “*****&amp;quot; 在Form2里创建Form1对象， Form1 f = new Form1(); 然后就可以通过f.Name取值了 第</description>
    </item>
    
    <item>
      <title>JavaScript实现省市级联</title>
      <link>https://brucedone.com/archives/350/</link>
      <pubDate>Sun, 17 Jun 2012 23:07:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/350/</guid>
      <description>&amp;lt;select id=&amp;#34;province&amp;#34; onchange=&amp;#34;loadcity()&amp;#34;&amp;gt; &amp;lt;/select&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;select id=&amp;#34;city&amp;#34;&amp;gt; &amp;lt;/select&amp;gt;</description>
    </item>
    
    <item>
      <title>RemoteHelper V1.0 (远程关机助手)-----源代码放出</title>
      <link>https://brucedone.com/archives/352/</link>
      <pubDate>Mon, 21 May 2012 05:19:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/352/</guid>
      <description>某天上课的时候，老湿说了下利用微薄关电脑的功能，自己从实用性，原理性，实现性，待加强四个方面进行了对比 实用性 1.使用场景：一般情况下，好像使用软件都是在下载未完成的情况下使用的，其实有下载并关机的功能的软件，有太多了，比如，讯雷的 又比如115网盘的下载关机功能 原理性 实现性 using System; using System.Collections.Generic;</description>
    </item>
    
    <item>
      <title>用思维导图的眼光看.Net基础部分[面向对象部分]</title>
      <link>https://brucedone.com/archives/355/</link>
      <pubDate>Tue, 08 May 2012 08:13:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/355/</guid>
      <description></description>
    </item>
    
    <item>
      <title>程序员，请尊重自己的身体！</title>
      <link>https://brucedone.com/archives/357/</link>
      <pubDate>Mon, 16 Apr 2012 03:18:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/357/</guid>
      <description>普通人眼中： 程序员=高收入+高智商+工作轻松 程序员自己眼中： 程序员=熬夜导致的各种精神焦虑+长久坐立室内导致的各种腰椎问题+很少与他人交集的孤立感 每一个程序员都会或多或少的有这种或者那种病，反而健康的身体的在我们这种群体中少之又少，长期熬夜，各种返工，各种不良习惯，导致我们的身体</description>
    </item>
    
    <item>
      <title>网盘搜索器 v1.0</title>
      <link>https://brucedone.com/archives/361/</link>
      <pubDate>Fri, 13 Apr 2012 04:27:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/361/</guid>
      <description>网盘已经成为了一个比较流行的资源集散地之一，针对网盘的搜索器都比较少，所以自己根据一些搜索小技巧写了一个小软件。目前只是在测试阶段，还有一些bug还没有解决。 115网盘为例子 2.增加电影搜索功能，正在追加种子搜索功能 &amp;ndash;</description>
    </item>
    
    <item>
      <title>关于</title>
      <link>https://brucedone.com/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://brucedone.com/about/</guid>
      <description>个人简介 coder,努力学习数据方面,scrapyd,portia 的贡献者 Github: BruceDone的GitHub cnblogs: 博客园地址 技术支持请联系邮件nicefish66@gmail.com QQ群交流: 330672178 个人公众号 博客版本 2016-02-23 正式开启博客和独立域名 2017-02-23 将博客迁移至香港节点 2018-09-27 成功将用静态资源转移到</description>
    </item>
    
    <item>
      <title>归档</title>
      <link>https://brucedone.com/archives/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://brucedone.com/archives/</guid>
      <description>大鱼的鱼塘, welcome</description>
    </item>
    
    <item>
      <title>搜索</title>
      <link>https://brucedone.com/search/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://brucedone.com/search/</guid>
      <description></description>
    </item>
    
  </channel>
</rss>
