解决IIS反向代理SVN时,config文件无法提交的问题。

为了杜绝中间人工具,及避免客户端提示证书不可用。在代码服务器使用IIS反向代理Visual SVN Server实现HTTPS访问。

搭建完成之后发现部分文件无法检出,例如cs源码文件,config文件等。后发现代码更改后,上述文件也无法提交。

这说明IIS对客户端发起的请求进行了过滤。编辑web.config文件,按照如下代码进行合并即可。

同时,该方法可以解决config、exe、dll等文件无法下载的问题。

小爷今年25。

今天生日,小爷今年25了。

还是得感慨一下时间过的真快,来北京四年了,宝宝一岁多了,体重也从一百二飙升到一百五了。

时间沉淀下来的东西有很多。年龄、阅历、财富、体重和妥协……

生活总是会出其不意的给你各种各样的惊喜,虽然大部分时候,这种惊喜不是什么好事。

总还是学会了如何处理复杂的问题,如何面对突发的状况。事情还是要一步一步解决,发生的既然已经发生,就努力修正它就好。

可总有无法干预无法把控却可以深深影响到你的事情,那种无力感,相信谁都有过。

不再追求完美,不再追求极致。或者说更加睿智了,必须先存在,才能在后来的发展中追求极致,对吧?

有些东西还是需要丢掉。不是放弃,不是忽略,只是清空存在过的痕迹,让时光将其任意掩埋。

小爷今年25了,不用再穿红内裤,带转运珠了。中午吃了西红柿鸡蛋面配着统一晴蓝阿萨姆。路上碰到个同事,又叫了一个凉菜。吃饭的时候我在想,北京怎么这么热,我的生日如果是在冬天该多好。

祝自己生日快乐,也谢谢所有人的祝福。

开启全站HTTPS是一件很麻烦的事情

做了几年的研发,开始关注安全问题了。老是担心自己的网站如果被别人挂上了莫名其妙的广告,那得多不爽啊。于是就想着,搞个全站HTTPS吧,据说这样会让搜索引擎更爱这个站点。

SSL证书是第一步,网上很多,就用了国内的一个沃通数字证书。说起来跟收费的也没有什么区别,启用之后绿色的地址栏小锁看上去是那么的赏心悦目。唯一一点就是这个SSL证书中不包含所属信息,比如属于哪个公司、谁谁谁之类的,当然这些对个人没什么影响,我们只是不想被强奸罢了。

证书申请流程就按下不表,反正很简单就是,网上的小白流程一找一堆。导入证书,绑定域名,开启HTTPS之后,样式没了……

原因很简单,在HTTPS模式下,浏览器会拒绝加载HTTP请求中的资源文件,比如JS、CSS啥的。虽然图片会正常加载,但是那把锁就有点不和谐了。

网站启用七牛的CDN,申请SSL域名之后,网站页面正常了。SSL访问的计费标准是非SSL的1.2倍,这个……

后面的,就没有后面了,我还是放弃了采用SSL……为啥?不为啥,任性。

好吧,我标题党了。主要是因为考虑到好多资源只支持HTTP访问,而如果自己去反向代理HTTPS的话,又是一个不小的工作量了。

在此期间,折腾了IIS8的反向代理以及URL重写,眼看着从下午六点折腾到了十一点。身体为重啊,今天就折腾到这里吧。话说,以后还有HTTP2.0可以折腾呢,急什么……

博客迁移,各位还好吗?

身在大陆的朋友,有木有感觉本站速度貌似快多了?木有?难道真的木有?

博客从2012年建立以来,一直是托管在HongKong,但是最近貌似越来越不给力了。作为不断低产的2016年,博主忙着照看老婆孩子之外,剩下的就是好好学习努力工作了。

网站迁移到了国内的阿里云,上了RDS。开支不小啊,心疼一下。不过付出是值得的,开始正式折腾WordPress了。路漫漫其修远兮,各位共勉吧。

PS:网站的邮件发送现在还没有搞定,So,各位可能会收不到评论通知神马的。博主正在研究SendCloud,不过还没眉目,心中一万只草泥马不断奔腾中……

