摘要: 因为某些原因,最近写了个不停注册某网站账号的chrome扩展。(算外挂吗?) 该网站注册时需要输入验证码,且单次有效,所以穷举不可取。(验证神马的,最讨厌了!)================================================================ 首先要确定验证码图片是实时生成的还是只是静态图片,收集大量验证码看看是不是有大量相同的: 最近erlang代码写得比较多,就用erlang实现了,至于存储,直接放磁盘算了。-export([start/0]).start() -> inets:services(), inets:star...阅读全文
posted @ 2012-02-26 05:48 neutra 阅读(249) 评论(0) 编辑
摘要: 由于项目里Erlang的源代码都是用UTF8编码保存的,注释中有很多中文,结果edoc输出的页面在浏览器下中文都变成了乱码,每次浏览都要指定UTF8编码十分麻烦。用记事本打开HTML看了下,发现没有元数据指定编码,而且文档前面一大串都是英文字符,影响了浏览器的自动识别编码功能,没将文档识别为UTF8编码。既然知道原因,解决办法自然就出来了:在<head>里增加下面一行指定好UTF8编码即可:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />但e阅读全文
posted @ 2012-02-14 01:28 neutra 阅读(44) 评论(0) 编辑
摘要: 大概是2000年的时候,我有了第一台计算机。那时电脑才刚刚普及,价格还是比较高的,我记得好像总价是5k5,那是七喜很低端的一款,赛扬400、64M内存、4G硬盘,在我的要求下升级到了128M内存和10G硬盘。其实我父母当时根本对电脑没任何概念,只知学这玩意对以后很有帮助,买电脑对当时我家的情况来说并不是一笔小的费用。只是再多的钱对于当时的我来说还只是一个数字,直到后来我才知道其实这不是一个容易的决定。所幸的是这部电脑产生了足够的价值,至少影响了我这十年的很多选择。刚开始接触电脑的时光令人难忘,因为我在头一个星期几乎天天都在重装系统。原因无他,就是我乱删Windows下的文件。在重装了几次系..阅读全文
posted @ 2011-11-17 03:23 neutra 阅读(51) 评论(1) 编辑
摘要: 大约半年前,我写过一篇文章《C#也玩尾递归》,里面介绍了一种技巧使得C#也能实现尾递归,不再像普通递归调用那样受调用栈的限制。 今天重新看了下文中最后的实现代码,感觉还是不够满意:因为引入了一个对用户来说不是很必要的数据结构RecFunc<>,用户需要定义的代码大概是这样:(rec,i,n,a,b) => (n<3 ? 1 : (i==n ? a+b : rec.Callback(i+1, n, b, a+b))) 从调用方的角度来看,下面代码就比上面的更容易理解(不用self都不好意思说自己学过python):(self,i,n,a,b) => (n<3 阅读全文
posted @ 2011-07-27 22:49 neutra 阅读(1470) 评论(3) 编辑
摘要: 近几个月太忙,一直没更新,过几天准备人生第一次离职,有很多感触,跟大家分享下。 在很多人眼里,目前我的工作挺好的:虽是小公司,但工作压力不大,自由时间较多,作为老员工,薪酬地位都不算低。 在我眼里,目前公司最突出的问题是: 1.开发人手严重不足,却不肯放弃任何项目机会; 2.缺乏长远计划,即使制定了计划也是朝令夕改; 3.以项目需求引导产品开发,开发人员虽有交流相互不够信任。 有人觉得是管理制度问题,有人觉得是开发模式问题,有人觉得是软件建构问题,我觉得根本就是人的问题: 1.上头不懂开发却随意影响开发,下头虽不满也得照做,做出来的东西又不能让人满意,上头又琢磨哪个环节出了问题,陷入恶性循环.阅读全文
posted @ 2011-06-28 01:49 neutra 阅读(271) 评论(7) 编辑
摘要: 我经常搜集些小图片,网上的图片往往都有水印(特别是现在微博发的图片,几乎右下角都有水印)或者比较小,经常会有想找图片原始的版本的冲动。最近我才发现原来百度有个识图搜索,可以搜索出相似的图片,目前还是测试版,成功率不高,不过在很多场合还是可以派上用场的 :)PS: Google的Goggles似乎也可以识图,不过只见到手机终端软件,不知Web上能否调用。目前百度识图在使用时需要登录它的网址,然后要上传一幅图片(<5M)或输入图片的网址,才开始搜索,整个操作比较麻烦。于是打算做一个Chrome的插件,给网页图片的右键菜单添加一项,单击自动搜索相似的图片并显示在新的标签页里 :)之前没做过这方阅读全文
posted @ 2011-03-20 00:33 neutra 阅读(320) 评论(0) 编辑
摘要: 昨晚看到装配脑袋的一篇文章《VS2008亮点:用Lambda表达式进行函数式编程》,介绍了使用Lambda表达式实现递归的一种方法,从评论得知C#下使用特殊的委托也可以实现类似的效果,深受启发,联想到Python中使用抛异常的方式也能实现尾递归,于是尝试着给C#也弄个尾递归的包装来玩玩,纯属娱乐:)Lambda表达式可以代表一个函数,如 Func<int,int> func = n => n + 1;由于C#不能用var来推断Lambda表达式的类型,即使C#4也不能用dynamic声明一个Lambda表达式,结果当Lambda表达式的输入输出都是Func<...>阅读全文
posted @ 2011-02-19 18:39 neutra 阅读(433) 评论(5) 编辑
摘要: 类型成员的可访问性(Accessibility)的作用,就是控制类型成员对外的可见性。C#支持5种可访问性修饰符:public,private,internal,protected,protected internal,其中protected internal对应于CLR中的Family or Assembly,另外CLR还支持Family and Assembly的可访问性,只是C#不支持。反射...阅读全文
posted @ 2010-12-03 09:11 neutra 阅读(264) 评论(0) 编辑
摘要: 《CLR via C#》3rd中提到,应该以线程安全的方式引发事件,不禁冒冷汗,一直以来还真没注意到这个问题,以前写的不少代码得重新审查修正了。下面是引用原文说明:.Net Framework最初发布时,是建议开发者用以下方式引发事件:[代码]这个OnNewMail方法的问题在于,线程可能发现NewMail不为null,然后,就在调用NewMail之前,另一个线程从委托链中移除了一个委托,是New...阅读全文
posted @ 2010-10-13 01:14 neutra 阅读(438) 评论(4) 编辑


