Fork me on GitHub

2014年3月17日

摘要: 如何捕获和分析 JavaScript Error前端工程师都知道 JavaScript 有基本的异常处理能力。我们可以throw new Error(),浏览器也会在我们调用 API 出错时抛出异常。但估计绝大多数前端工程师都没考虑过收集这些异常信息。反正只要 JavaScript 出错后刷新不复现,那用户就可以通过刷新解决问题,浏览器不会崩溃,当没有发生过好了。这种假设在 Single Page App 流行之前还是成立的。现在的 Single Page App 运行一段时间后状态复杂无比,用户可能进行了若干输入操作才来到这里的,说刷新就刷新啊?之前的操作岂不要完全重做?所以我们还是有必要捕 阅读全文
posted @ 2014-03-17 22:18 HackerVirus 阅读(182) 评论(0) 推荐(0)
摘要: 项目中死锁的解决经历很久没有写博客了,这里面的原因有很多。最近的一个项目由于客户明确提出要做下性能压力测试,使用的工具就是VS自带的压力测试工具。以前其它项目做压力测试后反馈的其中一个重要问题就是数据库的死锁。没想到我们这个项目测试时死锁同样的发生了,我之前的项目由于很少参与压力测试,基本上也不会去了解死锁,以及死锁如何解决的问题。既然有了这个需求,那么要想解决死锁就需要对死锁的相关知识有一定的了解,对于非DBA的来讲并不需要了解的特别深,知道基本概念以及常见分析方法即可,毕竟我们不靠这个吃饭,没必要达到特别细的境界。这里我找到了一个微软MVP写的一系统博客,对我理解死锁非常重要,这里分享下目 阅读全文
posted @ 2014-03-17 21:25 HackerVirus 阅读(252) 评论(0) 推荐(0)
摘要: 获得WCF Client端的本地端口最近需要做个小功能,当WCF调用远程服务时,显示该调用的网速或流量。其中比较关键的一步就是需要获得WCF Client端的本地端口,原来以为是个简单的事情,结果查了1个多小时谷歌,硬是没找到好的法子,只有自己动手了。 首先,反编译System.ServiceModel.dll的代码,查找Socket,然后,就是一直反复的“转到定义”、“查找所有引用",最后利用反射搞定了!代码分享如下,如果大家有什么更好的方法,请告知下。 var temp = RASHelper.CreatProxy(SystemConfiger.ServerEndP... 阅读全文
posted @ 2014-03-17 18:34 HackerVirus 阅读(254) 评论(0) 推荐(0)

2014年3月16日

摘要: 几种常用树介绍Binary Search Tree(二叉查找树、二叉排序树、二叉搜索树)指一棵空树或者具有下列性质的二叉树:1)若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;2)任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;3)任意节点的左、右子树也分别为二叉查找树。4)没有键值相等的节点(no duplicate nodes)。Balanced Binary Search Tree(平衡二叉查找树、AVL树)在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(logn)。增加和删除可能 阅读全文
posted @ 2014-03-16 23:19 HackerVirus 阅读(394) 评论(0) 推荐(0)
摘要: sql server 本地复制订阅 实现数据库服务器 读写分离再前段echosong 写了一遍关于mysql 数据同步实现业务读写分离的文章,今天咱们来看下SQL Server的复制订阅实现数据的读写分离比起mysql的复制,SQL server 复制相对强大一、 名词解释1、复制的 机构组成(类比报纸流通): 1)、发布服务器(报社出版) 生产维护数据源,审阅所有出版数据的更改 发送给 分发服务器(邮局) 2)、分发服务器 (邮局) 分发服务器包括分发数据库,并且存储元数据、历史数据和事务。 3)、订阅服务器(订报人,读者) 保持数据的副本,并接收对所修改... 阅读全文
posted @ 2014-03-16 23:12 HackerVirus 阅读(345) 评论(0) 推荐(0)
摘要: Intellij修改archetype Plugin配置2014-03-16 09:26 by 破狼,204阅读,0评论,收藏,编辑Maven archetype plugin为我们提供了方便的创建 project功能,Archtype指我们项目的骨架,作为项目的脚手架。 如fornt end的yo之类。我们能够通过简单的一行控制台command line创建你所需要的项目结构:123456mvn archetype:generate-DarchetypeGroupId=-DarchetypeArtifactId=-DarchetypeVersion=-DgroupId=-DartifactI 阅读全文
posted @ 2014-03-16 23:09 HackerVirus 阅读(227) 评论(0) 推荐(0)
摘要: WebAPI 2.x中如何扩展Identity StoreASP.NET WebAPI 中引入了新的一套身份验证和授权的机制,官方的叫法是ASP.NET Identity,有关这个概念的细节,感兴趣的同学可以参考http://www.asp.net/identity这套新的机制,默认还是使用SQL Server来做身份保存的,但更多的是提供了灵活性,包括与外部验证系统(OAuth)的整合。但在一些较为简单的场合下,我们可能希望简化这个部分,例如我们不需要外部整合,而且我们的用户数也相对有限,不希望用数据库来实现。本文提供了一个实例,我是使用XML文件的方式来保存用户信息的,该文件的格式大致如下 阅读全文
posted @ 2014-03-16 23:05 HackerVirus 阅读(272) 评论(0) 推荐(0)
摘要: windows多线程同步互斥--总结我的windows多线程系列文章:windows多线程--原子操作windows多线程同步--事件windows多线程同步--互斥量windows多线程同步--临界区windows多线程同步--信号量windows 多线程: CreateThread、_beginthread、_beginthreadex、AfxBeginThread 的区别MoreWindows的多线程系列文章秒杀多线程面试题系列一 同步互斥区别同步:同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒,即他 阅读全文
posted @ 2014-03-16 22:54 HackerVirus 阅读(186) 评论(0) 推荐(0)
摘要: C#函数式程序设计之函数、委托和Lambda表达式C#函数式程序设计之函数、委托和Lambda表达式相信很多人都听说过函数式编程,提到函数式程序设计,脑海里涌现出来更多的是Lisp、Haskell等语言,而C#,似乎我们并不把它当成函数式语言,其实,函数式程序设计并不是只针对某个特定的程序设计语言,而C#,也正一步步使用函数式丰富自己的语言结构,帮助人们更好的实现期望的结果。函数式程序设计函数式程序设计把重点放在函数的应用上,函数式程序设计人员以函数为基本模块来建立新函数,这并不是说没有其他语言的成分,而是说函数是程序体系创建的主要构造。引用透明(Referential transparenc 阅读全文
posted @ 2014-03-16 22:53 HackerVirus 阅读(192) 评论(0) 推荐(0)
摘要: 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM刚过去的周五(3-14)例行地主持了技术会议,主题正好是《UI层的设计模式——从Script、Code Behind到MVC、MVP、MVVM》,是前一天晚上才定的,中午花了半小时准备了下就开讲了。今天看到了大家在为MVVM knockout.js友(ji)好(lie)地交流,所以就整理下然后更扩展地分享。主要目的也不是为了争论,毕竟只是正巧主题相近,原本的打算也就是一次技术分享并且记录下来。那么我们就按照大致的历史进程将这些概念进行划分:ScriptCode Blocks、Code BehindMVC、M 阅读全文
posted @ 2014-03-16 22:50 HackerVirus 阅读(282) 评论(0) 推荐(0)