曝光个骗子

曝光个骗子:
QQ:320211081
手机号:18673137799
向他购买东西,收钱了却不发货,还直说 去百度搜索他的手机号云云,说自己没必要啥的。
第一次催,说他那里下雨。
第二次催,说他忘了。
第三次催,说他在外地。
第N次催,就直接装死, 不回复了。
骗子死全家~

ReSharper 10 破解方法,注册码方式已无效。

ReSharper是一个JetBrains公司出品的著名的代码生成工具,其能帮助Microsoft Visual Studio成为一个更佳的IDE。它包括一系列丰富的能大大增加C#和Visual Basic .net开发者生产力的特征。使用ReSharper,你可以进行深度代码分析,智能代码协助,实时错误代码高亮显示,解决方案范围内代码分析,快速代码更正,一步完成代码格式化和清理,业界领先的自动代码重构,高级的集成单元测试方案,和强大的解决方案内导航和搜索。实质上,ReSharper特征可用于C#,VB.NET,XML,ASP.NET,XAML,和构建脚本。ReSharper还为C#和VB.NET提供了增强的交叉语言功能,它使开发者可以有效的控制.net混合项目。

ReSharper于11月份推出了ReSharper 10版本,新版本除了性能上的优化,还升级了其授权验证系统。至此,这个版本的所有通过注册机计算出的密钥都无效了。但是劳动人民的智慧是卓越的,新版本的发布没过几天,破解方式就出现了。

这种破解属于无损破解,不会修改任何源程序,属于安全破解。具体原理就是延长试用期限(延长至30年),从此可以放心的使用ReSharper了。

注册方式很简单,复制以下代码,保存为reg文件,导入注册表即可。

以上代码囊括了ReSharper,ReSharperCpp,dotCover,dotMemory,dotTrace的注册信息,所以要使用这几个工具的小伙伴也不用发愁了。

PS:我觉得ReSharper 8.x是最好的版本。
PPS:要不是为了用Visual Studio 2015,我才不会升级ReSharper呢。
PPPS:如果你是壕,请支持正版。

解决 DevExpress + ReSharper 共用造成的源文件自动删除行的问题

在同时安装DevExpress(有和谐插件) + ReSharper后,基于DevExpress控件的项目中会有licenses.licx文件。在源代码编辑页面,执行Build操作时,如果光标在行尾,则会造成自动删行。
build完成后,代码会成为这个样子:
解决方案是,在预先生成事件命令行中加入以下代码:

就是这个样子:

clipboard
问题解决啦~

程序员和工程师有什么不一样?

  文/余晟

我刚刚工作的时候,面试官曾经跟我说:好好干两年,可以迅速从程序员成长为工程师。当时我觉得太诧异了,从很多招聘启示来看,“程序员”不就等于“工程师”吗,只是“工程师”更好听一些而已。等我工作久了,才知道“程序员”和“工程师”真的是不一样的——程序员只写程序,工程师写能在现实世界中创造价值的程序。

可惜,很多软件开发人员未必清楚两者的差别,甚至做了很久也只算程序员而不算严格意义上的工程师。所以我就自己的观察和经验,谈谈程序员和工程师的差别。

  第一,工程师不写黑箱程序。

“程序=数据结构+算法”,这个著名的公式大家都知道,不幸的是,它不适合描述工程领域或者现实世界的程序。有很多程序,数据结构和算法都写得很棒,功能足够强大,系统足够复杂,但是——它很难调试,一跑起来就无法停止,而且谁也不知道程序现在到底在干什么,里面发生了什么。

别觉得好笑,我遇到过很多工作三四年甚至五六年的开发人员,仍然不停地生产黑箱程序:出现问题的第一反应是直接杀掉进程重启(天哪你们的程序不能安全关闭的吗?)。当然还有更生猛的,直接用开发机连上生产数据库(防火墙上开个洞)去调试。

你说他们技术不好吗?明明各种技术问题也能搞定。你说他们没有系统意识?做过的程序也不简单。但是,他们做的充其量只能叫“程序”,而不是工程上成熟的“系统”。

