2016年5月30日
摘要: 最近的项目用到了QT 5.5,项目在运行过程中出现了一段时间CPU占用率持续25%,并频繁断网的情况,遂决定对代码进行优化,本片随笔记录了几个主要的优化功能。 阅读全文
posted @ 2016-05-30 22:53 chinese_submarine 阅读(6791) 评论(0) 推荐(2) 编辑
  2015年8月28日
摘要: 1.环境和所需工具安装1. 安装python-2.7.9.exe2. 安装mercurial-3.2.3.win32-py2.7.exe3. 安装mercurial-3.2.3-x86.msi4. 安装tortoisehg-3.3.2-x64或者tortoisehg-3.3.2-x865. 安装wi... 阅读全文
posted @ 2015-08-28 23:41 chinese_submarine 阅读(2831) 评论(0) 推荐(0) 编辑
  2011年8月10日
摘要: 1.准备工作1.下载svn客户端和svn服务器可以去http://subversion.apache.org/packages.html 找到自己平台的客户端和服务器。因为笔者的平台是windows,所以选择了TortoiseSVN和Win32Svn。2.安装花生壳去官网下载花生壳软件,并申请护照,就可以得到一个二级域名,这里就不累述了。2.网络的搭建由于笔者的网络是通过路由器联网,所以需要将路由的端口映射到内网的ip。针对tp-link路由,具体的步骤是:1.进入管理员页面。2.设置IP与MAC地址绑定。当然这项也可以不设,不过因为内外IP会变,所以可能每次都要设置,很麻烦。3.设置虚拟服务 阅读全文
posted @ 2011-08-10 22:59 chinese_submarine 阅读(8718) 评论(0) 推荐(1) 编辑
  2011年7月21日
摘要: 如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策 略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs, 一个基于内核的动态设备文件系统,他首次出现在2.3.46内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建 的设备文件是动态的。但是devfs有一些严重的限制,从2.6.13版本后移走了。目前取代他的便是文本要提到的udev--一个用户空间程序。目前很多的Linux分发版本采纳了udev的方式,因为它在Linux设备访问,特 阅读全文
posted @ 2011-07-21 11:38 chinese_submarine 阅读(743) 评论(0) 推荐(0) 编辑
  2011年1月26日
摘要: 简介极大极小博弈树(Minimax Game Tree)用于编写电脑之间的游戏程序,这类程序由两个游戏者轮流,每次执行一个步骤。当然,所有可能的步骤构成了一个树的结构。例如下面的图就是一个MGT,它表示了Tic-Tac-Toe游戏的前两步所有可能的步骤。在每一层中的节点通常代表不同游戏者的选择,这两个游戏者通常被称作马克思(MAX)和米恩(Min)。例如如果第二层是Max turn,则第三层就是Min turn,第二层的每个节点就是Max的choice,它们之间是或的关系,第三层的每个节点就是Min的choice,它们之间是与的关系。根据这个树,Max要做出的选择就让下次Min做出的任意选择都 阅读全文
posted @ 2011-01-26 21:46 chinese_submarine 阅读(5233) 评论(2) 推荐(1) 编辑
  2011年1月19日
