12 唐大麦

尚未进行身份认证

我要认证

只要往前走,就不会迟。精疲力尽的时侯应该选择休息,切不可放弃。

等级
TA的排名 4k+

在Scrapy中启动shell来调试

在Scrapy中写爬虫时,有时想在spider运行到某个位置时暂停,查看被处理的response, 以确认response是否是期望的。这可以通过 scrapy.shell.inspect_response 函数来实现。以下是如何在spider中调用该函数的例子:import scrapyclass MySpider(scrapy.Spider): name = "myspider"

2017-11-23 16:44:56

常见的Python 2 和 3 差别

Python2.7print "hello"helloPython3.0print "hello" File "tmp.py", line 1 print "hello" ^SyntaxError: invalid syntax正确应为: Python3.0print("hello")helloPython2.7print {}.keys()[]Pyth

2017-10-30 11:20:30

理解Python协程:从yield/send到yield from再到async/await

Python中的协程大概经历了如下三个阶段: 1. 最初的生成器变形yield/send 2. 引入@asyncio.coroutine和yield from 3. 在最近的Python3.5版本中引入async/await关键字一、生

2017-10-27 10:16:20

maven项目test报错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin

今天导入一个原来的maven项目,项目上右键运行JUnit Test,可以通过测试,但是运行mvn test时,报错: Results :Failed tests: twm.camera.core.OutPutStringTest.testPrint(): org/junit/AssertTests run: 2, Failures: 1, Errors: 0, Skipped: 0[INFO

2017-09-17 10:13:15

热门移动端H5开源前端开发框架搜集整理

ant design官方网站:ant.design 介绍:这里蚂蚁金服出的一款框架,提供了桌面版和移动版两大块。移动版的首页是:https://mobile.ant.design/index-cn。 应用者:蚂蚁金服、阿里巴巴、口碑、滴滴 Framework7官网:framework7.taobao.org 介绍:出处看官网域名便知。Framework7 是一个开源免费的框架可以用来开发混合

2017-09-12 16:39:51

配置Android Studio的缓存文件路径(释放你的C盘)

Android Studio默认安装完后会在C:\Users\YourName.xxx 缓存一些数据,有限的C盘很容易爆增。 如果你的C盘也像我这样捉襟见肘,或者你是处女座的,那么请看完本文,结果会让你超爽。 土豪请绕道。。。Android Studio默认的缓存目录,主要有三个占空间的文件夹,分别是.android 这个文件夹是Android SDK生成的AVD(Android Virtua

2017-09-11 15:35:49

Android native和h5混合开发几种常见的hybrid通信方式

传统的JSInterface首先先介绍一下最普通的一种通信方式,就是使用Android原生的JavascriptInterface来进行js和Java的通信。具体方式如下: 首先先看一段html代码<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" dir="ltr"><head> <meta http-equiv="C

2017-08-28 20:43:01

微服务架构框架选择:Spring Cloud 和 Dubbo对比

知乎转载楼层1: 从项目的背景来看,Dubbo 国内用的公司挺多,国内影响力大,Spring Cloud 自然在国外影响力较大,所以这个来看不分伯仲了,毕竟都有大公司在使用。 从社区的活跃度来看,可以看下各自的Github托管项目来区分。Dubbo · GitHub 与 Spring Cloud · GitHub ,从更新频率与更新时间来看 Spring Cloud 优于Dubbo,Dubbo基

2017-08-21 16:44:19

hessian简单示例

创建一个对外接口public interface Basic { String hello(String name); String say(String msg); int sum(int a,int b);}实现该接口并继承HessianServletpublic class BasicService extends HessianServlet implements Ba

2017-07-26 09:03:41

wkhtmltopdf:html转pdf、html转image以及cannot connect to X server问题解决

最近优化WMS系统的供应商协同平台,一切很顺利。就在该里程碑快结束时,有了新的需求。 由于月对帐单是通过HTML表格形式展示给供应商看的,供应商纷纷表示这样非常不错,沟通及交互非常高效, 但是。。。。 但是。。。。 在打印时,格式很难调整,能不能转换成WORD或PDF文档的形式打印呢? 得寸进尺啊。。。。。。 于是搜索了一下网上的解决方案,找到了强大的wkhtmltopdf。 以下记录

2017-07-09 17:32:34

mysql slave创建:mysqldump参数--master-data

在恢复mysql从库时,通常我们把mysql从库利用从主库dump下来的文件恢复完成后,就需要确定binlog文件和position位置,调用change master to开启从库。 那么如何确定position位置呢? 网上很多告诉你先到master库show master status查看postion。可是当你利用mysqldump导出主库,到用show master status查看p

2017-06-15 22:05:10

Linux启动顺序、运行级别及开机启动

一、启动顺序当我们经过BIOS引导,并选择了Linux作为准备引导的操作系统后,接下来的执行顺序如下:1、加载并执行内核第一个被加载的东西就是内核。然后把内核在内存中解压缩,就可以开始运行了。2、/sbin/init进程init进程是接下来第一个被启动运行的(非内核进程),因此它的进程编号PID的值总是1。 2.1 首先,init进程读取配置文件/etc/inittab,决定需要启动的运行级别(R

2017-06-06 10:59:53

开源SDK实现Android视频直播

最近一段时间,视频直播可谓大火。在视频直播领域,有不同的商家提供各种的商业解决方案,包括软硬件设备,摄像机,编码器,流媒体服务器等。本文要讲解的是如何使用一系列免费工具,打造一套视频直播方案。视频直播流程视频直播的流程可以分为如下几步: 采集 —>处理—>编码和封装—>推流到服务器—>服务器流分发—>播放器流播放 1.采集采集是整个视频推流过程中的第一个环节,它从系统的采集设备中获取原始视频数据

2017-06-02 12:03:52

从零开始实现Java多线程数据库连接池(附一个神秘的问题)

本例采用mysql数据库,因此请先下载mysql-connection.jar众所周知,创建数据库连接需要消耗较多的资源,且创建时间也较长。如果网站一天100万PV(假设每个页面都有DB读取或修改操作),程序就需要创建100万次连接,极大的浪费资源。 事实上,同一时间需要创建数据库连接的请求数量并不多,一般几百个足够了。那么我们可以根据需要创建一个连接池,它负责分配、管理和释放数据库连接,它允许

2017-05-25 16:54:17

Java多线程/并发26、阻塞队列BlockingQueue

BlockingQueue接口定义了一种队列,这种队列通常容量是提前固定(确定了容量大小)的。容量满时往BlockingQueue中添加数据时会造成阻塞,容量为空时取元素操作会阻塞。我们可以认为BlockingQueue队列是一个水库。水库满了的时侯,上游的水就要被拦住,不能再往水库里灌了。平时农庄浇灌,生活饮用都用这里面的水。如果水库干了,那么要灌溉的工人只能等着上游放水后,才能继续工作。 实际

2017-05-07 15:25:58

Java多线程/并发25、Exchanger线程数据交换

Exchanger用于线程间的数据交换。它提供一个同步点,在这个同步点两个线程可以交换彼此的数据。 这句话说到两个关键点:Exchanger只能用于两个线程互相交换数据。如果有三个线程呢?对不起,臣妾做不到……Exchanger会产生一个同步点。一个线程先执行到达同步点,就会阻塞,等到另一个线程。两个都到达同步点后,开始交换数据。线程方法中调用exchanger.exchange()的地方就是

2017-05-07 15:19:49

Java多线程/并发24、Countdownlatch应用以及与CyclicBarrier的区别

有时候会有这样的需求:多个线程同时工作,其中几个可以随意的并发执行,但有一个线程需要等其他线程工作结束后,才能运行。举个例子,我们知道的迅雷下载,会同时开启多个线程分块下载一个大文件,每个线程下载固定的一段,最后由另外一个线程校验并拼接这些分段。这种场景可使用CountDownLatch来控制并发的执行顺序。Countdownlatch 是一个倒计数器锁。调用CountDownLatch对象的awa

2017-05-07 15:17:15

Java多线程/并发23、循环屏障CyclicBarrier

CyclicBarrier 直译叫循环屏障或循环分界点。让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续工作。打个比方,F1大奖赛共5支车队参赛。第一站:上海站。比赛马上要开始了,各个车队都在准备,但是先到达起跑线准备就绪的车队没法开始比赛,必须等待。只有当5支车队都到达起跑线准备就绪后,裁判才可以发起比赛。这5个车队到达起跑线

2017-05-04 21:03:28

Java多线程/并发22、信号量Semaphore

Semaphore通常用于设置一些资源(如数据库连接池,程序某个变量)可供线程使用的数量,它有两个很常用的方法是acquire()和release()。打个通俗的比方:一个饭店有10间包房,客人消费前先到前台领一张包房券(调用一次acquire 包房券-1),进入包房用餐直到酒足饭饱后,再到前台退回包房券(包房券+1)并结帐(调用一次release())。而前台工作人员呢,手上一共10张包房券(对应

2017-05-04 21:00:14

Java多线程/并发21、利用Condition来实现阻塞队列

Java文档上的例子,利用Condition来实现阻塞队列。 假设有一个固定大小的缓冲区(缓冲区是队列,遵守FIFO),支持存和取方法。如果缓冲区为空时尝试取数据,那么线程将阻塞,直到缓冲区有一个可用的数据;如果缓冲区满了,这时尝试写数据,那么线程将被阻塞直到有可用空间。我们希望有两个独立的等待集(Condition阻塞队列),一个放置存数据的等待线程,一个放置取数据的等待线程,这样,当缓冲区有空

2017-05-04 20:56:33

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!