Fork me on GitHub

2012年7月23日

摘要: 工作流设计简介适读人群:参与过工作流功能开发的程序员。(有可能你并不知道,你现在做的功能就是一个工作流功能)一、什么是工作流举个很土的例子。程序员出差,回来后要报销票据。公司规定票据需要由员工所属经理审批,然后交由财务审批,财务审批通过程序员才可以拿到钱。在这个过程中,经理可以驳回申请,财务也可以驳回申请,驳回后单据回到程序员编辑草稿的状态。见下图。这就是一个工作流,一个单据由多个角色的用户审批,不同角色看到的界面是不同的,每一个状态都对应一个界面,例如程序员能够看到“开始”和“草稿”的页面,能够编辑报销单据的名称和金额等信息,可以点击“保存草稿”和“提交经理审批”按钮;经理能够编辑“经理审批 阅读全文
posted @ 2012-07-23 09:25 HackerVirus 阅读(176) 评论(1) 推荐(0)
摘要: Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数。对于那些可被Lua调用的C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L)。简单说明一下,该函数类型仅仅包含一个表示Lua环境的指针作为其唯一的参数,实现者可以通过该指针进一步获取Lua代码中实际传入的参数。返回值是整型,表示该C函数将返回给Lua代码的返回值数量,如果没有返回值,则return 0即可。需要说明的是,C函数无法直接 阅读全文
posted @ 2012-07-23 09:25 HackerVirus 阅读(176) 评论(0) 推荐(0)
摘要: 一、下载\安装\配置1. python3Python3下载网址:http://www.python.org/getit/当前最新版本是python3.2,下载地址是http://www.python.org/ftp/python/3.2.3/python-3.2.3.msi安装过程就不用说了,默认安装到C:\Python32目录中。安装好后,将安装目录C:\Python32添加到环境变量中。然后打开命令提示符窗口,输入python,如果能返回python版本说明安装成功以及环境变量设置成功。C:\>pythonPython 3.2.3 (default, Apr 11 2012, 07: 阅读全文
posted @ 2012-07-23 09:24 HackerVirus 阅读(211) 评论(0) 推荐(0)
摘要: 劣质代码评析——刻舟求剑的故事【题目】 将一个5*5的矩阵中最大的元素中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放),写一函数实现之,用main函数调用。 ——谭浩强 ,《C程序设计(第四版)学习辅导》,清华大学出版社,2010年7月,p108【评析】 这其实是一个相当复杂的问题,题目作者自己大概根本没意识到,更没有真正想清楚这个问题的解决,拍拍脑袋就出题了。题目中明显的问题是语义不清,比如什么是“最大”?什么是“最小”?什么是倒数第二小?这些含义都不明确。所以如果不进一步对问题进行补充说明,题目的解并不能保证唯一。客气点说题目不严格,如... 阅读全文
posted @ 2012-07-23 09:23 HackerVirus 阅读(396) 评论(0) 推荐(0)

2012年7月22日

摘要: Linux 3.5 发布投递人曾经的梦发布于 2012-07-22 11:31评论(2)有1032人阅读原文链接[收藏]«» Linus Torvalds宣布发布 Linux 3.5 kernel。主要新特性包括:CoDel 队列管理算法seccomp filters沙盒机制Android 风格的自动休眠和唤醒锁机制用户空间探测子系统uprobesTCP 连接修复减少重复确认加快转发的 TCP Early Retransmit连续性内存分配器kcmp ()系统调用ext4文件系统加入元数据校验和改进 Btrfs更新驱动等等, 更多信息可浏览KernelNewbies。10来 阅读全文
posted @ 2012-07-22 22:30 HackerVirus 阅读(140) 评论(0) 推荐(0)
摘要: 前两天,在豆瓣上看到一个讲解HTTP状态码的文章,觉得很搞笑。虽说我也是搞IT的,也经常见到服务器返回的各种HTTP状态码,但是真没认真去了解过这个东东。借此机会,我也搜集了一下HTTP状态码的相关资料,和大家分享一下。 HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC2616 规范定义的,并得到RFC2518、RFC2817、RFC2295、RFC2774、RFC2918等规范扩展。</> HTTP状态码一共分为五类。状态码的第一个数字代表了响应的五种状态之一。分类如下:HTTP状态码分类分类含义1XX表示消息。这 阅读全文
posted @ 2012-07-22 22:28 HackerVirus 阅读(189) 评论(0) 推荐(0)
摘要: js连连看js连连看首先见证奇迹的时刻---效果图如下:实现主要分为三个部分:一、创建元素块二、随机分布元素块三、事件绑定一、创建元素块生成span的元素标签,并将标签添加到父容器中,设置其left、top和background属性。/* * creSpan 创建元素标签 * n 指当前个数 * mpId 指父容器 * mleft 指其left属性值 * mtop 指其top属性值 * bgcolor 指其背景色属性值*/ function creSpan(n,mpId,mleft,mtop,bgcolor){ var mSpan = document.c... 阅读全文
posted @ 2012-07-22 22:27 HackerVirus 阅读(270) 评论(0) 推荐(0)
摘要: Effective C++ 类与函数的设计和申明在看《Effective C++》这本书的过程中,我无数次的发出感叹,这他妈写得太好了,句句一针见血,直接说到点上。所以决定把这本书的内容加上自己的理解写成5篇博客,我觉得不管你是否理解这些条款,都值得你先记下来。下面的索引对应的是书中的章节。18:努力让接口完美且最小化19:区分member functions,non-member functions和friend functions三者20:避免将data member放在公开接口中21:尽量使用const22:尽量使用 pass-by-refernece,少用pass-by-value18 阅读全文
posted @ 2012-07-22 11:44 HackerVirus 阅读(211) 评论(0) 推荐(0)
摘要: 最近看solr出了4.0ALPHA版本,管理界面比3.x漂亮,而且在和mmseg和lucene的SmartChineseAnalyzer、StandardAnalyzer、CJKAnalyzer比较之后,感觉IKAnalyzer比较好用!在配置IKAnalyzer的时候发现有些接口已经改变了,所以根据启动时出现的错误进行修改,所以有了4.0版本,已经测试可用!如下为IKAnalyzer的新目录结构IKAnalyzer4.0的jar包 ==>下载解压后把IKAnalyzer4.0.jar,IKAnalyzer.cfg,stopword.dic放到solr目录下的lib中编辑solrconf 阅读全文
posted @ 2012-07-22 11:43 HackerVirus 阅读(232) 评论(0) 推荐(0)

2012年7月21日

摘要: 目录:一、线程同步概述二、线程同步的使用三 、总结一、线程同步概述前面的文章都是讲创建多线程来实现让我们能够更好的响应应用程序,然而当我们创建了多个线程时,就存在多个线程同时访问一个共享的资源的情况,在这种情况下,就需要我们用到线程同步,线程同步可以防止数据(共享资源)的损坏。然而我们在设计应用程序还是要尽量避免使用线程同步, 因为线程同步会产生一些问题:1. 它的使用比较繁琐。因为我们要用额外的代码把多个线程同时访问的数据包围起来,并获取和释放一个线程同步锁,如果我们在一个代码块忘记获取锁,就有可能造成数据损坏。2. 使用线程同步会影响性能,获取和释放一个锁肯定是需要时间的吧,因为我们在决定 阅读全文
posted @ 2012-07-21 23:42 HackerVirus 阅读(263) 评论(0) 推荐(0)