- 博客(65)
- 问答 (1)
- 收藏
- 关注
原创 python使用KDDockWidget
编译原理:KDDockWidget是一个C++库,是通过shiboken转成python的。注:本次编译,Qt版本统一指定为6.4.2,库支持Qt==5.15或6.2.0以上版本。针对特殊版本,需要在cmake文件中增加一些变量。备注:还不支持python qml,
2023-04-24 19:42:58 631
原创 vs2017查看QT变量值
参考资料:https://blog.csdn.net/loveyou388i/article/details/88415649https://github.com/inviwo/inviwo/blob/master/tools/natvis/qt5.natvis.natvis文件用于调试时候自定义显示自定义类型的可视化提示。一般这类文件存在C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Packages\
2020-05-14 18:42:34 1428
原创 react-18next使用
概述项目之前没有考虑过国际化相关的事情,但是最近要搞出一个国际化的版本在国外的展会上面展示,于是加紧时间,两个人花了2天时间替换了所有的中文,替换的手都酸了使用参考文档:https://react.i18next.com/例子:https://github.com/bkthrough/react-i18next-demo1.国际化文件json文件,每种翻译对应一个文件,内容可以带有变量...
2019-06-10 11:08:29 2287
原创 electron-builder给程序数字签名,出现Can't sign app: The specified timestamp server either could not be reached
使用electron-builder出现错误:Can’t sign app: The specified timestamp server either could not be reached or returned an invalid response.解决方案:修改package.json为{ "build":{ "win":{ "ico...
2019-01-07 17:55:04 5625
原创 js使用protobuf
使用的是protobufjs,要注意这个库适用于nodejs。我的项目使用的是react,直接使用proto文件会稍有问题,通过把引入的proto文件用pbjs命令转换为为json文件再使用即可。下面的例子也是把proto文件转换为json文件使用的1.安装环境注意pbjs这个npm包需要全局安装,因为要使用pbjs这个命令npm install protobufjs ...
2018-06-08 17:33:22 18835 3
原创 es6使用websocket同步等待方法
开始学习nodejs,并不懂很多东西的使用,尤其是websocket这个东西。通过网上搜索发现websocket是异步并且没有同步接口。这个就让人很头疼,因为我做的项目需求必须整个流程达到同步效果。经过长时间的查找,居然发现了一个类似于c++里面signal的库,真的是让我欣喜若狂,而且使用很方便,下面介绍一下这个库和使用方法。库路径:https://github.com/akira-...
2018-03-19 14:28:11 13845
原创 stun、turn、ice介绍
在介绍stun、turn、ice前,不得不说一个很重要的东西:NAT。NAT也是上面三个的基础。NAT模式Network Address Translation,网络地址转换。网络分为内网和外网。有一个道理:内网可以访问外网,但是外网并不能访问内网。而NAT的出现解决了这个问题,有了NAT的存在,外网也可以访问内网(前提是内网需要先访问外网)。NAT包含四种类型:
2018-01-12 20:55:46 6551
原创 webrtc的sdp相关结构2
sdp结构简介sdp在JsepSessionDescription这一个结构中,下面主要分为SessionDescription和JsepCandidateCollection。本文介绍JsepCandidateCollection。JsepCandidateCollection在sdp中通过a=candidate,a=rtcp表示,从字段数量看起来和SessionDescription是
2018-01-12 20:53:55 1365
原创 sdp相关字段的rfc及意义
1.a字段1.1 crypto属性 a = crypto:tag> crypto-suite> key-params> [session-params>] a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:d0RmdmcmVCspeEc3QGZiNWpVLFJhQX1cfHAwJSoj|2^20|1:32标签:用于在offe
2018-01-07 22:10:00 9318
原创 webrtc的sdp相关结构1
sdp结构简介sdp在JsepSessionDescription这一个结构中,下面主要分为SessionDescription和JsepCandidateCollection,本文介绍SessionDescription根据webrtc的SessionDescription数据结构,主要分为3个,分别为ContentInfos,TransportInfos和ContentGroups
2018-01-07 22:08:30 1366
原创 unicode和utf8的区别
之前一直对字符的格式都没有了解,直到昨天看了一下ngx的utf8decode函数,完全看不懂,而且近来编译程序也遇到了很多字符格式的问题。所以就查询了一下字符的格式具体含义,不得不说知乎真的是个好地方!!unicode是字符的编码格式,从u0000到u10FFFF,至少100多万的字符表示,里面的每一个二进制的数都唯一表示一个符号utf8即Unicode Transformation Format
2017-11-25 00:56:25 1527
原创 qt不同线程emit信号需要使用qMetaType
在使用中遇到了”emit信号,但是ui线程并没有收到”的问题,经过排查发现如果信号函数没有参数ui县城可以接收,但是有参数就不能接收。 原因是在qt中这样的局部变量需要通过”注册元数据”的形式先注册才可以使用解决方案:在main函数中写 qRegisterMetaType<"类型">( "类型" ); 如类型是string,那么写 qRegisterMetaType<std:
2017-11-05 20:59:45 1669
原创 使用nsis打包程序
nsis下载地址:http://www.pc6.com/softview/SoftView_14342.htmlnsis使用启动NSIS程序主界面,选择“可视化脚本编辑器(VNISEdit)”菜单,开始制作自己的安装包 选择“使用脚本向导创建新的脚本文件”,确定 进步脚本向导,下一步 第一步,这里填写应用程序的一些基本信息,下一步 第二步,这里是选择安装包的图标...
2017-10-31 10:01:21 3252
原创 使用QT出现"using null output device none available"
今天导师需要我的音频小程序,所以我把小程序的.exe文件和库都拷贝到他的电脑,本来欢天喜地以为可以了。 结果却弹出using null output device none available。 坑爹啊,google和百度都没找到结果,不断尝试,最后把plugins的目录直接考进去然后一个个删掉终于找到了原因出现这个是因为没有audio的包,把Qt/Qt5.8.0/5.8/msvc2015/pl
2017-09-20 17:28:05 4656 2
原创 opus编解码的使用
opus简介以及优点:Opus是一个有损声音编码的格式,由Xiph.Org基金会开发,之后由互联网工程任务组(IETF)进行标准化,目标用希望用单一格式包含声音和语音,取代Speex和Vorbis,且适用于网络上低延迟的即时声音传输,标准格式定义于RFC 6716文件。Opus格式是一个开放格式,使用上没有任何专利或限制。
2017-09-18 11:43:34 15610 4
原创 python多线程爬虫学习--urllib的使用
urllib是访问网址的利器。通过几个函数就可以轻松获取请求网页的状态,网页的内容等信息具体函数如下:urlopen(url)read()close()实例:import urllibpage=urlopen("http://blog.csdn.net/myiloveuuu/article/details/77411771")html=page.read()pa
2017-08-21 23:27:13 455
原创 python多线程爬虫学习--Queue
Queue是python多线程安全的队列实现,封装了数据结构中的队列,保证了线程之间使用队列同步数据不会出错。也就是说使用Queue就不用使用锁去同步数据。Queue默认构造的大小是无限的,也可以在初始化时指定队列大小:Queue q(10)Queue的使用函数:get():获取队列头部元素,并且把队列中该元素弹出put(元素):插入元素到队列尾部qsize()
2017-08-19 14:18:28 828
原创 python多线程爬虫学习--去除html的标签
import reimport urllibpage = urllib.urlopen("http://www.baidu.com")html = page.read()pattern = re.compile(r']+>', re.S)result = pattern.sub('', html)print resultre.compile返回的是一个正则的表达的
2017-08-16 00:29:16 4520
转载 python多线程爬虫学习--去除字符串中间空格
python去除字符串中间空格的方法1、使用字符串函数replace>>> a = 'hello world'>>> a.replace(' ', '')'helloworld'12341234看上这种方法真的是很笨。2、使用字符串函数split>>> a = ''.join(a.split())>>> print(a)helloworld1234123
2017-08-16 00:07:12 3215
原创 "win7便笺元数据损坏,便笺已将其恢复为默认值"如何修复
当你遇到这个问题时,说明你了解了一个非常简洁实用的工具,这个stickynote确实好用,妈妈再也不用担心我忘记下面需要干啥啦。下面来讲一下如何处理这个问题:百度上面有两种说法:1.删除注册信息,我尝试失败。2.注册.dll动态库到注册表中,这个是可以的,在其中会遇到一个坑,我下面也会说明。注册.dll方案:便笺:InkObj.dll 和
2017-08-13 13:38:28 25692 4
转载 git如何更新fork的repository
Fork一个别人的repository,做了一些改动,想提交pull request的时候,发现原先别人的repository已经又有了一些更新了,这个时候想使得自己fork出的repository也得到这些更新,即和原repository同步,该怎么做呢?这个问题应该被问烂了,stackoverflow上也有解答,基本上是指向的GitHub上的官方文档。最主要的是这2篇:https://he
2017-08-05 12:05:31 1220
原创 c++解析wireshark中的rtp包
1.使用wireshark抓取rtp的包,点击一下你要解析的某一个包,然后点击左上角的“文件”-->“导出分组解析结果”-->“As JSON”-->选择"select packet"-->点击"保存"2.现在打开保存的json文件可以看到对应的信息,比如rtp的传输内容的信息,包头的信息等。c++具体操作为:通过c++获取文件操作,先把json文件中的数据读取到一个string字符串
2017-07-29 14:43:51 1934
转载 linux查看当前加载的所有动态库
因为之前用的一个动态库现在要换一个版本,所以就想看一下这个库是否还在加载。转自:http://blog.csdn.net/leo115/article/details/7773887在我们做Linux开发的时候,往往会出现 某些库 can not found 的情况,在我们添加了这些库之后,如何查看这些库的路径是否被识别了呢?下面介绍一个命令:ldconfig
2017-07-27 14:35:08 15085
转载 二阶魔方的还原
吐槽一下360图书馆,拷贝一下都要登陆真的难受。下次可以研究爬虫去爬它了。第一步:完成一面以此当作底面,假如我们先转红色一面(注意:第一层四个侧面的颜色也要一致)就像下面的样子第二步,完成顶面颜色把魔方颠倒过来,红色作底面现在我们只看魔方顶面,会有以下7种情形(假设顶面是橙色,除底面和它相邻的四个侧面的颜色,剩下的一种颜色是顶面颜色),然后对照相应的公式,转一次
2017-07-22 14:48:29 4906
原创 了解winpcap库编程
winpcap是windows系统网络抓包的一个库,在linux中也对应一个库为libpcap,两者使用是一样的。1.pcap_lookupdev():查找网卡设备char *pcap_lookupdev(char *errbuf)errbuf为出错信息,如果出错errbuf会有内容,返回值为设备名指针(返回NULL说明未发现设备)2.pcap_lookupnet():
2017-07-22 14:18:21 1377
原创 wireshark的使用
1.对于wireshark的文件保存有多种情况。如下图所示,使用“导出特定分组”,会弹出一个对话框,其中可以选择只保存显示的包,或者一定范围内的包,或者所有都保存。这个的优点在于可以先使用过滤器筛选出适合的包,然后统一保存到一个新的.pcap文件中,方便查看。 2.如果想查看总的统计情况,可以通过“统计-->捕获文件属性获知”,里面有总的数据概况:数据的传输速率,统计总包个数
2017-07-22 14:02:21 2087
原创 python爬取csdn的博客内容
首先说明爬虫的大体结构可以通用,不过针对字符串的匹配是不能通用的,比如你用爬取csdn的代码想去爬取博客园就是不行的了,因为爬取的字符是根据对应的html内容设置的。使用python构建爬虫程序有一个简单的套路,我总结为3步走:1.re.compile设置查找的字符串样式2.page = urllib.urlopen打开网页,page.read读取网页内容3.re.search/r
2017-07-16 23:59:29 3168
原创 毕业了
猛然之间就毕业了,突然有点想念大学的生活。即便是无聊到在宿舍睡觉想来也是一种享受。回想一下大学的四年生活还算充实,有大一时候傻傻的出去跑兼职,在学校各种摆摊。大二时候各种逃课去外面玩,大三开始为了找到工作而努力学习,去面试兴趣小组因为基础的链表没有通过而去写了一本的链表增删改查,还有链表的头插法我看了3天想了3天。自己并不聪明,在学习生活的道路上面遇到了很多的挫折和问题,真的感谢生活中遇到的每一个...
2017-07-01 08:45:09 338
原创 vs编译安装protobuf
好久没有更新过博客了,二月之后来实习一直都在做测试服务器的东西,做到现在也是差不多了,现在也不是很忙,就记录一下自己做的时候的一些心得体会,或者安装基础软件的一些方法,本文就来介绍一下protobuf的安装1.下载protobuf的源码:https://github.com/google/protobuf/为了以后方便同步,尽量使用git下载源码,而不是压缩包注:目前已经更新到
2017-04-09 12:27:26 3383 5
原创 编译opencv出错的解决方法
最近想使用一下opencv,就从官网下载了一个opencv的源码包,自己动手编译运行发现有error,网上一查发现是有一个包他的hash校验是有问题的,之后从csdn上面找到了这个包从新下载下来编译运行就ok了。这个有问题的包是 ippicv_linux_20151201.tgz 下载地址是http://download.csdn.net/download/chu_ying
2016-12-05 10:50:01 2512
原创 初探cmake
今天要尝试编译一下opencv,发现并不是用我熟悉的makefile来编译的,网上查阅了一下资料发现原来需要用到cmake这款工具,貌似和make只差一个字母的东东为什么opencv要用呢,这让我十分好奇,经过了查询,发现还是二者有一定的区别的。 Make(或者说一个Makefile)是构建系统 - 它驱动编译器和其它构建工具来构建你的代码。“Make”是一个工具,它控制可执行文件
2016-12-05 10:36:32 432
原创 linux检测文件和目录变化的api------inotify
最近遇到了一个问题就是如何去查看一个目录下是否新增加了一个文件,千方百计终于搞到了很好的武功大法------inotifyinotify是用来监视文件系统事件的机制,在Linux 2.6.13内核中引入。该机制可以用来监视文件和目录,当文件或目录发生变化时,内核会将文件或目录的变化发送给inotify文件描述符,在应用层只需调用read()就可以读取这些事件,非常的方便。更好的是,inotif
2016-11-23 00:33:24 6431 2
原创 西安翼迅网络的破解尝试
因为本人是学习linux的,所以想这要是翼迅可以在linux上使用就比较完美了,但是翼迅并没有linux的版本,所以想试着破解一下翼迅客户端。注:目前没有破解出来,希望懂的大神给予一些指导。我的想法是抓包工具抓出来交互的包,然后自己写代码完成交互流程(想象的总是很美好)。开始使用wireshark抓到了一些包,就是pppoe的链接的包,具体是ppp lcp协议去建立一个回话,然后ppp c
2016-11-11 12:10:00 3655
转载 wireshark找不到接口的处理方法
问题:wireshark提示没有一个可以抓包的接口解决方案:以管理员的身份在cmd中输入命令 net start npf ===============================================================================================================================
2016-11-07 22:25:21 87232 15
转载 linux内存--高端内存
好久都没有更新过博客了,感觉找完工作人都是松下来的,今天看了下《linux内核源码剖析》里面的内存这一章,里面有个高端内存看的我晕晕呼呼,上网看到一片文章不错,拿来分享一下,这个介绍的很好,不过有一些地方还是没有很懂,比如为什么64位的机器不用高端内存?有人解释说因为linux的内核和用户占内核是3:1,那么对于64位机器,即便是占用38位,也就是2048G,那么内核可以映射512G,不是很懂,这
2016-11-07 22:09:14 385
转载 Zookeeper的选举
今天实习老师讲课讲zookeper,老师很牛,可惜我太渣没有听懂,在网上看资料,找了蛮久的,终于找到一个比较好的介绍zookeper选举的一篇文章,分享一下。先说一下我自己的理解吧: zookeper就是应用于分布式的一个软件,可以用于集群,分布式的锁,队列(其他的不太清楚) zookeeper的选举可以类似于一个领导的选举,所谓一山不容二虎,对于分布式在一些场景上更是如此,
2016-07-19 23:55:30 1233
转载 c++单例模式
今天看到一片比较好的博客,是讲单例模式的,贴出来与大家共享。1. 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态。真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。 2. 当仅允许类的一个实例在应用中被创建的时候,我们使用单例模式(Singleton Pattern)。它保护类的创建
2016-05-23 23:02:05 405
空空如也
c语言栈的平衡符号的问题
2015-06-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人