自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

谢健的专栏

记录学习的点滴.......加油,努力改变自己!

  • 博客(126)
  • 资源 (35)
  • 收藏
  • 关注

原创 在win10和centos7上编译synergy

在win10和centos7上编译synergy

2018-10-11 00:00:18 2754

原创 【lua学习】学习二

【lua学习】学习二

2018-08-01 00:00:34 328

原创 【lua学习】学习一

【lua学习】学习一

2018-07-31 23:59:55 352 1

原创 【lua学习】Lua中pairs和ipairs区别

【lua学习】Lua中pairs和ipairs区别ipairs 和pairs在lua中都是遍历tbale的函数可是两者有差别。pairs遍历table中的全部的key-value,而ipairs会依据key的数值从1开始加1递增遍历相应的table[i]值。 pairs能够遍历表中全部的key,而且除了迭代器本身以及遍历表本身还能够返回nil;可是ipairs则不能返回nil,仅仅能返回...

2018-07-03 00:18:44 835

原创 【lua学习】Lua 协同程序(coroutine)

【lua学习】Lua 协同程序(coroutine)什么是协同(coroutine)?Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。协同是非常强大的功能,但是用起来也很复杂。线程和协同程序区别线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,...

2018-07-01 20:56:52 448

原创 【lua学习】Lua 面向对象

【lua学习】Lua 面向对象面向对象编程(Object Oriented Programming,OOP)是一种非常流行的计算机编程架构。以下几种编程语言都支持面向对象编程:C++JavaObjective-CSmalltalkC#Ruby面向对象特征1) 封装:指能够把一个实体的信息、功能、响应都装入一个单独的对象中的特性。 2) 继承:继承的方法允许在不改动原...

2018-06-30 00:55:49 346

原创 【lua学习】Lua中调用C函数

【lua学习】Lua中调用C函数 Lua利用一个虚拟的堆栈来给C传递值或从C获取值。每当Lua调用C函数,都会获得一个新的堆栈,该堆栈初始包含所有的调用C函数所需要的参数值(Lua传给C函数的调用实参),并且C函数执行完毕后,会把返回值压入这个栈(Lua从中拿到C函数调用结果)。  于此相关的C API有几个比较重要的定义如下:(1)typedef struct lua_State ...

2018-06-28 00:15:57 926

原创 【lua学习】lua迭代器和泛型for浅析

【lua学习】lua迭代器和泛型for浅析1. 迭代器与Closure:在Lua中,迭代器通常为函数,每调用一次函数,即返回集合中的“下一个”元素。每个迭代器都需要在每次成功调用之间保持一些状态,这样才能知道它所在的位置和下一次遍历时的位置。从这一点看,Lua中closure机制为此问题提供了语言上的保障,见如下示例:function values(t) local i = 0...

2018-06-24 19:13:16 435

原创 【Go学习】GO语言并发编程之读写锁

【Go学习】GO语言并发编程之读写锁读写锁是针对于读写操作的互斥锁。基本遵循两大原则:1、可以随便读。多个goroutin同时读。2、写的时候,啥都不能干。不能读,也不能写。 解释:在32位的操作系统中,针对int64类型值的读操作和写操作不可能只由一个CPU指令完成。如果一个写的操作刚执行完了第一个指令,时间片换给另一个读的协程,这就会读到一个错误的数据。RWMutex...

2018-06-12 14:25:17 486

原创 【Go学习】GO语言并发编程之互斥锁

【Go学习】GO语言并发编程之互斥锁互斥锁是传统的并发程序对共享资源进行访问控制的主要手段。它由标准库代码包sync中的Mutex结构体类型代表。sync.Mutex类型(确切地说,是*sync.Mutex类型)只有两个公开方法——Lock和Unlock。顾名思义,前者被用于锁定当前的互斥量,而后者则被用来对当前的互斥量进行解锁。类型sync.Mutex的零值表示了未被锁定的互斥量。也就是...

2018-06-12 11:36:08 718 1

原创 【Go学习】Golang Channel 详解

Go 学习

2018-05-31 12:00:24 1348

原创 【Go学习】一道简单Golang面试题中关于panic和defer的执行顺序引发的惨案

Go 学习

2018-05-31 11:58:33 5537

原创 【Go学习】Golang源码编译和gdb调试环境搭建