摘要: 最近做给一块蓝牙芯片做了一个decode的功能,数据是用RLE(http://en.wikipedia.org/wiki/Run-length_encoding)流程算法压缩的。为什么选用RLE算法,因为蓝牙芯片自身memory的局限性,最大只能获得不到2K的内存,还是不连续,而解压出的数据有2K多,所以需要一种能够边解压边发送的算法,查看现在流行的几种算法:霍夫曼算法,RLE算法,查表算法。压缩率实现复杂度内存占用量霍夫曼算法小中中RLE算法中小小查表算法大大大(一般几十K)由于查表算法的内存占用量一般需要几十K,所以所以首先排除,而且比较霍夫曼算法和RLE算法,RLE算法在压缩率,实现复杂 阅读全文
posted @ 2011-01-19 20:40 chinese_submarine 阅读(508) 评论(0) 推荐(1) 编辑
  2010年12月13日
摘要: 出类拔萃by Paul GrahamApril 2001, rev. April 2003(这篇文章改自2001年给Franz开发者论坛的演讲)1995年夏天,我和我的朋友Robert Morris创办了一个公司叫Viaweb.我们的计划是写一个在线商店的建站软件。当时这个软件的新颖之处是它在我们的服务器端运行,用网页作为用户界面。当然,很多人当年也有同样的想法,但就我所知,Viaweb是第一款基于web的应用。我们很喜欢这个新想法,并以此为公司命名:Viaweb,因为我们的软件不是桌面软件而是通过网络来运行的。关于这个软件,另一件特别之处就是它主要用Lisp写就。它是面向大众用户的Lisp程 阅读全文
posted @ 2010-12-13 18:29 chinese_submarine 阅读(1622) 评论(0) 推荐(0) 编辑
  2010年12月11日
摘要: 当你在linux下写测试代码的时候是否为生成makefile文件烦恼过呢,那么这篇文章可以对你有些帮助。 阅读全文
posted @ 2010-12-11 11:58 chinese_submarine 阅读(1780) 评论(3) 推荐(0) 编辑
  2010年10月10日
摘要: QT中的Drag and Drop的详细介绍参见:http://doc.qt.nokia.com/4.0/dnd.html下面主要介绍一下Drag and Drop的Demo(下载),先附上一份效果图: 这是一个拼图的Demo,左边是原图,右边是打散的图,拖动小方格可以实现不同的方格内的图片交换,此外程序还支持手动拖入原图片。代码中主要的类是一个DragWidget。它实现了以下几个方法。void... 阅读全文
posted @ 2010-10-10 18:22 chinese_submarine 阅读(19906) 评论(1) 推荐(1) 编辑
  2010年5月29日
摘要: 最近发现从QDataStream向QByteArray中写入数据常常是写不进去的,通过查看QT的源码:代码发现原来其中有一句:它检查读入的数据是不是整数个blockSize,如果不是,那么下面它会将QByteArray清空:所以如果想从QDataStream读入数据岛QByteArray中,可以采用下面的方法:代码最后回过头来看一下将QByteArray写入QDataStream的方法代码其实是将... 阅读全文
posted @ 2010-05-29 10:19 chinese_submarine 阅读(8970) 评论(0) 推荐(0) 编辑
  2010年5月8日
摘要: 如何提高计算密集型操作和IO密集型操作的响应时间呢? 如何提高串行操作和可并行操作的响应时间呢? 如何将异步操作变成同步操作呢? 如何不用多线程来提高响应速度呢? 这些问题本文将一一解答 阅读全文
posted @ 2010-05-08 11:17 chinese_submarine 阅读(3488) 评论(5) 推荐(3) 编辑
  2010年4月8日
摘要: 介绍mutex,Semaphore以及WaitCondition之间的异同 阅读全文
posted @ 2010-04-08 21:46 chinese_submarine 阅读(1884) 评论(2) 推荐(0) 编辑
  2010年2月24日
摘要: 最近使用的windows7 RC版经常报the pre-release version of windows 7 ultimate will expire in XX days.如果不想重装怎么办呢?google了一下,发现可以通过升级windows7的方法解决这个问题,参考How to Direct In-Place Upgrade Windows 7 Beta or RC (Prereleas... 阅读全文
posted @ 2010-02-24 12:50 chinese_submarine 阅读(867) 评论(2) 推荐(0) 编辑
  2010年2月4日
摘要: FPS是Frame per second的缩写,即每秒的帧数.这一术语广泛的应用于计算机图形学,视频采集,游戏等。这里主要介绍一下视频游戏中的帧率,第一个First person shooter game的帧率只有大概6FPS,但是依然很成功。不过随着硬件设备,尤其是显卡性能的加强,现在游戏的帧率一般在30FPS~100FPS之间。由于每帧图像所消耗的时间不一样,造成帧率是在不断变化的,所以每个游... 阅读全文
posted @ 2010-02-04 15:05 chinese_submarine 阅读(11828) 评论(1) 推荐(1) 编辑
  2010年1月16日
摘要: 本讲主要介绍一下QT中ViewModel的基本结构,以及简单的使用方法。 阅读全文
posted @ 2010-01-16 12:49 chinese_submarine 阅读(4377) 评论(4) 推荐(1) 编辑
  2009年10月31日
摘要: 一个农夫养了一头牛,三年后,这头牛每年会生出1头牛,生出来的牛三年后,又可以每年生出一头牛……问农夫10年后有多少头牛?n年呢? 介绍养牛问题到斐波那契数列的推广 阅读全文
posted @ 2009-10-31 17:30 chinese_submarine 阅读(1793) 评论(10) 推荐(1) 编辑
  2009年8月8日
摘要: 在c#中如何捕获TimeZone变化的事件。 阅读全文
posted @ 2009-08-08 13:03 chinese_submarine 阅读(475) 评论(3) 推荐(0) 编辑
  2009年4月26日
摘要: 实现了webbrowser背景的透明效果,有demo下载 阅读全文
posted @ 2009-04-26 19:44 chinese_submarine 阅读(10424) 评论(8) 推荐(1) 编辑
  2009年3月28日
摘要: 浏览器扩展系列————异步可插入协议(pluggable protocol)的实现 阅读全文
posted @ 2009-03-28 18:42 chinese_submarine 阅读(4992) 评论(4) 推荐(0) 编辑
  2009年3月2日
摘要: 给MSTHML添加内置脚本对象的方法 阅读全文
posted @ 2009-03-02 13:35 chinese_submarine 阅读(821) 评论(1) 推荐(0) 编辑
  2009年2月23日
摘要: 关于如何定制菜单可以参考codeproject上的这篇文章:http://www.codeproject.com/KB/books/0764549146_8.aspx?fid=13574&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=26#xx0xx本文主要讲述如何在这篇文章中的ShowContex... 阅读全文
posted @ 2009-02-23 12:44 chinese_submarine 阅读(1849) 评论(1) 推荐(0) 编辑
  2009年2月10日
摘要: 今天在学习WPF依赖属性的时候做了一个很经典的例子,即通过XMAL中的Trigger来改变按钮的前景色。具体代码如下:  [代码] 可以很好的实现,将鼠标移至按钮上,然后按钮的前景色变为蓝色的功能。但是尝试给此按钮设置一个Foreground属性,代码: [代码] 则使Trigger设置前者色的作用失效了。于是这便使我联想到这几天看到的一篇Depe... 阅读全文
posted @ 2009-02-10 17:51 chinese_submarine 阅读(675) 评论(2) 推荐(0) 编辑