邮差与邮局——网络协议概观
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。这样一个“狼烟=敌人入侵”就是一个简单的协议。协议可以更 ...
闭包解析(Fun with closure)
这篇随笔是对“闭包”这个的介绍,从构造到实现机制。为了轻松一些,用了Fun with closure这个标题。
1. 有点儿像闭包的东西
2. 做一个闭包
3. 什么是闭包?
4. Closure的“诡异”现象
5. C++ 的细节 ...
谈谈离职和跳槽
这篇文章是我在部门会议上的一次发言的总结。之所以会有这次会议,是因为我的一名员工向我提出了辞职,在思索了几天后,我整理了一下自己的思路,于是便有了那次的会议和现在的这篇文章。 ...
ASP.NET状态管理的总结
由于HTTP协议的无状态特性,导致在ASP.NET编程中,每个请求都会在服务端从头到执行一次管线过程,对于ASP.NET页面来说,Page对象都会重新创建,所有控件以及内容都会重新生成,因此,如果希望上一次的页面状态能够在后续页面中保留,则必需引入状态管理功能。ASP.NET为了实现状态管理功能,提... ...
jQuery最核心的基础设施之一——数据缓存模块进化史
数据缓存系统最早应该是jQuery1.2引入的,那时它的事件系统完成照搬DE大神的addEvent.js,而addEvent在实现有个缺憾,它把事件的回调都放到EventTarget之上,这会引发循环引用,如果EventTarget是window对象,又会引发全局污染。有了数据缓存系统,除了规避这两... ...
HBase: 看上去很美
hadoop已经得到大规模应用,hbase貌似也有不少大公司在用,如facebook、taobao等。从hbase的设计看,hbase系统堪称“完美”:LSM、HFile、WAL、zookeeper、Replication等,hbase的性能测试也不差。可惜从实测的结果看,0.94版本的hbase还... ...
XML-RPC 实现C++和C#交互
我们通常会面对这样的问题:整合不同平台或不同类库,这些类库可能来自不同的语言,甚至不同的操作系统。 如何解决这类棘手的问题呢?一.方案介绍 解决不同语言交互的方法有不少,对我了解的windows系统和.NET平台,有以下几种做法:P/Invoke: 调用native cpp的方法,处在同一个内存区间... ...
在 Asp.NET MVC 中使用 SignalR 实现推送功能
Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架。它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重新发送请求或使用轮询技术来获取消息。
可访问其官方网站:https://github.com/SignalR/... ...
面试体验:Facebook 篇
Google、Microsoft 和 Yahoo 都是去年的事情了,接下来说说今年的吧。其实我在豌豆荚非常爽,跟身边的设计师和工程师合作都很愉快,所以唯一能够诱惑我去面试的就只有 Facebook 了。最初接受 Facebook 面试邀请的原因并不是追求它的 offer,而是我就想了解一下 Face... ...
如何查找.NET程序内存不断上涨的原因(CLRProfiler)
前段时间公司新写的自动升级服务端(Remoting)出现了内存不断飙升的情况,从最初的七八十兆一晚上竟然飙到了1G多,直接导致客户端连接服务端失败,这不科学,后来优化了各种可能造成占用内存的方法(数据库连接,I/O操作,引用类型释放),但效果不佳,这下可难为我们了,不知道问题的所在也就不知道该如何去... ...
SQL注入攻防入门详解
SQL注入是一个历史悠久却依然存在的安全问题,很多程序员不知道要如何防止入侵者对数据库的破坏,我这边整理了比较详细的SQL注入攻击及预防SQL注入的详细知识,并且包含两个SQL注入示例,欢迎大家一起学习:入侵者是如何破坏数据库和我们该如何防止SQL注入 ...
我的技术历程(上)
招聘后端(Java、Php)前端、数据库等各类人才(开发经理、架构师、开发、DBA)小的时候有写日记的习惯,不是自己要写而是为了完成任务,后来发现写日记确实也是可以培养语言表达能力的。上了高中之后除了作业就很少写东西了,趁着这几天休息想写一下我使用电脑、学习技术的历程。一来当作分享,看看大家是否能有... ...
需求与设计过程(1)-用例
1.前言 看过太多的称得上“三无”的软件,就是无需求、无设计、无注释。严格的说来,他们的需求和设计其实还是有的,只是没有用文档记录下来而已,但是注释确实真的没有。这些软件从大到小都有,但是他们都有一个共同的特点,就是“难维护”。前几天和同事聊天,听说一个XAML的实现要重写了,用本地协议代替,然后再... ...
解决ASP.NET中的各种乱码问题
经常发现有人被乱码困扰着,而我感觉比较幸运,很少为此烦恼过。在这篇博客中,我将把我想到的一些与乱码有关的经验总结出来,供大家参考。页面显示乱码问题在一个网站中,有些页面会正常显示,然而,有些页面会显示成乱码。如果发生这种情况,可以检查一下web.config和文件编码。如果web.config是这样... ...
消息耦合还是接口耦合
经过上面的比较, 我们可以得出一些结论: 消息方式的强项是耦合性和扩展性,以及监控的方便性,个人感觉比较适合于Server端的规模应用。 接口方式的强项是性能高效以及开发的方便性, 比较适用于同一进程内客户端的小规模应用。 但是大部分时候, 对于架构师或是公司领导,他们会更关注可耦合性和可... ...
有关T-SQL的10个好习惯
1.在生产环境中不要出现Select * 这一点我想大家已经是比较熟知了,这样的错误相信会犯的人不会太多。但我这里还是要说一下。 不使用Select *的原因主要不是坊间所流传的将*解析成具体的列需要产生消耗,这点消耗在我看来完全可以忽略不计。更主要的原因来自以下两点: 扩展方面的问题 造成额外的书... ...
Wireshark基本介绍和学习TCP三次握手
之前写过一篇博客:用 Fiddler来调试HTTP,HTTPS。 这篇文章介绍另一个好用的抓包工具wireshark,用来获取网络数据封包,包括http,TCP,UDP,等网络协议包。记得大学的时候就学习过TCP的三次握手协议,那时候只是知道,虽然在书上看过很多TCP和UDP的资料,但是从来没有真正... ...
throw和throw ex的区别
之前,在使用异常捕获语句try...catch...throw语句时,一直没太留意几种用法的区别,前几天调试程序时无意中了解到几种使用方法是有区别的,网上一查,还真是,主要是区别在堆栈信息的起始点不同。总结如下:我们都知道,C#中使用throw和throw ex抛出异常,但二者是有区别的。在C#中推... ...