Go 学习

2018-05-31 11:57:04 4167

原创 【Go学习】类型转换和类型断言

Go 学习

2018-05-31 11:56:34 530

转载 最快最简单的排序算法:桶排序

最快最简单的排序算法:桶排序转载至:http://blog.jobbole.com/100361/#article-comment在我们生活的这个世界中到处都是被排序过的。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东西都需要排序,可以说排序是无处不在。现在我们举个具体的例子来介绍一下排序算法。 首先出场...

2018-04-08 22:23:47 242

原创 Linux驱动中completion接口浅析

Linux驱动中completion接口浅析内核编程中常见的一种模式是,在当前线程之外初始化某个活动,然后等待该活动的结束。这个活动可能是,创建一个新的内核线程或者新的用户空间进程、对一个已有进程的某个请求,或者某种类型的硬件动作,等等。在这种情况下,我们可以使用信号量来同步这两个任务。然而,内核中提供了另外一种机制——completion接口。Completion是一种轻量级的机制,他允许一...

2018-03-26 14:53:49 475

原创 【Go学习】Golang 使用 iota

区块链学习(四)

2018-02-28 11:37:44 492

原创 【Go学习】Golang sizeof 占用空间大小

区块链学习(三)

2018-02-28 11:36:44 2196

转载 区块链入门教程

区块链入门教程转载至:http://www.runoob.com/w3cnote/blockchain-intro.html什么是区块链?从字面上看:区块链是由一个个记录着各种信息的小区块链接起来组成的一个链条,类似于我们将一块块砖头叠起来,而且叠起来后是没办法拆掉的,每个砖头上面还写着各种信息,包括:谁叠的,什么时候叠的,砖头用了什么材质等等,这些信息你也没办法修改。 从计算机...

2018-02-28 11:35:00 1956

转载 linux内核中打印栈回溯信息 - dump_stack()函数分析

linux内核中打印栈回溯信息 - dump_stack()函数分析转载至: http://blog.csdn.net/jasonchen_gbd/article/details/45585133简介当内核出现比较严重的错误时,例如发生Oops错误或者内核认为系统运行状态异常,内核就会打印出当前进程的栈回溯信息,其中包含当前执行代码的位置以及相邻的指令、产生错误的原因、关键寄存器的值以

2018-02-02 10:16:46 2113

原创 Linux bmc实现3

Linux bmc实现占位先

2018-01-31 18:10:47 622

原创 Linux bmc实现 2

Linux bmc实现占位先

2018-01-31 18:10:01 795

原创 Linux bmc实现

Linux bmc实现占位先

2018-01-31 18:09:22 3870 2

转载 I2C总线的仲裁机制

I2C总线的仲裁机制在多主的通信系统中。总线上有多个节点,它们都有自己的寻址地址,可以作为从节点被别的节点访问,同时它们都可以作为主节点向其他的节点发送控制字节和传送数据。但是如果有两个或两个以上的节点都向总线上发送启动信号并开始传送数据,这样就形成了冲突。要解决这种冲突,就要进行仲裁的判决,这就是I 2C总线上的仲裁。 I2C总线上的仲裁分两部分:SCL线的同步和SDA线的仲裁。1

2018-01-22 23:36:43 541

原创 Centos7 VS code golang 开发环境搭建

Centos7 VS code golang 开发环境搭建在上一篇文章—-centos7下配置golang1.9.2环境,之后就一直用Sublime text,还处在初级阶段,代码量也不大,最近下了docker的源码,想学习下,磨刀不误砍柴工,在这里先折腾一下VS code,大家有什么好的IDE可以推荐一下。废话不多说太多,直接进入主题,这里把自己搭建环境的过程记录一下,以便自己以后查看。安装 VS

2017-12-25 23:51:33 3235

原创 Qt + Opencv 实现的一个简单文字识别的demo

Qt + Opencv 实现的一个简单文字识别的demo很久没用Qt了,这两天结合Opencv整了一个简单文字识别的demo,太久没用了,很多东西都忘记了,中间碰到了几个不大不小的坑,最后都解决了,留一片文章记录一下,废话不多说,直接看效果图吧,很简单!中间的过程就不多说了,也很简单,感兴趣的大家可以把源码下下来看看!

