自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pcd的博客

学习-实践-分享

  • 博客(45)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 寻根究底,Qt容器并行访问问题

???? 问题发现在项目QPerf维护过程中,发现了一个BUG。BUG的相关分析如下:在类WorkRequestState中有一个成员变量QVector<Record *> m_records,其值初始为空,当任务启动时,会将Record实例添加到m_records。Record类包含一个flag属性,该属性直接与当前实例在m_records中的索引绑定,比如第一个Record的flag为0,那么在m_records的索引为0.同时,WorkRequestState对象会等待其它线程

2021-04-08 15:31:25 1346

原创 VS2010开发代码版本管理

是思路,当然不仅限vs2010,也可以是更高版本。托管库不限于svn。1、svn定期自动构建,并执行单元测试;vsn服务器定期执行脚本,自动checkout代码,并使用devenv构建所有项目。使用mstest执行单元测试。若异常,通知管理员。(可通过邮件、短信等方式)2、发布版本前,开发人员使用脚本构建发布项目、执行单元测试。在本地重新checkout所有代码,执行发布脚本。发布脚本...

2019-01-30 07:59:39 795

原创 IPv4协议中的UDP分片问题

目录IPv4协议分片可能引起的问题参考文章 IPv4协议 先看一个流传得比较多的图,这里直入主题,只说与分片相关的字段。标识(identification):占16位。IP软件在存储器中维持一个计数器,每产生一个 数据报,计数器就加1,并将此值赋给标识字段。 标志(flag):占3位,但目前只有两位有意义。最低位记为MF (More Fragment)。MF ...

2018-12-20 11:23:36 10114 6

原创 IP协议头校验和

在IPv4协议中,首部检验和占16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存 时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。IP首部的检验和采用下面的简单计算方法:在发送方,先把IP数据报首部划分为许多16位字的序列,并把检验和字段置 零。用反码算术运算把所有16位字相加后,将得...

2018-08-14 22:09:21 9483

原创 真伪需求

记得之前做过一个外包项目,甲方是一家大型的国有企业。项目负责人从甲方那里采集需求,将需求整理成文档,然后做出软件原型界面给甲方负责人看,最后就在甲方的同意之下,集中开发了一年左右。 弄个出了一个我们认为可以用的版本。随后我被派去用户现场部署试用(用户不是我们的甲方,是甲方的甲方),才发现一个难过的事实:我们开发的版本离用户期望的差得太远,甚至被断定为不能使用。当然,最终我们交给了用户一个能接受的版...

2018-05-27 22:13:11 425

原创 WaitForSingleObject的一个坑

事情是这样的: 一个一年前写的异步队列近期使用频率比较频繁。导致了N个BUG被挖出。一个不到260行的代码文件(加上注释),在捉BUG的过程中,几乎被我重构了一番。以前自以为与用得挺熟的多线程操作也被我发现了几个潜意识中的错误。最后在微软帮助文档中才找到了正确答案。。。。异步队列主要需要面临的问题是资源的竞争与同步,那么我们也最有可能在此犯错误。我写这个异步队列

2018-01-22 21:33:07 5927 2

原创 简单即完美

记得第一次在项目组中独立设计一个功能时,我花了很多时间组织业务模块,然后又花了将各个类的交互图、类图。全部搞定后,又手把手编写了全部源码。 最后找人维护时候,发现每次都要解释很久才能将我的想法说清楚。  当时并没有意识到是哪里出了问题。   首先我的设计是可行的,这是在源码中实现就能够说明的。其次,类之间的耦合并不高,每个类都各司其事,真正依赖的是接口之间的依赖关系。   业务流程呢,本身

2017-07-23 21:12:57 319

原创 禅宗与道教

相传释迦摩尼在灵山会上,对着百万人天,默然无语,只轻手拈花,环视一转,大弟子摩诃迦叶会心一笑便得释迦微妙法门的真传。摩诃迦叶为印度禅宗第一代祖师,传到第十八代菩提达摩大师见东方有大乘气象,便渡海往东。到广州上岸遇梁武帝语不投机,北行止于嵩山少林寺,面壁而坐。后遇神光慕名而至,断臂求道,遂传于第二代祖师神光。直至慧能听到金刚经“应无所往而生其心”后大彻大悟,受五祖亲授衣钵为六祖。

2017-06-30 20:25:56 1427

原创 vs2010在win10 64bit环境中卡顿的问题

vs2010在编辑状态使用Ctrl+C等快捷键总会卡顿那么0.5秒-1秒。非常影响编码效率。安装vs2010 sp1即可解决亲测可用地址

