自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宋梦科的专栏

在学习中成长,在分享中进步

  • 博客(30)
  • 收藏
  • 关注

原创 lua中的table使用陷阱

最近在使用lua开发的过程中,遇到了一个由于语言机制导致的bug,具体表现就是,我的配置文件中存了个两个表项,在用lua加载配置文件内容之后,返回的表长度竟然是1,然后导致后面的判断都出错了,在初次调试这个bug的时候完全是百思不得其解,把配置文件看了又看,确实有两个表项没错,但是通过#运算符得到的表长度始终是1,于是我用公司同事写的一个打印table模块将返回的table的键和值都打印出来看了一

2017-02-08 14:10:21 2094

原创 使用xpath提取极客学院python课程内容名称

最近在熟悉python的时候偶然想试一试写一个简单的单线程爬虫,于是知道了有XPATH这个神器,它的主要用法如下:1.//定位根节点2./往下层寻找3.提取文本内容:/text()4.提取属性内容:/@xxxx在使用的过程中写了一个提取极客学院python课程名的简单爬虫,代码不到20行,给想学习python以及网络爬虫技术的朋友一个参考:#!/usr/bin/env

2017-01-17 17:34:39 595

原创 lua字符串分割

最近在工作中遇到需要对字符串按某个字符分割处理,然后遇到了一下小问题,在这里介绍一下自己的处理方法和理解。  具体问题就是:我希望将这样一个lua字符串”1.3.6.4.2.13”根据右下角的”.”将它分割之后将元素存入一个表中,如果是在C语言中,很方便地就能索引到每一个点以及元素,但是在lua中,你不能用下标的方式去访问一个字符串中的字符,也就是说 : 如果str = “1.3.6.4.2.13”

2016-11-11 15:27:22 8810

原创 sudo su身份切换失败

sudo su身份切换失败  最近在外地完成学院要求的课程设计,还是用到了之前经常在学校玩的树莓派,但是由于在住的地方没有多余的屏幕,所以就只能通过ssh登录到树莓派上进行编程,我首先用公司电脑的屏幕在树莓派上新建了一个用户songmengke方便我登录,然后当然只用普通用户的权限满足不了我的要求,但是在使用sudo su进行身份切换的时候系统提示我这个用户不在root组里面。  那么我就根据提示来

2016-11-02 17:18:01 2399

原创 lua自定义排序函数

说一下lua的table库中比较常用的排序函数——table.sort(),第一个参数代表要进行排序的table,第二个参数是可选的,如果没有第二个参数,那么这个函数就会将table元素从小到大进行排序,我主要来说一下第二个参数。第二个参数是函数类型,这个函数接收两个table元素,如果希望第一个参数在排序结果中位于第二个参数前,那么就应当返回true。那么最直观的理解就是看代码了,如下是一种

2016-08-05 10:34:30 4978

原创 另一种实现非阻塞网络通信的方法———使用libev

背景:最近终于开始了我的实习生之路,本来在进公司之前还比较紧张,尽管拿到了offer,因为毕竟这是一个新的起点,一开始从学生到员工这个身份的转变让我有些不太适应,但是还好在公司里遇到了人超级好的软件经理Alex以及其他精明能干的小伙伴们,所以这个过渡时间也很快。一开始Alex让我通过公司的一个项目了解libev这个库,我在看同事写的代码的过程中遇到的问题实在太多,由于我之前写的和这个项目类似的

2016-07-12 21:32:44 3760

原创 socket编程—select方法使用

0.背景最近要写一个RPC库,即在客户端向服务端发送请求,服务器计算并返回结果,要求实现服务端能同时接收多个客户端请求但是不能使用线程库,根据提示我知道了可以使用select函数来完成非阻塞方式工作的程序,于是我就开始了select方法的学习。1.概念Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序(比如我),他们只是习惯写诸

2016-05-31 20:11:18 5652 2

原创 failed to push some refs to '[email protected]:songmengke/NotePadVMware.git'