2017-12-25 12:46:35 7187 11

原创 在GPRS模块(GA6)和STM32F103C8T6单片机上移植MQTT协议

在GPRS模块(GA6)和STM32F103C8T6单片机上移植MQTT协议最近几天折腾了一下,在GPRS模块(GA6)和STM32F103C8T6单片机上移植MQTT协议,网上找了一些资料,不是很全面,下面结合自己的移植过程记录一下。下载MQTT的库我移植MQTT的库:Paho,这个库支持非常多的平台,当然也包括了嵌入式平台:GitHub – paho.mqtt.embedded-c。 将该

2017-12-24 23:59:52 14406 19

转载 How to upgrade gcc on CentOS6.5

How to upgrade gcc on CentOS6.5Question: The default gcc version on CentOS6.5 is too old to build a particular application. How can I upgrade the version of gcc installed on CentOS6.5?As of CentOS 6.5,

2017-12-20 18:11:16 1095

原创 虚拟机与Docker的不同浅析

虚拟机与Docker的不同浅析2014年,当我第一次接触Docker的时候,我把它比做一种轻量级的虚拟机。这样做无可厚非,因为Docker最初的成功秘诀,正是它比虚拟机更节省内存,启动更快。Docker不停地给大家宣传,”虚拟机需要数分钟启动,而Docker容器只需要50毫秒”。然而,Docker容器并非虚拟机,我们不妨来比较一下它们。理解虚拟机使用虚拟机运行多个相互隔离的应用时,如下图: 从下到

2017-12-19 18:28:59 390

转载 吃货告诉你,PAAS、IAAS和SAAS之间的区别

吃货告诉你,PAAS、IAAS和SAAS之间的区别转载自:http://submail.cn/chs/blog/view/45 云计算的发展这几年大家也看到了,非常火热。各种新概念层出不穷,如果你不是专业人士,这些新概念让你一脸茫然是很正常的。 所以最近比较多的小伙伴向我咨询一个问题,那就是PAAS、IAAS和SAAS之间的区别?正好今天小编比较闲,就在这为大家解释一下。当然首先请允许小编从专业

2017-12-19 17:31:23 988

原创 MQTT学习——Centos7上安装Mosquitto和使用

MQTT学习——Centos7上安装Mosquitto和使用前言MQTT是IBM开发的一个即时通讯协议。MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制。Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用。 若初次接触MQTT协议,可先理解以下概念:【MQTT协议特

2017-12-18 13:53:06 10292 3

原创 【Go学习】 逐行读写文件