怎样的程序不是黑箱?你需要考虑它的层次划分,你需要考虑哪些(功能之外的)运行信息必须暴露和记录,以什么方式暴露记录,你甚至还需要考虑这些暴露和记录对性能的影响,以及程序需要对外提供什么操纵接口……当你把这一切都考虑清楚,写出能够让运行细节“尽在掌握中”的程序的时候,你的一条腿就迈进了“工程”的大门。

这方面,互联网和软件开发的大厂会更加关注一些,但也不是说个人就毫无追求的空间了。网络爬虫大家都会写,大家也都知道如果要数据抓得准,调试起来很麻烦。我有个朋友在某大厂写过一套“可视化”的爬虫,可以用逐步操纵语句的执行,迅速定位问题所在。这种水平的工程师,属于可遇而不可求的类型,每次说起来大家仍然啧啧称赞。

  第二,工程师注意实现和接口分离。

Java 面试的一道经典问题是:请描述抽象类和接口的区别。通常,大家都会知道“接口”和“实现”要分离。不幸的是,很多人理解的“接口”,只是侠义的特定语言提供的 interface,而没有考虑“接口”真正的含义。

接口的真正含义是什么?计算机最擅长处理额是信息,它可以让信息脱离现实的障碍高速流动起来。如果说“实现”是干脏活累活,“接口”就是发出干脏活累活指令的窗口。脏活累活干一遍就足够了,但发指令的窗口却可以有千千万万。

更具体一点说,完成功能的是程序员,完成功能并且设想它会在什么情况下使用,并且让人方便使用的,是工程师。我见过不少这样的程序:登录会话一开始放在本地内存里没问题,到了要切换到数据库里方便会话转移就得大兴土木,虽然要做的其实仍然只是存取而已;程序自动加载的数据出了问题,就根本不能手动加载;以前手动加载的数据,改成自动加载就要推倒重来……

有没有接口意识,能不能真正区分接口和实现,这是区分程序员和工程师的一大标识。

  第三,工程师注重功能的逻辑联系。

很多系统都在不断的变化和改进过程中,程序员看到的是功能点,工程师看到的是功能点之上的逻辑。

任何系统当然都是由若干功能构成的。但在功能点之上,还需要一张有逻辑意义的大网,才能把功能点组合起来,把复杂度降低,成为大家能理解的对象。最简单的“登录”,就包含数据输入、数据验证、登录信息记录等等功能,“登录”是这些功能的逻辑集合,也是理解这些功能的基础。

随着时间的推移,业务的增长,新功能可能越来越多,比如用户数据的加载,对好友的通知,广告的推送准备等等。这些功能实现起来当然都容易(因为很具体),但功能堆积的后果是复杂度急剧上升,因为功能之间的逻辑联系被切断了。所以,工程师必然需要思考,这些功能应该怎么组合,放到哪些具有逻辑意义的动作——比如“登录”里去?正是经过这样持续不断的思考,系统的复杂度才能够被一直维持在较低的水平,容易让大家理解。

这个例子看起来很简单,但做起来却没那么容易。我有时看到复杂的系统操作手册,简直让人哭笑不得:1) 点这里;2) 点那里;3) 输这个…… 这些操作对应的逻辑意义那么准确,分明就该是一次性自动完成的啊,把它们割裂开来的后果大大提高了系统的复杂度,既不方便维护,也不方便操作。最后来擦屁股的,只能是开发人员自己。


我经常反思自己接受的教育,在学校里写程序,和工作了写程序,有那么一点相同,但又好像完全两回事,到底有什么不同,只有亲自体会、思考了才能明白,所以我想把自己的所见所感写出来。悟性好的有机会接受很好训练的同学,估计不需要了解这些。但对于没有这样条件的同学,但愿我的这点念叨能给你们一点帮助。

在北京一个人一天去哪玩比较好

本文来自知乎,地址:http://www.zhihu.com/question/20688264#answer-2125947

本人亲自尝试过的沿北京中轴线自北向南一日游
(强烈建议纯步行。可能会稍累,要做好心理准备。不用带太多的钱物,一个MP3边听歌边散步就行)