背景:我在虚拟机上使用git的时候,第一次使用push将本地commit的文件添加到远程仓库,但是出现了这样的错误然后我通过搜索之后发现,原来是因为,我在Github的远程仓库中初始化了一个README.md文件,但是本地仓库的目录中却没有这个文件,所以无法进行推送,此时的远程仓库是这样子的所以是没有任何文件被推送上去解决办法是:在本地仓库的目录下运行以下命令git p

2016-05-15 17:24:18 910

原创 Shell脚本输出斐波拉契数列前十项,每行显示两个数

用Shell脚本输出斐波拉契数列前十项,每行显示两个数,基础知识涉及到变量定义及引用,shell数组定义以及使用,变量算术运算方式,if条件判断语句,for循环语句等等

2016-05-15 16:34:07 7120

转载 error C2664: 'CreateThread' : cannot convert parameter 3 from 'int (void *)'

#include #include using namespace std;DWORD WINAPI FunProc(LPVOID){        cout        return 0;}int main(){         HANDLE hThread1;         int  dwThreadId=NULL;         hT

2016-05-12 10:27:50 3893

原创 Git学习笔记

1.背景: http://从来没有写过关于使用版本管理工具的文章,主要是因为之前并没有本着对自己代码负责的精神将自己对代码作的每次修改都记录下来,最近突然意识到这种做法还是非常有必要的,而且自己在开始使用git之前也遇到过许多的问题,所以就想写下这篇学习过程供所有看到的人参考。之前在写一些小测试项目的时候,总是习惯随手建一个文件夹,然后把代码放在里面,这样过了一段时间之后,我可能要用到里面

2016-05-10 20:12:10 6417

原创 Shell编程—根据用户输入来输出符号正方形

这是我在学习Linux Shell编程的时候偶然遇到的一个小题目,想就其中的问题和大家分享讨论一下,题目是这样的:脚本执行时接受2-10范围内的一个整数作为输入参数,在屏幕上用+号,@号和&号画出以给定参数为边长的正方形。例如:脚本运行时输入4并回车,则在屏幕上会绘制如下的正方形:@++@& && &@++@其中2、3行的&之间有两个空格弄明白这个逻辑之后,

2016-05-01 12:21:25 4932

原创 数据通信基本原理学习

数据通信分类按传输方向分单工通信双工通信半双工通信1.单工通信 信息沿着信道从数据发送方传到数据接收方,是单向传递的,就想我们生活中的电视广播以及遥控器等等,以及其它用来发送控制信息的设备,不要求双方建立良好的沟通,因此双工通信就出现了。2.双工通信 双工通信即信息可以沿着两条信道进行同时双向传输,此时通信的双方既是信息的接收方也是信息的发送方,两个方向上的信息传输互不干扰,我们生活中的

2016-04-22 15:02:15 3006

原创 使用ZigBee模块实现PC机与树莓派的无线通信

背景:最近在做项目的过程中看到了一份以前的学长留给我的ZigBee模块的资料,之前在和其它学院的同学一起准备某个比赛的时候听说过ZigBee是一种无线通讯模块,于是就淘宝了一下,找到了这个然后在淘宝详情页仔细看了一下,发现它用到了我之前学过的UART协议,这个协议并不是指两个模块之间的无线通讯协议,而是在某一个通信模式,某一个信道下,模块A通过串口收到的数据会从模块B的串口发出,而这两

2016-04-15 15:52:10 28582 2

原创 使用Arduino读取水流速传感器的脉冲数

这个实验也是我现在在做的一个项目的一部分,就是需要测量水的流速,然后就要用到水流速传感器,然后读取脉冲数换算得到水流速,做法很简单,只是这个测量模型搭建起来,购买材料和设备花了点时间,话不多说,来讲讲具体做法:所需设备:水流速传感器、Arduino UNO开发板,抽水水泵、水箱,水管若干,杜邦线若干水流速传感器:这个我在网上找了好久才找到合适的,我用的是这个:然后用水管将水

2016-04-12 16:47:28 15822 9

原创 Python学习笔记(二)——Python CGI编程

最近一周的时间在网上继续学习Python,接触到了Python的CGI编程,CGI的官方定义如下:CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口。我比较感兴趣的是Python CGI能写出多厉害的应用程序,所以我就直接开始学习了Python的编程部分,首先要配置Web服务器支持CG