2017-06-04 06:21:23 1775

原创 使用HandleSpy定位托管代码句柄泄漏

引子 我们知道句柄泄漏原因多种多样,一般泄漏的对象主要是内核句柄 、 文件句柄、互操作句柄等。由于Framework的GC帮我们干了很多事情,所以很多C#程序员养成了吃饭后不洗碗的习惯,new出来的对象基本不考虑如何清理。一般的对象当然不用考虑,但是遇到需要释放的对象(如IO操作、内核对象创建等),忘了释放,那问题便产生了。环境说明本文所有演示均在win7 32位。需要安装

2017-05-21 18:10:33 1793

原创 怎样才能算得上是技术牛人?

当年勇敢放弃大学几年的行当,投入此行之初便有一个小小的目标:不远的将来,成为一位人人敬仰的技术牛人。如今已是而立之年,回想当初定下的小小目标,却又有一些不安,如今的我,离心目中的那个目标又相差多少呢?定义“技术牛人”: 记得那年刚刚出来找工作的时候, 面试Android开发,面试官问我的目标。答:学好技术,精通Android。问:如何才能算得上精通android?答:掌握所

2017-05-05 21:25:15 744

原创 开源的GIS - GMap.Net

推荐一款pc桌面的开源GIS开发库,觉得不错,满足GIS的基本要求,又不需要ArcGIS那么复杂的授权。说说优缺点吧:优点: 开源,使用无需商业授权源码结构清晰 支持多种离线、在线地图。 可扩展性强 安装方便(仅两个动态库)使用简单缺点: 仅支持.net平台 源码易读性不强(或许这个结论下得太早,大致看了结构比较清晰,但是单个的文件动辄几千行,真读不下去)需

2017-04-22 15:07:41 1086

原创 OpenGL实现瀑布图的一些思路

本文仅为OpenGL学习与实践过程中的一点记录。。。

2017-04-11 06:04:45 2963 3

原创 C#互操作之GC回收陷阱

起因其实这得从好多年前的一个BUG说起.那一年,  刚刚接触C++不久, 遇到的一个空引用之类的错误,反复调试却没有发现C++有任何的问题 单独跑C#测试也没有任何问题,  屏蔽C++的回调才找到出问题的地方。示例代码为了复现那个BUG的样子,我甩个DEMO出来。C++的代码是下面这样的,公布SetCallback函数,由C#设置回调地址,然后在C++非托管线程中不断调用该...

2017-03-23 21:12:03 1090

原创 互操作之DotnetFramework跨平台解决方案

首先说明下,这里“跨平台”是指Windows下的32位与64位平台,不涉及windows以外的平台。 以前的项目都是x86平台下运行, 自然也没有考虑过 DotnetFramework 跨多平台解决方案 这个问题。最近在实现不同平台运行的时候发现有些与我之前想法不符合的地方。于是便决定记录下来。平台dotnetframework 下配置解决方案平台有四种类型:Itanium 、...

2017-03-18 08:51:36 849

原创 无题

有两个比较深刻的事情分享下. 前段时间在知乎上看到一个关于Visual Studio 与XCode 两个IDE哪个更强的提问, 答题者几乎均将喜好偏向了VS(毕竟vs是宇宙第一IDE嘛). 但是有一位答主看到VS被称为宇宙第一IDE后很不服气, 说自己的公司就是开发IDE的, 每套IDE能卖50K美刀. 为了说明自己公司的IDE有多么厉害, 答主还特意列举了好几个自家IDE值得一提的特性.

2017-03-04 21:12:07 338

原创 win编译安装 protobuf3.2

安装目的在windows中安装 protobuf cpp版本 安装说明本机环境如下 - win10 x64系统 - MS VS2010 - protobuf3.2 源码下载地址 - CMake 3.8安装包 下载地址编译环境设置开始菜单中找到VS目录, 运行Visual Studio x64 Win64 命令提示(2010) 命令窗口会出现 Setting environment

2017-02-17 06:55:44 2332

原创 摆脱软件作坊

背景作为一名从事软件开发六年的程序员. 我觉得软件开发方法论是我当下不得不面对和深思的问题. 自己是半路出家,也许对整个行业的认知也不如一些从业者那么敏感. 从业这几年中本人遇到不少公司,对开发的态度也是大相径庭. 但这与公司的规模并没有太直接的因果关系(当然我这里说的”公司”主要是中小型企业).在如今这个时代背景下,中国以及中国的IT企业正一步一步与世界接轨. 我不太清楚一个真正国际企业的状况,