早晨坐第一班地铁2号线到鼓楼大街站,沿旧鼓楼大街往南走,到钟鼓楼附近跟晨练的老头老太太搭讪聊天(建议背景音乐 何勇《钟鼓楼》)

从钟楼湾胡同绕出来到地安门外大街,走烟袋斜街后海,过银锭桥。(建议背景音乐 李健《什刹海》)

沿前海边的小路一直走,从荷花市场的牌坊下走出来,到地安门。这会儿是吃早餐的点儿,地安门华天小吃来碗豆汁儿配焦圈,吃不饱(惯)的话隔壁有KFC……(建议背景音乐 陈升《北京一夜》)

沿地安门内大街往南走到景山后街,往西再往南走到景山西门,花两块钱买张门票进去。爬到最高的万春亭上看清晨的紫禁城全貌。看够了就从东边山坡下来,到歪脖子树那儿怀念一下崇祯皇帝,读一读甲申三百年祭文。

从景山公园正门出来,马路对面就是故宫的神武门。

实在不建议花一两个小时走马观花转故宫,所以往沿着护城河往西边走,过了西北角楼,看过了白塔往南走,上北长街

到故宫西华门的时候向城楼方向前进,不用怕门口的警亭,咱又不是往里闯。

当你走到离西华门的城楼仅100米时,会发现往右边(南)有一条很窄的路,能走汽车,也有沿河人行道。这条路是99%的外地游客都忽略的地方,旅行社更别提了。如果这时还没有过上午10点,基本上除了你就是巡逻的武警了。


(就是这条路)

沿着路一直走,一边是浑浊的筒子河,一边是高高的城墙。同时还能近距离欣赏一下西南角楼。角楼下边有个哈哈镜,留影不错。如图。

走着走着就到了午门广场——故宫的正门。不是恶劣天气的话,应该游人如织了。站在最中间的砖道上,恭喜你,你现在又回到北京城的中轴线了。往南走,依次穿过端门天安门这俩长得一模一样的亲兄弟,眼前就是雄伟的广场了。(建议背景音乐 李志《广场》)

有兴致从广场穿过的话,要有被仔细查包搜身的耐心。纪念碑、纪念堂什么的扫一眼就行了,不建议长时间逗留。

沿着中轴线继续走,穿过正阳门城楼,地上有一个中国公路里程原点的石碑,可以看看你家乡的方位和距离。

从地下通道离开广场,穿过箭楼就到了传说中的前门大街。(建议背景音乐 李谷一《前门情思大碗茶》)

两边不伦不类的当代建筑没啥看的,你会发现右手边人潮汹涌,有个大铁门上书三个大字“大栅栏”,往里进,随便走走可以发现同仁堂、内联升等老字号的门脸。小胡同里边小饭馆儿也多,可以用个午膳,歇歇脚。

=================能步行走到这里的都是赢家的分割线==========================

吃完饭千万别走回前门大街,一定要往胡同深处钻,越人少的地方越值得去。我当年走着走着一抬头发现墙上的红底白字牌子写着“陕西巷”,顿时高兴坏了。这就叫意外收获,意外走到了多年前的胜地。剩下的时间基本上叫做胡同游了,不远处还有琉璃厂东交民巷等地,可以自行选择。

2013/6/13 10:27 :关于陕西巷及附近几条胡同,感谢@陈章鱼 在评论中注释

胡同转的差不多了,边问路边往大路上回,从珠市口回到前门大街上。

再往南可以一直过天桥,走到天坛或者永定门,不过这段路会相当嘈杂和无趣,可以自行选择是否结束行程。

========================================================================
所以,你这一天的线路可能/可以是这样的:

这条线路我曾经无数次推荐给身边的朋友。不论是散心解闷还是摄影采风,都堪称上乘。

基本上不花钱,你已经领略了这个城市最古老的一面,你用一天的时间走完了皇帝与平民之间的距离。以我之见,这才是北京最迷人的地方。

程序员创业,远离管理软件。