2016-03-30 20:42:02 8089 1

原创 Python学习笔记(一)——Python函数的定义和使用

最近在一个在线网站http://www.runoob.com/上学习Python,因为我想除了专职语言之外还要掌握一门其它的脚本语言,虽然已经会Shell编程,不过因为Python独到的简介魅力吸引了我,而且在很多企业的招聘中都提出了要求会熟练运用至少一门脚本语言,所以我就开始了我的Python学习之路。Python是一门解释型、脚本语言,所以也算是一门弱类型的语言,因为在Python中虽然也

2016-03-26 10:15:38 10801

原创 解决Vmware安装Ubuntu14.04无中文支持的问题

问题背景:最近在上计算机安全与网络编程的课,所以要用虚拟机这个实验平台安装各种操作系统,一般在使用虚拟机安装Ubuntu14.04时,大家都会选择简易安装,类似于windows下一键安装系统的那种,但是这种安装方式不利于自己理解VMware这个软件给你配置了哪些虚拟硬件资源,特别是在安装Linux系统时,你打开之后会发现系统是全英文的,那看起来显然就不太友好了,网上有个关于如何设置虚拟机Ubunt

2016-03-18 09:45:39 6018

原创 使用Arduino读取水位传感器数据

首先说明一下,这是一个非常简单的小实验,是我现在所做项目的一个很小的部分,不过还是希望把它分享一下,期待看到的同行或爱好者与我交流或拍砖 我用的水位传感器是这个 淘宝链接 比较便宜,一块钱一个,但是便宜同时也有不足,因为量程太小,我用直尺量了一下,最深只能测4cm,不过好在它体积比较小而且轻便,自己可以根据需要DIY和定制,使用方式比较灵活。 说一下接线,水位传感器是通用三接口连

2016-03-15 17:01:48 24084 15

原创 使用串口连接Arduino与树莓派开发板

关于树莓派与Arduino UNO的对接,网上的资料也有不少,无外乎三种方式(USB方式,GPIO方式,IIC方式),其中最容易实现的就是第一种了,相比于第二种方式不需要额外的硬件,相比于第三种方式通讯协议比较简洁,所以我想就第一种实现方式详细分享一下。 一、首先准备必要的开发环境 Arduino:直接在官网下载最新的IDE即可:https://www.arduino.cc/en/Main/So

2016-03-14 11:26:42 17310

原创 使用Arduino读取噪声传感器分贝值

之前一直试图用树莓派读取噪声传感器的数据,然而我用的传感器只有模拟输出和电平输出,也就是说要是想检测噪声具体分贝值就只能使用AD转换模块,但是由于对AD转换模块的认识不深,所以遇到了一些困难,虽然那个时候能读取到数值,但是由于缺少正确的转换公式,所以得到的结果并不是那么正确,以下是我使用的噪声传感器的淘宝详情页链接 https://item.taobao.com/item.htm?id=38200

2016-03-06 20:41:35 19808 6

原创 用最少的工具使用树莓派进行编程

背景:在实验室用树莓派做各种实验的时候,总是需要连接鼠标、键盘、网卡、HDML转接显示器,光连接还好,在实验室总是各种器材搬来搬去总觉得特别麻烦,想调试一个程序就要先把这些环境搭好,我可不想在搬器材方面花太多的时间。 所以,我想用简单一点的方式,就是用putty直接连上树莓派之后操作命令行,有一个超简单的方法就是:在自己的PC上装一个猎豹wifi,前提是你的PC必须有个无线网卡,台

2016-03-02 12:17:29 8428

原创 http协议学习以及简单应用服务器编写

最近重新学习了一下http协议的基本原理,为什么叫重新学习呢,因为平时我们一直在用到http协议的各种应用软件以及思想,就像在浏览器地址栏敲入一个URL并按回车时,比如这样https://www.baidu.com/,在你按下回车之后就是给服务器发送了一个连接请求,然后服务器就会根据你要求的IP和端口号返回给你相应的内容,上面的URL看起来可能不太明显,再比如这个http://115.28.26.