2017-01-15 07:53:50 1021

原创 新年新BUG

新年的第一天清晨便接到用户的电话,程序跑不起来了。电话沟通了半天才发现修改系统时间就没问题。  后来接二连三收到用户出问题的消息,whats wrong? 难道程序引入了一个“千年虫“的bug?

2017-01-01 17:00:34 386

原创 一次笔误导致的bug

事情是这样的,我在程序中要实现一次内存copy,然后使用copy后的内存做算法。算法出来的结果始终不正确。起初以为是算法的问题,后来绕了点弯子,发现拷贝内存这里无论如何都不正确。内存拷贝的代码是这样的memcpy_s(pDst, iDst_len, pSrc, sizeof(ipp32fc) * iArrayLen)pDst是一个char类型的数组,pSrc是一个Ipp32fc类型(IPP

2016-12-07 07:31:21 509

原创 C++删除空指针的一个坑

最近使用了项目公共库中看起来很稳定的一个消息队列类(前同事留下的),起初用得还挺好。后来程序中突然出现了内存暴涨的情况,最后定位下来是这个类的问题。随后花了一些时间定位出现问题的代码,其实在DEBUG时都没有找到问题代码,真正找到问题是凭着感觉在一堆代码里揪出了这样一句话:delete (void*)lParam; 灵感突现,这句应该有问题。当时在办公室,不能上网且手里又没有现成的参考资料,于是随

2016-12-03 07:24:52 1900

原创 C#中的线程之线程同步

写在前面 之前写过一篇博客,C#中的线程之Abort陷阱,最近比较忙,没时间写后面的内容,恰好今天偶然看到一个技术问答。线程抢占执行怎么使10-20连续输出 。回答该问题顺便写了几个例子,于是就有了这篇博客。问题描述 主要解决的问题是让两个线程代码能按照一定的顺序执行。题主抛出的代码是这样的:// 需要让打印出来的结果顺序输出 static void Main(string[] args)

2016-11-13 15:17:31 540

原创 ZeroMQ中的消息信封之二

目的不久之前,我写过一篇BLOG ZeroMQ消息信封,介绍了REQ、REP、ROUTER、DEALER几种消息信封的格式。前两天我又回头看了该文章,试图回忆起相关的知识。才发现真是写得一团糟。为了重新理清几种socket的信封,于是有了这篇blog。几种常用形式我决定还是通过ROUTER套接字的几种组合入手,对比几种消息信封。毕竟ROUTER是比较纯结的,收到数据加地址帧,发出的数据拆掉地址帧。与

2016-11-07 07:24:24 2228

原创 C#中的线程之Abort陷阱

C#中的线程陷阱之Abort1.简介 C#中通常使用线程类Thread来进行线程的创建与调度,博主在本文中将分享多年C#开发中遇到的Thread使用陷阱。 Thread调度其实官方文档已经说明很详细了。本文只简单说明,不做深入探讨。 如下代码展示了一个线程的创建与启动 static void Main(string[] args) {

2016-10-23 21:28:28 22102 2

原创 ZeroMQ中的消息信封

几种ZeroMQ socket信封格式本文仅仅简单介绍zs的REQ、REP、ROUTER、DEALER信封,作为阅读ZeroMQ资料笔记REP socket信封REP存储所有的消息帧,直到第一个空消息帧到达,应用层才接收到一个 消息。 发送回复的时候,REP才将已保存的信封附加到消息中,然后使用与ROUTER一样的语义发送(事实上REP也构建于ROUTER之上),但是为了匹配REQ,REP必须强制遵

2016-09-29 18:00:00 1302

原创 不合格的程序

最近维护前同事的一个小程序。该程序于2014年年底便完成了编码工作,并在2015年在实际环境部署过程中维护了差不多半年。我作为该项目直接管理人,并没有详细了解这子项目内部的东西。而2015年的维护基本是该同事一个人陪着用户在修改,我也没有管详细的过程。只记录了下程序存在的比较严重的BUG。该同事今年初离职。离职前,我问之前那些BUG修改得如何。他说所有BUG都已经修改完,没有新BUG了。由

2016-09-24 20:59:48 537

原创 让ZMQ在windows中成功支持PGM

为了弄明白ZMQ中的PGM协议,博主焦虑了不少。总结原因:1、ZMQ的中文文献太少;2、ZMQ在windows下的文献太少;3、国内不翻墙能访问的网站太少。遇到一个看起来不那么棘手的问题好了,言归正传,本文仅记录博主的艰辛历程。在官网下载好ZeroMQ源码后,编译好,然后按照文档写出Pub-Sub模式的测试代码。竟然在bind的时候就报错 void *publishe

2016-09-11 16:56:31 4664 14

原创 开始学习一个同事推荐的通讯库

某同事离职一年多后,某次聚会上相谈甚欢。我当时正在琢磨着找一个稳定并且夸平台的开源框架应用到项目中。于是他推荐给了我两个,一个是thrift,一个是ZMQ。后来项目的事情拖了很久,上班时间又没法上网学习。于是我就利用那段空闲,一个多月的加班自己封了一下win32的socket,临时先用下,顺便熟悉下windowsAPI的编程。结果事情有点超出了预期,我自己写的通讯库直接就在项目里面用起来了。不

2016-09-03 08:54:08 527

原创 大蟒蛇之旅

最近在学习Python语言,书看的2.x的版本,实际环境安装的3.x版本。开始想到一般版本不会相差太大吧?但是正是写Demo的时候才发现这个Python真是独具匠心,3.x的标准库做了相当多的修改,以至于2.x版本的源码基本不能用。这对使用者来说真不是什么好事,Python现有有很多可直接使用的第三方库,相信这些库的开发者也面临着依次艰难的选择:放弃2.x版本的维护,拥抱3.x;或不支持3.x,继

2016-08-27 15:42:26 392

原创 Python3的两种HTTP请求实现

初学Python,近两天在考虑写个爬虫玩玩,于是了解了下大蟒蛇的标准库。既然是初学,那我应该知道如何用才行。使用搜索引擎也全是收到的python2.x 的内容,于是就用2.x 的用法在3.x的文档上搜索了下。知道了两种请求http的基本用法。第一种方法:使用urllib.request.urlopen()import urllib import urllib.parseimport

2016-08-15 07:00:53 20318

原创 永恒之道

当我的角色还是一名学生的时候,其实我是拒绝看书的。在大学快毕业的时候,突然对计算机的狂热,让我逐渐翻开书本,找寻那片不一样的天空。刚开始只是计算机方面的,后来延伸到小说、社科、历史、体育。阅读面越来越宽的同时,我在不少书中也受益匪浅。

2016-08-13 10:38:00 352

原创 与时代脱节

与时代脱节我是一个与时代脱节的人,这个事实不需要谁告诉我。但是我没有想到脱节得如此厉害。 今天我怀着比较无聊的心情打开了gitcafe.com ,结果发现这网站已经被coding收购。 而我又手贱抱着玩一玩的心态,发现上面竟然有个WebIDE, 那用着简直太赞了,像php/ruby之类的脚本,根本不用本机部署环境,直接在云上跑。 这一切看得我傻眼 …在经历了三年多的隔离网络开发工作后,我

2016-07-31 19:21:02 868

原创 UDP丢包的问题

最近在忙着解决一个UDP丢包的问题。首先说说环境。网络环境很理想,万兆内网,主机之间使用一台光纤交换机连接并无任何中间节点;环境中的所有主机操作系统均为win2008Server x64 128G,CPU 32核 2.8GHz一台主机发送数据(通过UDP组播),其它主机接收发送数据的主机开启8路组播端口,每路发送数据很均匀为51.2MBps。(总数据量为8*51.2Mb

2016-07-28 21:57:48 1829

原创 VC使用动态库关于/MD与/MT的一个坑

项目中使用一个动态库,导出了一个方法void Test(string tt); 这个方法包含一个string类型的参数。在测试项目1中使用该动态库的Test导出方法,无论如何都会在释放参数tt的时候报错。当然,上面的定位到的结果是调试了一天的成果。最后实在没有办法,新建一个动态库项目与测试项目2,使用导出Test,却发现没有报错。然后将新建的动态库使用到测试项目1中,毫不犹豫地报错

2016-07-28 20:21:39 6760

原创 vs调试c++源码无法加载断点

突然发现所有的c++项目在调试的时候加断点都会报错:”不能设置下面的断点。。。。。断点未能绑定”。起初以为是项目的设置问题,找了各种可能的原因, 包括pdb文件的设置、debug/Release设置,然后发现所有项目都是这样重启vs、重启电脑, 最后论坛求助, 发帖求助链接   都准备重装vs了。然后在vs设置中找到了罪魁祸首 工具-》选项-〉调试-〉编辑并继续-〉启用本机编辑

2014-12-07 20:05:18 3463 2

原创 C#互操作的内存溢出问题

c#调用C++DLL代码,发现了一个隐藏很深的问题。 危害很大,而且不易察觉。大概是申明c++的函数时候,有一个long类型的指针。在C#中我的申明成了这样:public extern void Method(ref uint para);最初怎么也没有发现这里面有什么问题,知道这个隐藏的问题暴露出来,把前面申明的一个变量改变了, 我才恍然大悟。uint test =

2013-10-09 00:24:02 3105

转载 Multiple Screen

A set of four generalized sizes: small, normal, large, and xlarge A set of four generalized densities: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)http://developer.androi

2011-12-16 11:34:37 590

原创 android 自定义日历控件

项目中需要一个日历的控件,但找了半天,2.x的版本好像只有个DatePicker可以用。  很难看的。。。。后来发现好像3.x的有自带CalendarView  ,本想移植过来,可又发现貌似3.0的源码还没有开放。 于是在google code里找了个开源的Calendar http://code.google.com/p/android-calendar-view/界面还将就,不过有

2011-11-23 23:22:44 1825

原创 今天去面试,才发现自己忽略了很多东西

面试的老大给我小谈了下,他问我认为什么样子才算是我所谓的“安卓高手”,我回答,是对Android的API很熟悉,且熟悉android的底层原理。他提醒我,你完全没有考虑java的重要性,你是不是认为java只是个程序设计的工具。我说是,我一直都是这样认为的,但他又说,其实

2011-10-10 23:27:29 653

原创 ListView中加入LinearLayout【二】

这个主要是补充《ListView中加入LinearLayout【一】》中的一些限制在【一】 中,我试了很多方法添加网络上的图片,在无数次失败后,终于成功添加。{此方法不建议使用  要用listView建议重写BaseAdapter的getView方法  自己想怎么定义Adapter就怎么定义  就不用费这么大的周折了-----2011.11.23}这个就要用到Android

2011-07-25 10:14:01 1268

OpenPGM-5.1.118_for_Windows_x86_x64

在官网上下载的OpenPGM-5.1.118,内含x86与x64安装包。安装后有examples文件、inc文件、lib文件。

2016-09-11

android 日历控件

用google code上的一个开源代码做的修改 原源码地址:http://code.google.com/p/android-calendar-view/ 修改说明: 1、展示在一个日历的时候,区分上下月和当前月 2、点击非当前月的日期,直接跳到该月的界面 3、添加了标记当前所选的功能 4、添加年月显示及上下翻页功能

2011-11-23

android新浪微博客户端源码+部分完善的SDK源码

本项目是我利用业余时间做的。主要 1、根据新浪微博官方提供的Android的SDK(http://open.weibo.com/wiki/index.php/SDK#Android)和API文档完善了下SDK的内容(主要是对Json的操作和交互数据的一些封装。) 2、做了一个新浪微博的客服端Demo,写了简单的几个功能,没有做UI(也不太会做UI)。 3、项目并未完善,还有很多小BUG需要改进。(重新写了SDK后发现有些功能使用不了) 4、由于新浪微博APi接口有限制,所以部分功能不能实现,而且在请求频繁的时候容易出现401错误 5、项目的架构没有做好,因为开始只是抱着学习的心态,想到什么写什么。 包的说明: com.pcd.weibo----------------------所有Activity的类 com.weibo.new----------------------官方提供的SDK包 (其中Weibo.java是我扩展过的) weibo.data-------------------------微博中需要用到的数据结构 weibo.extension--------------------其它的类,包括对SQLite的操作、图片的转换等一些自定义的一些类

2011-10-26

Windows 文件系统过滤驱动开发教程

我经常在碰到同行需要开发文件系统驱动。windows 的 pc 机上以过滤驱动居多。其目的不外乎有以下几种: 一是用于防病毒引擎。希望在系统读写文件的时候,捕获读写的数据内容,然后检测其中是否含有病毒代码。 二是用于文件系统的透明附加功能。比如希望在文件写过程中对数据进行加密,数据个性化等等过程,针对特殊的过程 进行特殊处理,增加文件系统效率等。 三一些安全软件使用文件过滤进行数据读写的控制,作为防信息泄漏软件的基础。 四也有一些数据安全厂家用来进行数据备份与灾难恢复。 如果你刚好有以上此类的要求,你可以阅读本教程。 文件系统驱动是 windows 系统中最复杂的驱动种类之一。不能对 ifsddk 中的帮助抱太多希望,以我的学习经验看 来,文件系统相关的 ddk 帮助极其简略,很多重要的部分仅仅轻描淡写的带过。如果安装了 ifsddk,应该阅读 src\filesys\OSR_docs 下的文档。而不仅仅是 ddk帮助。

2009-09-13

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

TA关注的人

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