近日看到新浪前SAE技术经理程辉的微博写道:“近10年来企业软件创业公司几乎没有成功的:开源生意在中国行不通,服务收费也不行,License没有人买,大订单没资质,中等订单靠关系,小订单收不到钱,能活下去的竟然都是些靠政府关系或依托垄断企业而活的公司,这是企业软件市场的现状。中国只有市场,没有钱赚,把市场仅限中国的企业软件是没有出路的。”这段话无疑说出了近10年来企业软件的现状。恰好,当天我也发表了类似的观点——国内软件变现的途径太少:

1. 广告公司,例如百度、淘宝、腾讯、新浪,草根走这条路太难,做2C的必经之路,必须借助资本;

2. 企业管理软件、基础软件解决了客户的问题,但太苦;

3. 游戏,也跟草根无关,必须借助资本。做企业管理软件,套现真的太难。

两年前,我出来自己创业时,曾经去淘宝培训如何基于淘宝开放平台做卖家工具的开发。在淘宝,一个朋友给我介绍了做电商ERP风头正劲的上海管易的产品经理,他极力劝说我不要进入ERP、进销存这类管理软件领域创业。当时我想:我从大学毕业工作到现在,一直在ERP、进销存领域十几年了,我自己创业,当然要从自己最熟悉的行业着手,因此我还是义无返顾地加入了管理软件领域进行创业。两年多过去了,成绩真是惨不忍睹。如果我能再次选择,我会选择更轻量级的营销角度下手。其实,几年前,当我刚开始关注SaaS管理软件时就下过一个结论:管理不是中小企业的强需求,营销才是。但我自己创业,似乎忘记了自己当初下过的结论。顺便再提一句:程序员创业,也不一定要从自己最熟悉的领域着手,要从客户的强需求着手。

我也反复比较过淘宝后台卖家工具进销存类目,有数十家软件公司杀进去,做好的,只有两家。即使是这两家,一个差不多算淘宝的亲儿子,利用各类资源,跟淘宝后台绑定在一起,算淘宝官方推荐,占据了淘宝各个有利的入口。另外一个,就是从免费着手,付费用户应该支撑不了他们的团队。

为什么程序员创业,要远离管理软件呢?

首先,因为管理软件对客户要求其实是太高了,当自己的客户在管理上高度成熟时,管理软件无疑就是帮助客户如虎添翼的最佳工具。但就如文章开始所说:大订单没资质,中等订单靠关系,小订单收不到钱。程序员都是老实人,只懂技术,既没有资本,也没有关系,管理上高度成熟的客户,程序员压根儿就是够不着的。而在管理上不成熟的小客户,例如淘宝小卖家,营销类的软件,即使最后被我称之为“大力丸”、“狗皮膏药”,在他们眼里,也是非常受欢迎的。毕竟,有野心的小客户太少了,他们既不愿分析订单数据,改进自己的产品,也不愿意分析客户数据,改进自己的服务,他们就是想利用淘宝,利用一些潜规则,挣点儿钱而已。面对这样的客户群,营销类软件无疑是最佳的。程序员是无需花太多精力跟这样的客户沟通交流的,只需要找到一个他们的强需求,就可以杀进去了。这类工具软件既不需要很牛的美工,也不需要太多程序员合伙开发,单打独斗也可以开始。

其次,管理类的软件,还需要程序员有非常好的服务能力:一是对行业需求的把握,二是对客户需求快速响应的能力,都比营销类的软件,要求要高得多。也不适合程序员出来创业。

最后,无论是管理软件,还是营销类的软件,要想付费用户规模上去,自己也还必须熟悉营销。酒香也怕巷子深,自己也必须通过营销和广告,才能做大规模。而这个方面,程序员自身也是很难做到的,也需要团队和资本介入。而管理类的软件,即使在这一点上,也比营销类软件要高很多。营销类工具软件本身的效果,也是可以在客户中自我营销口碑推广的。而管理类软件的效果,短期内是很难达到的。

综上所述,从我自己的亲身体会来看,缺乏资本和团队的程序员创业,可以从营销类工具软件入手,暂时远离管理类和基础类软件。

作者简介:邢波涛。北京新软孚信息技术有限公司技术负责人。关注SaaS管理软件和B2B、B2C电子商务的融合。

本文来自程序员杂志第2013-05期。