2016-01-05 16:48:18 668

原创 对TCP/socket编程的个人理解

在最近的物联网项目中打交道最多的就是socket了,我从来没有在最近的博文中提到关于最近做的这个项目的详细情况,今天就说一下,这是一个和智能家居类似的物联网项目,不过应用物联网的场景是办公室,所以叫法是智慧办公室,大致的功能有:查看办公室的环境信息比如温湿度,PM2.5,噪声强度,光照强度,人员的在勤或者缺勤状态,可以在手机上看也可以在桌面客户端看,客户端联网之后可以实时的控制办公室内的灯光和门窗

2015-12-24 23:40:45 698

原创 服务器socket与安卓端socket对接

本周继续进行智慧办公室项目的网络环境搭建,主要完成的功能有:1.读取文件信息,写入socket发送到安卓客户端2.接收安卓客户端的灯光控制信息,写入文件储存,然后将新的状态信息返回给安卓客户端用于更新UI3.解决了socket接收到的字符串数组内存泄露bug智慧办公室的项目接手到现在,本来我是负责底层的驱动开发,但是由于原来网络传输数据处理的方式太过不妥,于是我就按照自己的意愿往下

2015-12-18 22:43:07 1614

原创 使用socket遇到的问题以及解决

在最近的项目中,要用到socket建立三个设备的连接用手机控制开灯,以前只能做到:一起开许多灯,实现原理之前也写过博客说过,非常简单,但是这次我想实现的是在手机上控制开关具体的某个灯,然后与做安卓端的同学沟通好之后就动工了,在手机上进入灯光控制界面之后就能查看当前的灯光状态以及控制开灯关灯,由于最近考试和实验课比较烦,所以项目就一直搁置着,然后开工之后遇到了一个问题,就是我要求安卓端的同学在进入灯

2015-12-13 20:40:03 1634

原创 手机控制开发板开灯

基本逻辑:在服务端写一个程序用来接收手机端的连接请求,于此同时,树莓派开发板上运行着一个死循环连接程序用来不断尝试连接服务端,一旦连接上之后树莓派便控制脚本开灯,服务器端的任务就是,判断有无手机端的连接请求,如果有,则再创建一个socket线程用来供树莓派连接。主要安卓代码如下:case R.id.open:                new Thread()       

2015-12-06 14:13:43 1168

原创 基于TCP协议的树莓派灯光控制

必备原料:1.树莓派开发板2.运行windows server 2012的服务器3.任何联网PC机原料用途:首先树莓派的用途不用多说,在此实验中就是为了用它的IO口来连接服务器获取指令信息,进而控制灯光的开启和关闭,在树莓派上运行的程序有:连接服务器的客户端源程序(C语言编写),在源程序中编写一个逻辑层——当收到PC机连接指令时,调用shell脚本进行灯光的关闭和开启动作,但是

2015-11-29 22:30:16 5015

原创 StarUML用例图文本换行

在使用StarUML进行场景建模的时候,经常会需要开发用例图,我和我的小伙伴在画用例图的时候,经常会遇到在添加用例的时候要给用例命名的情况,所以把用例的名字要写在用例的椭圆里面,但是当文本比较长的时候,像这样StarUML这个制图环境又没有设置默认的自动换行,无论怎么调整椭圆大小那段文字它就是不缩成两行,所以这对于我这个强迫癌晚期患者来讲简直是丑到爆,百度了很多方法都没有找到怎样设置换行,

2015-11-21 15:03:29 16180 8

原创 ThinkPHP框架中解决无法加载控制器的问题—原因之一

相信许多PHP开发者在使用ThinkPHP框架进行快速开发的时候遇到过通过URL访问控制器方法时遇到图上的这种问题。为什么会无法加载控制器呢,原因有很多,但是据我所了解的来看,最有可能的还是:你的Controller文件夹下没有存放你控制器的文件,因为很可能你在开始学习或者测试的时候将控制器类写在了Index控制器的文件中,但是在ThinkPHP中,在IndexController.cla

2015-11-09 20:06:25 64078 2

空空如也

空空如也

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

TA关注的人

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