自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

^-^

^-^

  • 博客(147)
  • 资源 (30)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android NestedScrolling解决滑动冲突问题(3) - 项目实战

实际需求在前面的两片文章中我们了解了 NestedScroll 的相关接口及一般处理逻辑。在本篇文章中就实现一个具体的联合滑动需求。Android中经常在布局中嵌入 WebView 来展示网页内容,而且WebView内部还有交互逻辑(滚动之类的),如果外部布局也要处理滚动逻辑,就会有滑动冲突,这种场景在实际项目开发中很常见,例如在含有 AppBarLayout 的 CoordinatorLay...

2018-12-01 16:57:01 592

原创 Android NestedScrolling解决滑动冲突问题(2) - fling问题与NestedScroll++

滑动的处理在前一篇文章 Android NestedScrolling解决滑动冲突问题(1) - 相关接口 中,我们分析了解决滑动冲突问题的 NestedScroll 接口,也给出了解决此类问题的一般性方案:NestedScrollingChild侧NestedScrollingChild(后面简称NC)处理MotionEvent(一般在onTouchEvent中,如果是ViewGroup还...

2018-12-01 13:29:34 1498

原创 Android NestedScrolling解决滑动冲突问题(1) - 相关接口

Android NestedScrolling解决滑动冲突问题当父View及子View都可以滑动,并且滑动方向一致时(例如CoordinatorLayout内嵌RecyclerView或者Webview),滑动冲突的解决就需要依赖于Android为我们提供的NestedScrolling接口。NestedScrolling 接口分为两个部分:NestedScrollingParent 及 Ne...

2018-11-30 19:45:13 1143

原创 Android获取外置SD卡读写路径

1. 外置SD卡的一些问题1.1 关于外置SD卡上的读写路径Android 4.4及以上版本,应用的外置SD卡读写路径被限定在固定路径上(外置SD卡根路径/Android/data/包名/files)。Android4.4以下版本,申请了外置SD卡读写权限的应用在整个外置SD卡上都有读写权限。1.2 关于外置SD卡路径另外Android没有提供获取外置SD卡路径的API(getExternalSto

2017-04-21 14:38:15 8107 1

原创 Android防止Service被杀死

1. Service被杀死的两种场景1.2 系统回收在系统内存空间不足时可能会被系统杀死以回收内存,内存不足时Android会依据Service的优先级来清除Service。1.2 用户清除用户可以在”最近打开”(多任务窗口、任务管理窗口)中清除最近打开的任务,当用户清除了Service所在的任务时,Service可能被杀死(不同ROM有不同表现,在小米、魅族等第三方产商定制ROM上一般会被立即杀死

2017-04-19 23:10:55 8134 2

原创 Java下合并多个文件

Java 中如何高效合并文件

2016-10-28 17:13:02 14739 1

原创 Android开发中的各种尺度单位

px像素(pixel),表示屏幕上一个物理像素点 不建议直接使用 px 绘制UI,因为受像素密度的影响,以 px 为单位绘制的UI在不同手机上显示的实际大小会不同。dp密度无关像素。Android 建议使用的一种虚拟像素单位,可以使定义的UI布局在不同像素密度的设备上具有相同的效果。像素密度dpi = 每英寸长度含有的像素点数量 = 屏幕纵向(横向)长度 / 屏幕纵向(横向)像素数目。这种密度无关

2016-08-20 11:28:58 3103 1

原创 Android Studio快捷键

快捷键 功能 快捷键(Mac OSX) 快捷键(Windows/Linux) 显示最近编辑的文件列表 Command + E Ctrl + E 关闭文件 Shift + Click Shift + Click 快速查找、打开文件 Shift + Shift Shift + Shift 注释代码(//) Command + / Ctrl + /

2016-08-04 19:12:59 1185

原创 在Android Studio中进行NDK开发的一般流程

1 在类中声明native方法2 在 app/src/main 下创建 jni 目录3 在 app/src/main/java 下运行命令 javah -jni -d ../jni com.path2class.ClassName4 在 app/src/main/jni 下生成了对应的头文件,创建cpp源文件,利用此头文件实现对应的native方法5 在 app 下的 build.gradle 文件

2016-06-12 00:29:01 3285

原创 使用OpenCV Android SDK从摄像头帧实时检测人脸

在配置好 OpenCV Android SDK 之后(具体见前一篇文章Android Studio中使用OpenCV Android SDK ),可以使用 OpenCV 封装的接口很方便地进行各种图像处理操作。这里简单介绍如何直接使用 OpenCV 训练的人脸模型直接从摄像头帧检测人脸。1. 新建Android Project这里可以直接使用默认的 Android Studio 项目模板, Act

2016-06-08 22:12:00 19826 11

原创 Android Studio中使用OpenCV Android SDK

OpenCV是著名的跨平台计算机视觉开源库,广泛应用于计算机视觉相关领域。OpenCV 已经发布 Android 平台下的 SDK,可以直接导入 Android Studio。OpenCV Android SDK 下载地址: Download OpenCV Android SDK 。Android Studio项目中配置使用OpenCV Android SDK在项目根目录下创建 libraries

2016-06-08 21:21:56 11083 4

原创 iptables导致nginx反向代理不可用的解决方案

在nginx反向代理、web服务器所在的同一系统上配置iptables进行访问限制时,可能会导致nginx反向代理不能正常工作。一种常见原因是iptables没有配置来自本机ip的连接权限而且默认是DROP策略。解决方法也很简单,添加本机ip的连接权限,例如:sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INP

2016-05-26 15:50:16 11114

原创 Linux下使用iptables禁止指定IP地址的网络连接

wsliu@qcloud:~$ sudo iptables -L[sudo] password for wsliu: Chain INPUT (policy ACCEPT)target prot opt source destination DROP all -- 120.203.229.36 anywhere

2016-05-26 13:26:01 43877

原创 常用搜索引擎使用技巧

指定站内搜索使用site指定在某网站内搜索如只在知乎中搜索 liuwons : liuwons site:zhihu.com精确匹配使用双引号来指定精确匹配单词或短语如精确搜索 liuwons : "liuwons"模糊搜索使用星号(*)代替一个单词进行模糊搜索例如"a * saved is a * earned"会搜到如下结果:A penny saved is a penny earned指定索搜

2016-05-19 13:56:59 12614

原创 Ubuntu下Chrome造成系统假死的解决方法

在64 bit Mint Linux下使用Chrome时,经常导致整个系统进行假死状态,图形界面下除了鼠标能动,什么也干不了,不过能够Ctrl + F1进行终端环境。在网上查了很久,有几种情况可能导致这种状况:Chrome中的某些插件Chrome的硬件加速显卡驱动逐一排查后找到我这的原因是Chrome的硬件加速。关掉硬件加速(hardware acceleration)后不再假死。参考链接:

2016-05-17 19:54:45 14089

原创 Python快速搭建自动回复微信公众号

Python快速搭建自动回复微信公众号在之前的一篇文章 Python利用 AIML 和 Tornado 搭建聊天机器人微信订阅号 中用 aiml 实现了一个简单的英文聊天机器人订阅号。但是只能处理英文消息,现在用 图灵机器人 来实现一个中文的聊天机器人订阅号。这里主要介绍如何利用 Python 的 Tornado Web框架以及wechat-python-sdk 微信公众平台 Python 开发包来

2016-04-19 14:07:41 21138 2

原创 字符编码简介

1. ASCII码ASCII (American Standard Code for Information Interchange, 美国标准信息交换代码),是基于拉丁字母的一套编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统。 单个字节可以表示256个不同的字符,不过 ASCII 只使用了其中低于\x80(即最高位字节为0)的一半来表示所有的英文字符以及一些控制字符

2016-04-11 22:17:55 4227

原创 nginx实现请求转发

反向代理适用于很多场合,负载均衡是最普遍的用法。nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理。nginx 反向代理官方文档: NGINX REVERSE PROXY当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能: 用 nginx 在80端口监听所有请求,并依据转发规则(比较常见的是以 URI

2016-04-08 20:35:03 167891 11

原创 Python写的实时地球图片下载工具

Himawari8 Image Downloaderhimawari8downloader 是下载卫星 Himawari8 拍摄到的地球近实时照片的 Python 脚本。GitHub 地址: himawari8downloader 。依赖himawari8downloader 依赖 PIL 和 Requests:pip install Pillowpip install requests使用直接运

2016-04-03 17:57:15 4192 3

原创 浅析 C++ 调用 Python 模块

浅析 C++ 调用 Python 模块作为一种胶水语言,Python 能够很容易地调用 C 、 C++ 等语言,也能够通过其他语言调用 Python 的模块。Python 提供了 C++ 库,使得开发者能很方便地从 C++ 程序中调用 Python 模块。具体的文档参考官方指南: Embedding Python in Another Application调用方法1 链接到 Python 调用库

2016-03-14 21:34:55 35519 7

原创 Python写的一款印象笔记MarkDown同步工具

神器 印象笔记 与 Markdown很久之前就开始记笔记了,印象笔记 的笔记同步以及笔记管理一直很赞,所以一直在使用。最开始的时候是直接用纯文本写笔记。然后开始使用 印象笔记 自己的编辑器来添加标题、加粗文本之类的,不得不说这样做很乏味。后来接触到了神器 MarkDown ,深深了喜欢上了这种简洁优美的标记语言,所有的笔记几乎都是用 MarkDown 来写的。但是 印象笔记 的编辑器并不支持 Mar

2016-03-12 17:30:44 9248 3

原创 git常用操作

Git 常用操作1 概念 概念 意义 HEAD 当前版本 HEAD^ 上一个版本 HEAD~N 往上第 N 个版本 origin 远程仓库的默认名称 master 默认主干分支名2 指令 指令 意义 git init 创建仓库 git clone 克隆远程仓库 git status 当前状态 git diff 查看

2016-03-10 12:43:11 1832 1

原创 用wxBot和图灵机器人API实现微信群聊机器人

1 实现方案用 wxBot登录微信,接收、发送微信消息。用 图灵机器人 API对消息作回复。2 实现效果机器人会回复来自联系人的消息,以及群里@此账号的消息。注意要将对应的群保存到联系人。3 运行方法下载wxBot, 安装python的依赖包。在图灵机器人官网注册账号,申请图灵key: 图灵key申请地址在bot.py文件所在目录下新建conf.ini文件,内容为(key字段内容为申请到的图灵

2016-03-04 15:15:06 43808 6

原创 Java https服务器证书认证问题解决方案

Java https连接的”unable to find valid certification path to requested target”,”PKIX path building failed”错误原因这个问题的是由于Java自带的根证书库中不包含HTTPS服务器上的根证书,因此无法得到认证。解决方案比较容易实现的方案有两种:导入服务器证书到本地Java环境代码中忽略证书信任问题由于

2016-03-02 16:43:45 12004 2

原创 wxBot微信机器人框架

是Python包装Web微信实现的微信机器人框架。可以很容易地实现微信机器人。 github地址: 环境与依赖目前只能运行于Python 2环境 。 wxBot 用到了Python requests 和 pyqrcode 库,使用之前需要安装这两个库:pip install requestspip install pyqrcode快速开发代码利用 wxBot 最简单的方法就是继承WXBot类并

2016-02-23 13:06:18 61519 9

原创 Python包装网页微信API并实现简单自动回复

wxBotwxBot 为Python包装的网页微信API。可以很容易地实现微信机器人。github地址: wxBot Dependencies程序用到了Python requests 和 pyqrcode库,使用之前需要安装这两个库:pip install requestspip install pyqrcodeDemo配置了 图灵机器人 之后,通过测试账号发送各种消息的效果:Run运行程序pyt

2016-02-12 20:42:09 14446 1

原创 Python爬虫之自动登录与验证码识别

Python爬虫之自动登录与验证码识别在用爬虫爬取网站数据时,有些站点的一些关键数据的获取需要使用账号登录,这里可以使用requests发送登录请求,并用Session对象来自动处理相关Cookie。另外在登录时,有些网站有时会要求输入验证码,比较简单的验证码可以直接用pytesser来识别,复杂的验证码可以依据相应的特征自己采集数据训练分类器。以CSDN网站的登录为例,这里用Python的requ

2016-02-06 19:19:21 55839 2

原创 Python获取免费的可用代理

Python获取免费的可用代理在使用爬虫多次爬取同一网站时,经常会被网站的ip反爬虫机制给禁掉,这时就可以通过使用代理来解决。目前网上有很多提供最新免费代理列表的网站,这些列表里很多的代理主机是可用的,但是也有一些是不可用的,因此需要进一步筛选。利用Python可以很方便地筛选出可用的代理列表。以提供免费代理信息的网站IPCN 国家地区免费代理为例,这里给出一个爬取此网站上提供的代理信息并筛选可用代

2016-02-05 22:53:11 57444

原创 Python 利用PIL将图片转为字符

Python 利用PIL将图片转为字符PIL(Python Imaging Library)是Python语言的一个图像处理库,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,而且API非常简单易用,可以用它实现很多图像处理功能。这里介绍一种用PIL将图片转换为字符的方法。实现的效果为:原图像:转换后的字符:CCO$Q$C?COOO?COHNHMMMNM$$MN$C?O$?>77

2016-02-02 20:35:28 51704 2

原创 身份证号码编码方法及校验算法

身份证号码编码方法及校验算法1 身份证号码的字段构成:地址码身份证前六位,表示户口所在县(市、旗、区)的行政区划代码。生日码身份证第七至第十四位,表示出生的年、月、日。顺序码身份证十五到十七位,为同一地址码所标识的区域范围内,对同年、月、日出生的人员编订的顺序号。其中第十七位奇数分给男性,偶数分给女性。校验码身份证最后一位,根据前面十七位数字码,按照ISO7064:1983.MOD11-2计

2016-01-31 00:44:53 58106 1

原创 Python搭建聊天机器人微信订阅号

Python利用AIML和Tornado搭建聊天机器人微信订阅号AIML ,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由Richard Wallace和世界各地的自由软件社区在1995年至2002年发明的。它的雏形是一个名为”A.L.I.C.E.” (“Artificial Linguistic

2016-01-28 14:12:26 56250 4

原创 Python搭建聊天机器人

Python用AIML搭建聊天机器人AIML,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由Richard Wallace和世界各地的自由软件社区在1995年至2002年发明的。它的雏形是一个名为”A.L.I.C.E.” (“Artificial Linguistic Internet Compu

2016-01-27 16:50:59 52842 14

原创 用Wikidata做实体搜索的两种方案

用Wikidata做实体搜索的两种方案Wikidata 是一个可协同编辑的知识库,是继2006年的维基学院之后,第一个新的维基媒体基金会项目。这一项目与维基共享资源的工作方式类似,将为其他维基计划及各语种维基百科中的信息框、列表及跨语言链接等提供统一存放的数据,该项目在2012年10月30日投入使用。Wikidata 的所有数据都是对外公开的,官网对外提供了两类数据获取方式:在线API和数据库下载。

2016-01-18 16:29:28 31941 14

原创 开放知识库调研

开放知识库调研目前调研到可用的开放知识库包括:Knowledge Graph, Freebase, Wikidata。下文描述能够获取的数据以及对应最方便的接口方式。Knowledge Graph关键字搜索接口接口方式: HTTP GET数据格式: json数据内容: - mid: Freebase 实体id,能通过此id访问实体在 Freebase 中的信息。 - name: 实体名称。 -

2016-01-15 14:56:34 21026 1

原创 三种知识图谱

三种实体搜索工具Knowledge Graph , Freebase , Wikidata 是目前最常见的三种实体(entity)搜索工具。这里对其进行简单介绍并作一些对比。 Knowledge GraphKnowledge Graph 是Google的一个知识库,其使用语义检索从多种来源收集信息,以提高Google搜索的质量。Knowledge Graph 2012年加入Google搜索,20

2016-01-13 23:11:11 40964 1

原创 ubuntu下mysql服务器更改数据库文件路径

遇到需要更改mysql数据库文件路径的情况,查了很多资料试了很多次才成功,记下来先~1. 停止mysql服务sudo service mysql stop2.修改my.cnf文件,将datadir改为目标路径sudo vim /etc/mysql/my.cnf3.将原来的datadir路径下的所有文件拷贝到新的datadir下4.在文件 /etc/apparmo

2015-12-26 19:16:09 19646

原创 用WindowsAPI截屏并转换为RGB格式

在Windows下捕获屏幕图像可以有多重方法,比较简单可以调用第三方库,如Qt的屏幕截屏API就很容易调用。在这里介绍如何用Windows API实现截屏并转换成RGB格式存储。#include //最终f的内存布局为BGRA格式,需要保证buf长度足够(>w*h*4)void ScreenCap(void* buf, int* w, int* h){ HWND h

2015-05-13 09:06:43 23377

原创 hexo 解决代码块前后多余空行的问题

解决方案:github issue    通过修改hexo源码来解决:    文件:lib/util/highlight.js    将91行的:numbers += '' + (i + firstLine) + '';content += '' + item + '';    改为:numbers += '' + (i + firstLine) + '\n'

2015-01-10 17:56:52 22333 1

原创 YV12转opencv IplImage

void Yv12ToImg(uchar *pin, IplImage* img) { uchar y, cb, cr; int ySize = img->width * img->height; int uSize = ySize / 4; uchar *pY = pin; uchar *pU = pY

2015-01-08 16:45:17 20397

原创 ffmpeg解码内存缓冲区

只贴出部分代码,重在说明过程。与解码文件的大致过程类似,只不过自定义了AVFormatContextstruct IOData { char* data; size_t len; };int FrVideoAcqHT::io_get_data(void *opaque, uint8_t *buf, int buf_size){

2014-12-01 13:30:55 34850 5

《Python进阶》中文版

《Python进阶》中文版PDF电子书

2016-04-14

Python验证码识别库pytesser

Python验证码识别库pytesser下载

2016-02-05

微信聊天机器人订阅号源代码

用Python编写的微信聊天机器人订阅号源代码

2016-01-28

Python搭建的web接口聊天机器人

用Python搭建的聊天机器人,接口为web形式,运行后可以直接通过url与机器人聊天,url地址为http://localhost/aiml?req=hello(这里hello即为发送给机器人的信息)。用到了aiml开源库。

2016-01-25

Qt写的Windows下屏幕录制程序源码

Qt + ffmpeg写的Windows屏幕录制程序(包含源程序和编译好的可执行程序) 程序使用方法: ScreenCapture w h w和h分别表示希望录制的帧宽度和高度

2014-05-30

windows下MinGW可用的ffmpeg库

Windows下已编译好的ffmpeg库,包含头文件、lib文件以及dll文件,可用MinGW链接。

2014-05-29

Windows开机自启动工具

实现windows下特定程序的开机自启动

2014-05-23

Qt实现的Windows远程控制软件(服务器端+客户端)

用Qt实现的Windows平台远程控制软件,包含源代码和编译后可以运行的程序,服务器端(被控端)为进程形式,客户端(主控端)为图形界面程序。客户端在连接时要设置服务器端的ip地址以及要显示的长度和宽度(不能超过服务器端屏幕分辨率)。

2014-04-30

Linux内核API详解

Linux内核api详解 剖析Linux kernel api

2013-01-22

Advanced Bash Guide(Bash脚本编程)

Bash Shell编程入门 文档详细,语言通俗易懂。

2013-01-22

Linux Shell Scripting(linux shell编程)

Linux Shell编程入门 很详细地介绍Linux Shell编程技术

2013-01-22

Android实现远程控制PC(Android[客户端]+Qt[服务器端])

用Qt【服务器端】+Android【客户端】实现手机远程控制PC,内含服务器和客户端的所有代码。

2012-07-24

Android应用源代码

Android开发的应用案例的源代码,内含:计算器应用,浏览器应用,闹钟,日历,相机,音乐播放器等应用的源代码。

2012-05-15

java学习资源-经典java小程序代码合集

java学习资源,很全的java小程序源码集合:内含扫雷程序,五子棋程序,聊天程序,俄罗斯方块游戏等游戏源码,以及gui编程,io编程,socket编程,serverlet,sql,thread等的详细参考案例代码。

2012-05-15

HexDump源码

C编写的文件查看器源码,可以实现8,10,16进制输出,可以重定向到文件输出。学习C编程时可以作为参考。后期可以自行添加修改文件等功能,本程序代码易扩展功能。

2012-05-15

gdb用户手册(英文原版)

gdb调试器详细说明,英文原版。gdb相信大家都知道是什么的吧,很强大的调试器。

2012-05-04

Windows病毒分析

详细介绍Windows操作系统下的病毒的实现机制以及防范方法。

2012-04-04

C++ Windows程序设计入门

Windows程序设计入门教程,详细说明Windows的内部工作原理以及Windows程序设计的一半步骤以及注意事项,对Windows的消息机制以及Windows程序的编译过程的说明尤为详细,很不错的入门文档。

2012-04-04

C&C++Reference

C以及C++标准库函数,为chm结构文档,便于查阅,文档描述详细,适合新手的好工具。

2012-04-04

Java编写的MVC模式小系统

Java编写的MVC结构小系统,一个画圆的小程序,界面为一个Slider滑块,一个Canvas画布和几个编辑栏,实现改变一个模块的状态,其他模块随之改变。

2012-04-04

Java如何处理ICMP报文的收发

显示如何利用Java进行ICMP网络报文的收发,启发如何利用Java进行网络底层协议的开发。

2012-04-03

SUN公司Java培训教材(中文版)

Sun公司的Java培训教材中文版,详细介绍了如何利用Java进行程序开发,并深入介绍了Java核心技术(Java虚拟机,Java语言,Java Core API),不可多得的参考书。

2012-04-03

KWIC系统事件系统结构实现

KWIC系统基于事件体系结构的java实现,实现字符串的拆分、排序、单词统计功能。

2012-03-07

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除