简单的翻看了一下Go的io/ioutil居然没又逐行读取的接口,在网上找到一份代码,发现其还比较使用,打算撸个例子试试看,网上的逐行读取的接口如下:func ReadLine(fileName string, handler func(string)) error { f, err := os.Open(fileName) if err != nil {

2017-12-16 16:39:35 4573

转载 CSDN-markdown编辑器语法——字体、字号与颜色,背景色

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过类似HTML的标记语法,它可以使普通文本内容具有一定的格式。但是它本身是不支持修改背景色功能的!

2017-12-16 15:51:26 570

转载 【Go学习】浅析Go语言Interface类型的语法行为及用法

【Go学习】浅析Go语言Interface类型的语法行为及用法转载至:https://studygolang.com/articles/2652Go不是一种典型的OO语言,它在语法上不支持类和继承的概念。 没有继承是否就无法拥有多态行为了呢?答案是否定的,Go语言引入了一种新类型—Interface,它在效果上实现了类似于C++的“多态”概念,虽然与C++的多态在语法上并非完全对等,但至少在最终实

2017-12-15 17:34:53 790

原创 EXPORT_SYMBOL的内核实现

EXPORT_SYMBOL的内核实现看过Linux内核源码的人应该知道,源码中充斥着像EXPORT_SYMBOL这样的宏,在我们整机的设备驱动程序中野经常会发现它的身影。大部分时间里,我们只是知道它用来像外界导出一个符号,仅此而已。我们对这些宏是如此习惯,以至于常常忽略其存在的意义,更不用说去仔细探究其背后的实现原理了,今天咱们就来研究一下EXPORT_SYMBOL在内核具体怎样实现?

2017-12-14 23:37:38 1018 3

原创 【Go学习】GO语言异常处理机制panic和recover分析

【Go学习】GO语言异常处理机制panic和recover分析Golang 有2个内置的函数 panic() 和 recover(),用以报告和捕获运行时发生的程序错误,与 error 不同,panic-recover 一般用在函数内部。一定要注意不要滥用 panic-recover,可能会导致性能问题,我一般只在未知输入和不可靠请求时使用。golang 的错误处理流程:当一个函数在执行过程中出现了

2017-12-13 16:18:05 1115

原创 【Go学习】理解Go语言中的函数闭包

【Go学习】理解Go语言中的函数闭包闭包是什么? 它是怎么产生的及用来解决什么问题呢。给出字面的定义先:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)。这个从字面上很难理解,至少我在刚接触这个概念的时候是没弄懂的,本文将结合实例代码进行解释。 函数是什么? 可能大家都知道:函数只是一段可执行代码,编译后就“固化”了,每个函数在内存中只有一份实例,得到函数的入口点便可以

2017-12-13 12:26:46 2032 1

原创 【GO学习】为类型添加方法

【GO学习】为类型添加方法刚开始学Go语言,看到如下代码很是不解,直接贴出来分析下,代码如下:package mainimport "fmt"type Rank int const ( Rank001 Rank = iota Rank002 Rank003 Rank004)var rewards = [...]string{

2017-12-12 18:36:28 2227

原创 【Go学习】slice切片的本质及操作——切片的追加、删除、插入等

【Go学习】slice切片的本质及操作——切片的追加、删除、插入等一、一般操作1,声明变量,go自动初始化为nil,长度:0,地址:0,nilpackage mainimport ( "fmt")func main(){ var ss []string; fmt.Printf("length:%v \taddr:%p \tisnil:%v",len(ss),ss, ss==

2017-12-12 15:58:03 5192

原创 【Go学习】Go的函数

Go的函数函数是基本的代码块,用于执行一个任务,是构成代码执行的逻辑结构。 在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。函数定义函数其实在之前已经见过了,第一次执行hello world程序的main()其实就是一个函数,而且是一个比较特殊的函数。每个go程序都是从名为main的package包的main()函数开始执行包的概念不是这里的重点,以后

2017-12-12 11:52:57 335

Qt + Opencv 实现的一个简单文字识别的demo

Qt + Opencv 实现的一个简单文字识别的demo,可显示识别的结果

2017-12-25

GPRS模块(GA6)和STM32F103C8T6单片机上移植MQTT协议

在GPRS模块(GA6)和STM32F103C8T6单片机上移植MQTT协议,里面移植了一个小的例子,结合MQTT服务器测试工作正常。

2017-12-25

TCP-IP详解全三卷(高清带目录)

第一卷 《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 本书适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。 第二卷 本书完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15 000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。

2017-06-07

深入理解linux内核(第三版中文)

Linux内核经典书籍-深入理解Linux内核(第三版中文).pdf,全书将Linux内核源码作了全面地讲解,Linux内核驱动工程师高手必备。

2017-06-07

php实现简单的问卷调查系统,可自定制试题

php写一个简单问卷调查系统,简单的实现自定义试卷题目,用户管理,普通用户和超级用户登录进入不同的界面,进行不同的操作

2017-06-02

C 数据结构 大中小三种轮渡计算过河时间问题实现

有A,B,C三种轮船,最大载客人数分别为50,40,20,每1小时一趟,如果提前装满可以提前发,如果1小时内每人坐船,空船也走,船过到对岸10分钟,回来8分钟,每个人上船20秒,下船为10秒,先上后下,小于10岁大于70岁的可以优先上船,从文件中读入上船人信息,算出每个人的到达时间,写到文件中

2017-01-10

Scrapy抓取美女图片并且保存

通过Scrapy框架下载保存美女图片,进而学习下Spider中间件(Spider Middlewares)相关知识

2017-01-03

通过Scrapy抓取和讯论坛关键字搜索的结果

通过Scrapy框架构建工程来实现关键字搜索和讯论坛正文后结果中所有的的帖子内容,发帖人,以及发帖的时间。

2016-12-27

Scrapy实现CSDN自动登录获取博客分类列表

通过Scrapy框架简单实现了实现CSDN自动登录获取博客分类列表功能。

2016-12-21

Openwrt中通过gdb工具定位内核panic错误位置

Openwrt中通过gdb工具定位内核panic错误位置,快速定位内核内存越界代码位置,节约调试时间。

2016-01-12

c 语言实现快速排序算法

通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

2012-12-26

c语言 链式队列的实现

c语言实现的链式链表,对链式链表的初始化,插入,删除,等相关操作!

2012-12-14

c语言实现 小根堆heap

c语言实现 小根堆heap,每次pop的时候都是最小值。整个值以数组形式储存!

2012-12-07

c语言实现的stack类数据结构的操作

这个是用c语言实现的一个stack类数据结构的操作。对c语言堆栈更加深入的认识!

2012-11-21

Android文件下载(实现断点续传)

Android文件下载(实现断点续传)是使用java为我们提供的RandomAccessFile类实现多线程的下载

2012-05-09

安卓中两种制作程序Splash的方法

这篇文章通过两种方法来实现类似UC浏览器的Splash的类似进度条的效果

2012-04-26

安卓UI设计:自定义SeekBar拖动条例子

安卓UI设计:自定义SeekBar拖动条的例子,通过通过自定义的图片与xml文件来达到自定义SeekBar界面的效果。

2012-04-15

Android界面设计之:使用水平视图切换

Android界面设计之:使用水平视图切换,主要是用到啦Google提供的兼容包中的viewPager组件。

2012-04-10

Qt做的俄罗斯方块游戏Windows可执行版

Qt做的俄罗斯方块游戏,这个是windows下的可执行文件,点击exe可以直接运行。

2012-01-13

Qt 做的俄罗斯方块游戏代码

这个是用Qt做的一个俄罗斯方块的游戏的全部代码,由于是在linux下面写的。源文件在windows下面打开要选择编码格式为utf-8

2012-01-13

Qt做的俄罗斯方块游戏windows可执行文件

这个是用Qt做的一个俄罗斯方块的游戏,游戏背景动态显示,和相应的游戏声效。

2012-01-13

Qt pppoe拨号软件

这是用qt做的一个pppoe的拨号软件,底层是用linux下的开源软件rp-pppoe。 用qt做的界面。

2011-12-28

Qt 基于QGraphicsItem类重载鼠标事件函数的教训

这是我在做一个简单的俄罗斯方块游戏时碰到的问题,在这里记录一下以便不再出现这种问题。

2011-12-19

QT 图片 渐显

这是一个用qt实现的图片逐渐显示的小例子,可以被用到其他logo图片加载的过程中去

2011-12-13

Qt 设置图片透明色显示的效果

这个是一个qt处理图片,对图片设置中某个色素设置透明色的效果

2011-12-07

交叉编译驱动模块

这是一个交叉编译驱动模块的例子,其中有两种方法,一是通过kconfing文件,二是直接通过写单独的makefile文件通过编译

2011-12-04

ipsec/l2tp服务配置

L2TP提供了一种远程接入访问控制的手段,其典型的应用场景是:某公司员工通过PPP拨入公司本地的网络访问服务器(NAS),以此接入公司内部网络

2011-11-18

C语言实现的一个单向链表逆转

这是在面试中很常见的一个例子,实现单向链表的逆转,这个例子是用递归法实现的,一个简单的单向链表的例子

2011-08-01

深入解析linux路由器技术

介绍嵌入式linux路由的做法,以及原理。 分层介绍路由的思想。使大家对路由器有一个直观的认识。

2011-06-27

c语言实现的一个简单的日志函数

c语言实现的一个简单的日志函数, 主要是实现可变参数函数的使用技巧!

2011-06-24

xmpp协议中文翻译版

MPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程 序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。

2011-06-23

C语言实现UDP打洞代码

这是一个用c语言实现的UDP的打洞代码,可以聊天,加了一个离线判断,上下线通知,立即客户端一段时间与主机通信,判断是否与主机断开连接

2011-06-14

c# 实现 UDP 打洞代码

c# 实现 UDP 打洞代码 编译过的没有问题,欢迎大家使用

2011-05-29

Qt Mp3 播放器

Qt Mp3 播放器 在linux 实现网络播放与本地播放,切换皮肤的功能!

2011-05-29

空空如也

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

TA关注的人

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