- 博客(234)
- 资源 (3)
- 收藏
- 关注
原创 epoll和input子系统实现input事件分发
前言在嵌入式开发中,按键和触摸板等输入系统很常见,其驱动文件位于/dev/input下,以event开头,后接数字。epoll是2.6内核引入的I/O多路复用的新的高效的接口,我在以前的博客中,使用其实现了一个聊天室服务器程序。这里我们使用其来监控input子系统事件。 在嵌入式软件开发中,小的程序,我们可以直接使用I/O接口来获得外部的时间输入,而如果对于一个大型的嵌入式软件系统,其会被很多地方
2015-05-21 23:16:54 2328
原创 python学习(一)-函数
前言虽然用python不到半年,可都是用的时候单独看个方面,没有系统的学习过,现在从最基础的开始学习。定义依我个人理解,函数其实也是一种封装,其封装了处理逻辑,而数据作为其输入与输出。实现代码重用和代码结构化。python中的函数在python中,函数不需要像C/C++一样声明和实现分离,在python中,在需要函数的地方,如下声明即可:def doSometing(t1, t2): ...
2015-05-18 21:18:56 1151
原创 使用Scrapy来爬取自己的CSDN文章 (2)
前言前面讲到只是爬取了title和url,那么怎么爬取文章,其实原理是一样的。过程保存文章内容的Item我们在item.py中添加一项,如下:class CsdnArticleItem(Item): title = Field() article = Field() pass我们保存文章的题目和内容。分析文章的链接csdn是怎么来保存一篇文章的,我们来看一个url: htt
2015-05-16 15:07:11 2312
原创 使用Scrapy来爬取自己的CSDN文章
前言爬虫作为一中数据搜集获取手段,在大数据的背景下,更加得到应用。我在这里只是记录学习的简单的例子。大牛可以直接使用python的url2模块直接抓下来页面,然后自己使用正则来处理,我这个技术屌丝只能依赖于框架,在这里我使用的是Scrapy。install首先是python的安装和pip的安装。 sudo apt-get install python python-pip python-dev
2015-05-13 21:09:57 14451 6
原创 qml+opencv(三)人脸检测与识别
ccface介绍这个我闲的蛋疼无聊做的一个人脸检测和识别的小程序。环境Qt5+opencv2.4.9使用通过File菜单打开关闭摄像头ID填入标识,save保存select 识别检测save识别程序地址: https://git.oschina.net/zhouX/ccface.git
2015-05-11 21:15:19 4771
原创 实现类似于Qt的Signal和Slot通讯机制
Signal和Slot机制其实qt提供的对象间通讯机制。实现细节思路实现类似与信号与槽的机制,无非就是做一些薄记工作,qt中通过虚函数和moc来实现。那我们怎么实现?我的思路是signal是一个对象,其他的slot将自己的回调注册进signal对象中,signal完成薄记工作。那么需要实现的细节归于一下几点。 1. 参数的提取与匹配。 2. slot容器的制作。 3. slot的调用。 参数
2015-05-08 20:40:23 2897 2
原创 qml+QZXing实现实时QRCode识别和给重复造轮子的一些建议
QML这个不说了,qml是qt在Qt4.7推出的qt元对象语言。QZXingQZXing是对ZXing库的一个Qt外包库(Qt wrapper library),是被QRCode只是其中的一种。实现从手机摄像头拿到帧图像和实时显示,使用用了Camera和VideoOutput,开始实现的时候,使用了CameraCapture,其性能不能忍受。然后我希望可以直接从VideoOutput中取出图片。
2015-04-26 21:01:02 4617 5
原创 qml+opencv(二)
实现人脸检测。opencv提供了Haar分类器,其在data文件下还提供了训练的数据,所以实现这个不是很难。 我继承OpenCVaction,实现了人脸检测的算法。#ifndef OPENCVFACEDETECTACTION_H#define OPENCVFACEDETECTACTION_H#include "opencvaction.h"class OpenCVfaceDetectActi
2015-04-14 22:10:56 3398 1
原创 qml+opencv(一)
前言突然想起opencv,一直想做人脸识别,可是理论基础太水,只能慢慢来,去年学习了一会,然后公司让我去搞app和网络,就一直搁着,现在学习qml,突然想能不能在qml里面使用opencv,所以就有了这篇文章。QQuickItem和QObject在QML中,可视化的基础组件是Item,不可视化的就是QtObject,它们对应C++中的QQuickItem和QObject类,扩展QML组件一个继续基于
2015-04-13 20:39:27 6408 3
原创 Qt HTTP请求同步调用
在Qt中,进行HTTP就行现在官方提倡使用QNetworkAccessManager,其和QNetworkRequest和QNetworkReply配合使用,来完成,其是只支持异步的操作。最近使用QML做些android的小程序,需要进行HTTPS的操作,开始是使用的JS中的XMLHttpRequest,其不能使用HTTPS,我很郁闷,那只有使用C++来完成,但是又发现只支持异步,但是我希望在进行网
2015-03-24 21:08:57 11635 2
原创 在Qt5的QML中使用QZXing识别二维码
前言ZXing库是一个用来识别二维码的库,QZXing是一个基于Qt的Qt wrapper library,在本文我们使用它和qml开发一个android小应用。添加QZXing项目QZXing最常用是作为一个子项目包含在我们的项目中,在我们的项目的pro文件中添加如下的一句:include(./QZXing/QZXing.pri)QZXing和我们的pro文件在同一个目录。qml程序import
2015-03-11 18:48:16 9402 13
原创 QML怎么适配不同的设备
前言做嵌入式和移动开发,不同的设备,不同的分辨率需要UI能够适配,这是一个很现实的问题。QML作为Qt中为UI而生的,使用QML一定要解决适配的问题。分辨率现在同一尺寸的屏幕,其分辨率也是不同,在QML中使用 anchors 进行相对的布局时,其是以像素为单位。现在有一个概念,叫做每英寸像素数目。当设备的PPI不同时,控件的大小不同,这可能导致,如果设计是在一个尺寸小PPI低的屏幕上设计,将程序放到
2015-03-10 20:59:03 6238 2
原创 qt for android
移植想动手试试qml,正好公司有个企业app是苹果的,我穷屌丝,买不起,后台我做的,我知道接口,就来个android的,qml以前只是看过,没有动手做东西。这是个练手的机会。先来几幅图片看看效果这是在我的ZTE红牛手机上运行的效果,android4.3。这个小的app程序使用qml和js,文件操作使用了很少的C++来完成。qml类似与html语言,在写界面时,其可以直白
2015-03-08 19:57:25 1518
原创 a cpp fastcgi framework
ccfast这是一个基于FastCGI和C 的基于HTTP的Resuful API开发框架。其依赖于fastcgi库,boost库,libmysql ,libredis,其中用了C 11的特性。前端web服务器我们使用Nginx,需要的配置如下: location ~* ^/ccfast/. \.do$ { fastcgi_pass 127.0.0.1:10
2015-02-26 20:45:30 1448
原创 昨天我遇到一个令我敬佩的人
公司在做一款跟产品相关的注册机APP,外包给其他的公司制作,我半路负责这个项目,对面的联系人是前端陆总,后端谷工。我作为一个IT行业的后生晚辈对前辈们那是极其的敬重,在使用通讯工具时,我从不用 你 这个称呼,我都是使用 您,我认为这个是我应该的。 可以使我职场生涯才半年,处理这类的事务还是比较棘手,导致项目怕要延期完成,没办法,为了减少交流的成本,是资源可以全部被使用到项目的研发上,我和我们组的产
2015-02-10 21:45:39 1590 1
原创 在UIButton上添加一个UIActivityIndicator来提示操作正在进行 (2)
有时候,我们希望在整个页面提示 UIActivityIndicator ,一般的会在页面上面加一层 View ,其透明有底色,但那是不一定的,我可以只使用 UIActivityIndicator 来实现,只是对 一 中的代码修改一下,代码如下。- (IBAction)click_button:(id)sender { self.activity_indicator_view = [[UIAc
2015-02-08 18:56:18 1399
原创 在UIButton上添加一个UIActivityIndicator来提示操作正在进行
在UIButton上添加一个UIActivityIndicator来提示操作正在进行我们在使用 NSURLConnection 进行异步的网络操作时,我们使用HTTPS协议时,必须异步实现代理,那么我们在电机按钮时就不希望重复请求。那么在点击按钮后就可以提示用户,后台正在做操作,而且点击按钮不会在请求。那么我们就可以给给UIButton上添加一个UIActivityIndicator来提示操作正在进
2015-02-06 20:23:53 1563
原创 PHP使用CURL进行POST操作时
传递一个数组到 `CURLOPT_POSTFIELDS`,cURL会把数据编码成 `multipart/form-data`,而然传递一个 `URL-encoded` 字符串时,数据会被编码成 `application/x-www-form-urlencoded`。 所以在设置'Content-type'的值时要注意,不然对方不能真确解析到值。
2015-02-02 22:12:53 746
原创 从storyboard加载视图控制器
storyboardWithName:@"MainStoryboard" bundle:nil]; ViewController *Controller = [mainStoryboard instantiateViewControllerWithIdentifier:@"ViewController"];MainStoryboard是故事板的文件名。ViewController
2015-02-02 22:09:13 4430
原创 PHP得到POST上来的JSON数据
$post_data = $GLOBALS['HTTP_RAW_POST_DATA'];$josn_data = json_decode($post_data, true);
2015-02-02 22:04:39 2978
原创 php curl
PHP和CURL随着移动互联网的发展,移动办公的需求在需要改变以适应现在环境的传统企业中变得越来越大。这类的移动应用和企业的业务需要密切相关,可能只使用本企业,一般并发用户少,在初期需求不明确,改变比较大,那对应用的开发迭代要求高。在这类的应用的后台,PHP+json是很好的选择,后台更新方便,而且可利用资源较多。其和公司业务相关,可能需要请求其他的REST服务,那么在PHP中和其他的第三
2015-01-17 11:59:33 913
原创 基于nginx_http_push_module模块让nginx变成Comet Server
基于http协议搭建各种服务已经成为一种大势,但是基于http协议的客户端和服务器端的交互却是个难题,没办法http协议天生如此,其是无状态的协议,每次交互建立链接,结束断开.客户端和服务器交互很简单,请求描述功能接口的url即可,带上参数.可是服务器要和客户端交互,那就有些困难.下面是几种方法.1.客户端轮询,最差的一种,客服端和服务器端都在白忙活,浪费资源.2.long-polli
2014-12-20 12:06:38 3178
原创 在内网架设一个可供外网登录的ftp服务器
ftp服务器是使用比较平常的服务器,但是IP资源是有限的,那么怎么让内网的服务器給外网的用户提供服务了?
2014-11-12 22:21:45 16147
原创 移植qt5.3.1到arm
最近刚入手一款开发板(比较低端,刚毕业工作还没一个月,穷屌丝一个)。在学校以前都是用的是Friendly Arm的6410,使用的qt版本是使用的最多的4.7.0版本,入手的板子是4.7.4。qt5出来也有好长的时间了,其中提供了很多的特性,所以这次移植的是qt5的最新版本5.3.1。第一步准备好源码包,这里需要qt的源码包,和tslib包,tslib我使用的是开发板提供的包。设置交叉编译
2014-08-04 20:24:48 28665 26
原创 Object-base编程
在C++中,一般的架构设计都是基于多态,基于接口编程。一般的是基类提供接口,子类根据具体的业务逻辑来实现接口,以此来提供程序设计的过程中的可注入性,提高灵活性,但是事实可能不经如此。引入了多态,其实也就是引入了耦合,其强制规定了继承基类和接口的形式,这在整体继承体系中都是不可以更改的。C++0x中的bind函数和function模板类为我们提供了很好的设计解决方案,提供多态基于函数对象,其只和函数的返回值和参数有关。陈硕老师称其为Object-base编程,通过对象来完成功能注入。拳拳到肉(陈老师原话)。
2014-07-27 22:50:52 1368
原创 static 和 no static Member function学习
在C++中,实现语言时以及编译器处理时,他们做了什么,而对我们使用者来说,其又为我们使用提供了什么。static member function和nostatic member function在内存中都表现为函数,可是为什么static member function可以通过一般的函数指针来使用,可以作为callback。nostaitc member function,编译器到底对他们做了什么,我们是否可能不通过object来调用它们?
2014-07-19 09:09:34 2624
原创 插入排序
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元
2014-05-31 21:25:51 803
原创 静态断言
#include template class Assert;template{};int main(){ std::cout << "Hello World!" << std::endl; Assert a; return 0;}
2014-04-24 13:33:19 894
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人