Fork me on GitHub

2013年8月13日

摘要: 网络IO之阻塞、非阻塞、同步、异步总结1、前言 在网络编程中,阻塞、非阻塞、同步、异步经常被提到。unix网络编程第一卷第六章专门讨论五种不同的IO模型,Stevens讲的非常详细,我记得去年看第一遍时候,似懂非懂,没有深入理解。网上有详细的分析:http://blog.csdn.net/historyasamirror/article/details/5778378。我结合网上博客和书总结一下,加以区别,加深理解。2、数据流向 网络IO操作实际过程涉及到内核和调用这个IO操作的进程。以read为例,read的具体操作分为以下两个部分: (1)内核等待数据可读 (2)将内核读到的数据拷... 阅读全文
posted @ 2013-08-13 12:53 HackerVirus 阅读(143) 评论(0) 推荐(0)
摘要: 开发和常用工具推荐清单常说”工欲善其事必先利其器”, 下面的一些工具软件,必能提高你的工作效率。开发相关Resharper(收费)如果说在VS中,必装的插件是什么,那么一定是Resharper.园中甚至有看到朋友因为老板不愿意掏钱买Resharper而辞职。(不过我觉得也对,如果老板认为工具比人值钱,跟这样的老板混,也没什么前途)在VS扩展的网站上,Resharper排名第三。使用Resharper有几大好处:分析和提示如何改进和提高代码质量方便单元测试方便重构快速定位代码和文件关于Resharper的具体使用,各位可以google一下。Sqldelta(收费,30天试用)sqldelta可以 阅读全文
posted @ 2013-08-13 12:52 HackerVirus 阅读(300) 评论(0) 推荐(0)
摘要: jQuery 绑定事件到动态创建的元素上在进入主题之前,我们先来看一个前台页面经常用到的功能:点击页面输入框时自动选择其中文本。很容易想到利用输入框的focus事件,当输入框获得焦点时,再调用jQuery的select()方法。Okay,想法很简单,逻辑似乎也无错。具体我们来看一下现实到底能不能实现。1.页面构造个表单,放上几个输入框。代码看起来是这样子的。 Name: ... 阅读全文
posted @ 2013-08-13 11:46 HackerVirus 阅读(236) 评论(0) 推荐(0)
摘要: 有“镜头感”的网页是如何实现的很早以前,“焦点图”这个名称就出现在了网页制作中,能够完成绚丽的图片切换效果。有很多由flash和jquery制作的焦点图,其特点就是一个比一个炫。其中有一种特效就是有镜头左右摇摆或是拉远拉近的视觉效果,如果你印象不深了,可以点击这里体验一下。随着CSS3的发布,我们可以利用它的变形、渐变、动画属性来代替jquery的动画函数,用更少的代码来实现这种有“镜头感的”效果。本文就将探索一下如何利用CSS3来制作一个有镜头感的网页。 从最终效果来想想原理,在页面上依次出现的这些内容,其实一开始页面加载的时候就已经都在页面上了,只不过大部分内容都在浏览器窗口“之外”,我. 阅读全文
posted @ 2013-08-13 11:43 HackerVirus 阅读(217) 评论(0) 推荐(0)
摘要: SVN中Branch的创建于合并在使用源代码版本控制工具时,最佳实践是一直保持一个主干版本。但是为了应付实际开发中的各种情况,适时的开辟一些分支也是很有必要的。比如在持续开发新功能的同时,需要发布一个新版本,那么就需要从开发主干中建立一个用于发布的分支,在分支上进行bug fix,维护版本的稳定,并适时的将一些改动合并回主干。目前大红大紫的源代码版本控制工具git很受大家推崇,原因之一就是其在这方面的功能相当强大。其实老牌的SVN也是有这样的功能的,接下来就给大家讲解下。Branch的创建在SVN中主干代码一般是放置在Trunk目录下的,如果要新建Branch的话则放置在Branchs目录下。 阅读全文
posted @ 2013-08-13 11:41 HackerVirus 阅读(208) 评论(0) 推荐(0)
摘要: NET程序员都知道,如果我们重写一个类的Equals方法而没有重写GetHashCode,则VS会提示警告 :“***”重写 Object.Equals(object o)但不重写 Object.GetHashCode() 。但是,为什么重写Equals一定要同时重写GetHashCode呢?微软的解释是:GetHashCode基于适合哈希算法和诸如哈希表的数据结构的当前实例返回一个值。两个相等的同类型对象必须返回相同的哈希代码,才能确保以下类型的实例正确运行:HashTableSystem.Collections.SortedListDictionarySortDictionarySortL 阅读全文
posted @ 2013-08-13 11:25 HackerVirus 阅读(309) 评论(0) 推荐(0)

2013年8月12日

摘要: Git版本控制Windows版快速上手说到版本控制,之前用过VSS,SVN,Git接触不久,感觉用着还行。写篇博文给大家分享一下使用Git的小经验,让大家对Git快速上手。 说白了Git就是一个控制版本的工具,其实没想象中的那么复杂,咱在这就不扯那些太原理性的东西,不过Git是分布式管理方式这个要知道的,关于Git更详细的介绍在百度上一谷歌资料就很多了,在这不做赘述。因为平时习惯了在Windows下做东西,所以就已Windows为例。 1.首先你得去Git官网https://github.com/上下一个git吧,如下图所示: 下完以后是在线安装的,装完如下所示: ... 阅读全文
posted @ 2013-08-12 23:02 HackerVirus 阅读(177) 评论(0) 推荐(0)
摘要: 原生Js封装的弹出框-弹出窗口-页面居中-多状态可选实现了一下功能:1.title可自定义 可拖拽2.width height可以自定义3.背景遮罩和透明度可以自定义4.可以自己编辑弹出框里的html5.确定 取消按钮可选调用方法: 1 Prompt.add();//生成遮罩和弹出div 2 3 4 5 Prompt.init({ //修改参数 6 title : "我是个alert弹出框", 7 shade : true, 8 opacity : 20, 9 width : 800,10 height... 阅读全文
posted @ 2013-08-12 22:59 HackerVirus 阅读(586) 评论(0) 推荐(0)
摘要: TCP的流量控制和拥塞控制TCP的流量控制1.概述 所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受。利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制。TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值。 如图所示,说明了利用可变窗口大小进行流量控制。设主机A向主机B发送数据。双方确定的窗口值是400.再设每一个报文段为100字节长,序号的初始值为seq=1,图中的箭头上面大写ACK,表示首部中的却认为为ACK,小写ack表示确认字段的值。 接收方的主机B进行了三次流量控制。第一次把窗口设置为rwind=300,第二次减... 阅读全文
posted @ 2013-08-12 22:58 HackerVirus 阅读(482) 评论(0) 推荐(0)
摘要: PHP:执行模型和内存模型背景对于任何一种语言,了解其执行模型和内存模型都是有意义的,本文中的内容不见得正确,请多批评。执行模型每个请求都是一个独立的PHP进程,两个请求之间会完全隔离,会话和Cookie是通过其他机制在多个请求之间实现数据共享,像静态变量和全局属性这些会在每个请求中重新初始化。示例1 ';6 ?>结果1 //无论刷新多少次请求,结果都是2。内存模型基本规则以下是PHP的内存管理规则:默认按值传递。必须显式的声明按引用传递。对象类型的值是对象的地址。1 ¥symbol = value;其中:symbo是符号,存放在符号表中(全局符号表或活动符号表),value是符 阅读全文
posted @ 2013-08-12 22:57 HackerVirus 阅读(290) 评论(0) 推荐(0)