Fork me on GitHub

2013年7月18日

摘要: VS简单注释插件——VS插件开发续前些时候,我写过一篇《VS版权信息插件——初试VS插件开发小记》分享过一个用于添加注释信息的插件,但那个插件有几个问题:不能添加带块注释(/**/),只能用//来注释(见旧文最后处的遗留问题)添加的注释,如果按Ctrl+Z只能一行一行的删除(而非期望的整块删除)只有一个模板,不能对多种文件进行注释(比如模板是针对c#的,那就当然不能对xml文件注释,因为注释符号不同)不能在发布到微软的扩展库里(不能通过VS扩展管理器来安装)对于以上1、2两点,最后找到问题的根源,是因为之前的代码是这么写的: TextSelection selectedText = _v... 阅读全文
posted @ 2013-07-18 23:02 HackerVirus 阅读(1215) 评论(1) 推荐(2)
摘要: WEBUS2.0 In Action - [源代码] - C#代码搜索器最近由于工作的需要, 要分析大量C#代码, 在数万个cs文件中搜索特定关键词. 这是一项非常耗时的工作, 用Notepad++要运行接近半个小时. 于是我利用WEBUS2.0 SDK创建了一个代码搜索器程序, 非常方便的完成了这项工作.Code Search程序首先会在选定的目录中搜索所有cs文件: private void btnOpen_Click(object sender, EventArgs e) { try { if ... 阅读全文
posted @ 2013-07-18 23:01 HackerVirus 阅读(819) 评论(0) 推荐(0)
摘要: 线程池必须得说点什么今天在介绍线程池之前,我得来说说上上篇随笔。关于线程的优先级,我们知道在C#中可以设置线程的优先级,使重要的作业可以优先执行,但是这个优先级不是一成不变的,也就是说就算你设置一个线程的优先级非常高,但是也有可能在优先级较低的线程后执行。优先级高不代表就得到了绝对的通行证,给一个例子大家看看: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Thread test1 = new Thread(new ThreadStart(myThr... 阅读全文
posted @ 2013-07-18 22:59 HackerVirus 阅读(227) 评论(0) 推荐(0)
摘要: 遗传算法1、遗传算法是非常好的非线性搜索算法,是一种全局寻优的近似方法2、遗传算法的步骤:1)将问题的解写成编码的形式,随机产生第一代种群。2)选择:选择一些染色体来产生下一代。根据适应度F(i)以比例选择算法从种群中选出2个个体。3)对选出的2个个体按交叉概率执行交叉操作,再按变异概率执行变异操作4)重插入:将处理后的2个个体加入新的种群。3、工具箱这里运用的工具箱是GATBX遗传算法工具箱1)创建随机的初始种群Chrom=crtbp(Nind, Lind)Nind种群个体数目,Lind是个体编码的长度;Chrom是Nind*Lind的矩阵2)选择适应度值Fitnv=rank(Objv)根据 阅读全文
posted @ 2013-07-18 22:57 HackerVirus 阅读(2695) 评论(1) 推荐(0)
摘要: Redis:在windows环境安装Redis第一步:下载windows版本的Redis:https://github.com/MSOpenTech/Redis。第二步:在命令行执行:D:\redis-2.6\redis-server.exe。第三步:这里有教程:https://github.com/ServiceStack/ServiceStack.Redis。C#版本的客户端类库Write、Read和Remove测试代码下载:http://yunpan.cn/QtNrcGxnPRVdV。 1 using System; 2 using System.Collections.Generic; 阅读全文
posted @ 2013-07-18 11:47 HackerVirus 阅读(243) 评论(0) 推荐(0)
摘要: Machine Learning/Introducing Logistic Function打算写点关于Machine Learning的东西, 正好也在cnBlogs上新开了这个博客, 也就更新在这里吧。这里主要想讨论的是统计学习, 涵盖SVM, Linear Regression等经典的学习方法。 而最近流行的基于神经网略的学习方法并不在讨论范围之内。 不过以后有时间我会以Deep Learning为label新开一个系列, 大概写写我的理解。 总之Machine Learning的label下都是和一些数学上比较清晰的东西, 不会像deep learning一样要等着Brain Scie 阅读全文
posted @ 2013-07-18 11:46 HackerVirus 阅读(138) 评论(0) 推荐(0)
摘要: 设计模式——(Abstract Factory)抽象工厂设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难。你必须设计相关类,并设计类的接口和继承之间的关系。设计必须可以解决当前问题,同时必须对将来可能发生的问题和需求也有足够的针对性。掌握面向对象的设计模式,可以比较轻松的解决上述问题。 本篇文章主要讲解设计模式中最基本,也是最常用的(Abstract Factory)抽象工厂。 适用性: 在以下情况可以使用Abstract Factory模式 • 一个系统要独立于它的产品的创建、组合和表示时。 • 一个系统要由多个产品系列中的一个来配置时。 • 当你要强调一系列相关的... 阅读全文
posted @ 2013-07-18 11:45 HackerVirus 阅读(172) 评论(0) 推荐(0)
摘要: 从优化到再优化,最长公共子串最长公共子串(Longest Common Substring)是一个非常经典的面试题目,在实际的程序中也有很高的实用价值,所以把该问题的解法总结在本文重。不过不单单只是写出该问题的基本解决代码而已,关键还是享受把学习算法一步步的优化,让时间和空间复杂度一步步的减少的惊喜。概览最长公共子串问题的基本表述为:给定两个字符串,求出它们之间最长的相同子字符串的长度。最直接的解法自然是找出两个字符串的所有子字符串进行比较看他们是否相同,然后取得相同最长的那个。对于一个长度为n的字符串,它有n(n+1)/2个非空子串。所以假如两个字符串的长度同为n,通过比较各个子串其算法复杂 阅读全文
posted @ 2013-07-18 11:44 HackerVirus 阅读(240) 评论(0) 推荐(0)
摘要: 与数据库打交道的Adapter----SimpleCursorAdapter程序员是这个世界上最神奇的职业,因为几乎所有其他职业的人都能转到该行来,只要他智力正常,有接受过正规的编程训练,尤其是现在培训班实在是太多了,加上他肯去学,三个月后他就能说自己是C或者java程序员了,但一个事实是摆明的:世界上几乎80%的优秀软件是由程序员中10%的精英编写或者基于他们的成果上编写的,这是不争的事实:程序员这个门槛实在是太低了,但是发展瓶颈却很高。我们都不是那10%的精英程序员,甚至连他们的1%的才能都比不上,相信大家都一定看过不少这些精英们的著作,我们会发现,他们要么是数学家,要么坚称自己是个艺术家 阅读全文
posted @ 2013-07-18 11:43 HackerVirus 阅读(190) 评论(0) 推荐(0)
摘要: JavaScript中变量声明有var和没var的区别JavaScript中有var和没var的区别Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是(function(){ // ...})();在函数内部,有var和没var声明的变量是不一样的。有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口东东。在全局作用域内声明变量时,有var 和没var看起来都一样,我们知道,声明的全局变量,就是window的属性,究竟是否一样,我们通过ECMAScrpit5提供的属性的特性查询方法,来发现之间的区别。var fff = 2;window. 阅读全文
posted @ 2013-07-18 11:42 HackerVirus 阅读(213) 评论(0) 推荐(0)