摘要: 主要是Java代码的质量管理,分为三个方面:代码风格代码静态分析单元测试这刚好是三个递进的层次:代码看起来如何 -> 代码分析起来如何 -> 代码跑起来如何, Java在这几个方面都提供了非常优秀的工具和几乎无缝的Eclipse集成。#代码风格这个主要由Eclipse管理,设置在Preference/Java/Code Style中, 包括:Cleanup - 自动添加/删除/修改代码以更好的符合代码标准, 可以通过选中文件/文件夹,然后右键/Source/Cleanup运行.Code Template - 添加代码片段或者注释时使用的模板,注释可以通过Alt+Shift+J插入F 阅读全文
posted @ 2012-09-09 09:40 lzprgmr 阅读(1150) 评论(1) 推荐(1) 编辑
摘要: C++的模板元编程是C++比较高级的一种技术,可以通过一些模板的技巧,来实现编译期的计算,常见的例子如求个和啊,求个Fibonacci数列啊啥的。说实话,我从没在实际项目中用过这些技术,昨天和同事聊到C++,Java以及C#的模板时,突然想到这个,就试了一下,就写了个求和的:#include <iostream>using namespace std;template<int N>class Sum{ public: enum {value = N + Sum<N-1>::value };};template<>class Sum<0> 阅读全文
posted @ 2012-09-06 14:40 lzprgmr 阅读(2191) 评论(2) 推荐(0) 编辑
摘要: 设想中的InterviewerPortal是一个网站,用来管理面试题:添加、删除、修改、浏览、搜索, 将来还可以添加根据简历自动出题等功能,主要是给面试官使用,当然,对已个人管理学习也是不错的一个工具。这会是一个比较简单的信息管理系统,做这个东西,主要两个目的:管理自己的面试题库演练一遍开发一个web系统从前端到后端的所有技术。#系统架构直接上图:整个网站是基于J2EE架构的:前端采用html-css-javascript,当然,会使用现成的JQuery和Bootstrap,采用jsp与后端融合后端采用Spring的一站式服务,并没有使用流行的SSH, 原因很简单, 这个熟一点,而且全部使用S 阅读全文
posted @ 2012-09-03 07:05 lzprgmr 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 天意弄人,好好的一个C++程序员,一年前由于老大跑路方向改变,做起了Java, 然后,因为项目巨变,又玩起了web, 虽然只是做一段时间而已,但既然做了,就好好掌握一下,这玩意,将来对我肯定有用。 后台不说了,主要是spring+蛋疼的mongodb, 而前台,始终逃不脱不了html + css + javascript,从网上、从书上、从同事那儿学来一点东西,积累一些资料,摆在这里[1]:w3schools无所不包,我只能用这个词来形容它,前端开发比较重要的三个技术自然是名列前茅,也把JQuery加了进来:HTML - HTML5CSS - CSS3JavaScriptJQuery但这里的资 阅读全文
posted @ 2012-09-02 15:10 lzprgmr 阅读(1787) 评论(0) 推荐(0) 编辑
摘要: 我们知道,在一些主流的浏览器中按F12,就会拉出一个查看web访问详细信息的窗口,在firefox中叫firebug,在chrome或者IE中,则叫developer tools,他们功能都大同小异,当然,比较重要的自然是查看http request与response, 幸运的是,这三个工具都把其放在一个叫Network的tab下面,虽然显示格式略有不同,但基本信息都是一样的。当我们通过一个form提交信息的时候,如果是GET方式,form中的信息会以参数的形式附加在URL后面;如果是POST的方式,则包在request的body中,但不论是那种方式,form中的信息,都会在http requ 阅读全文
posted @ 2012-08-16 23:18 lzprgmr 阅读(5067) 评论(1) 推荐(1) 编辑
摘要: premake与cmake都是非常不错的跨平台编译系统,主要针对C++。记得老东家当年针对WIn+MacOS,使用的就是cmake (一开始维护两套编译脚本,非常痛苦),cmake不错,但使用了一套自定义的格式,对于程序员来讲,可能更喜欢使用lua作为meta data的premake,熟悉,灵活且可扩展。今天用opencv试了下编译opencv的example,感觉的确非常方便 - 你不用特别去了解VS或者gmake的格式/语法,就能通过一些简单的premake配置,产生project文件或者makefile,继而编译出你要的binary。premake的文档挺不错的,基本上,你可以:首先, 阅读全文
posted @ 2012-08-12 21:52 lzprgmr 阅读(2153) 评论(0) 推荐(0) 编辑
摘要: 之前写过一篇用OllyDbg做破解, 但是为了获得信息,需要通过OllyDbg调试,在适当的地方设断点,并查看内存,非常麻烦,不要说不懂的人,就算是我刚做过,没过几个礼拜就忘的差不多了。所以如果这个工具要经常性使用,最好还是能做成一个工具:比如能弹出一个对话框显示需要的信息。这次花了两个晚上搜索、研究、实践了一下,终于搞了出来。首先,在网上找到一篇非常靠谱的文章,正是exactly我想要的:How to inject code into an exe file, 照其步骤走一遍,弹出一个对话框应该不是问题了。其基本做法是:在空白代码段(操作码为00, 一般在最后)插入对MessageBoxA的 阅读全文
posted @ 2012-08-07 21:59 lzprgmr 阅读(2858) 评论(4) 推荐(0) 编辑
摘要: 感觉用Java开发web app是非常普遍的,工具啊,库啊都非常丰富,那么如果用Java开发一个普通的桌面应用,有哪些GUI库可供选择呢?一、AWTAbstract Window Toolkit, 是Java中引入最早的GUI库,它是对native system的一个封装,真正的窗口渲染还是由操作系统功能提供的,这使得用awt写的UI,其在不同的系统上显示是不一样的 - 都是按照目标系统的风格显示的。AWT提供了两个层面的JavaAPI:一个是对native system的窗口,事件等基本机制的封装; 二是提供了如button,checkbox等现成的控件。AWT是JFC[1]的一部分二、Sw 阅读全文
posted @ 2012-08-05 14:59 lzprgmr 阅读(7130) 评论(0) 推荐(0) 编辑
摘要: Java世界里,日志库就和许多其他库[1]一样,你有多个选择,多个还不错的选择,比如log4j, java.util.logging, logback, 另外还有一些统一的log api,比如slf4j, common-logging等 。 而C++感觉开源的好用的有口碑的日志库并不是那么丰富[2]。选择Java的日志库分为两种,一种是提供统一的api,如slf4j, common-logging;一种是提供真正的实现,如log4j, java.util.logging以及logback。前者可以自由搭配后面真正的实现库。会出现这种情况的原因是java日志库百家争鸣,这会有这么一个问题:假设我 阅读全文
posted @ 2012-08-04 22:50 lzprgmr 阅读(1967) 评论(0) 推荐(0) 编辑
摘要: 我不是一个会主动追着时髦东西跑的人,我的老G7上自带的安卓2.2,一直用到现在,但是不知是装的软件有啥冲突,还是用的时间长了系统出了什么问题 - 大概用了1年之后,就经常会死机,而且需要拔电池如此暴力的方法重启才行。但即使如此, 我也还是一直这么用着,毕竟还能用嘛 - 升级新系统是要时间,也是有风险的。直到今天,在我鼓捣opencv for android的时候,想把一个使用了opencv的程序安装到我的手机上时,提示系统空间不足(其实那个apk包也就6~7M而已了), 这是另外一个经常困扰我的问题,可用系统空间严重不足,导致我得非常小心的管理着我安装软件,还得经常卸载一些必要的程序以便尝试/ 阅读全文
posted @ 2012-07-01 14:50 lzprgmr 阅读(969) 评论(2) 推荐(1) 编辑
摘要: 技术的积累不光是靠拼命学习,有一个好的方法、好的系统来承载自己的知识,是可以事半功倍的。我的看法是要把知识的存、取整理的非常方便,这样才会有去积累的动力,也才会看到积累的效果。自己过去这几年,对知识积累这一块是在慢慢的摸索,用过不少工具,也慢慢的沉淀出适合自己的一套方法,有所成效,但似乎并没有给自己带来质的飞跃。于是这两天对自己的这套系统略加整理,理一下思路,希望能发挥更大的作用。一、博客确切的说,我是从05年就开始写博客了,在CSDN,写的不多,也为csdn的注册名纠结过为换过几个名字(这也纠结?);然后又因为csdn太杂,把博客搬到过C++博客(博客园那个子博客);然后又因为生活博客或是技 阅读全文
posted @ 2012-06-17 15:11 lzprgmr 阅读(936) 评论(0) 推荐(2) 编辑
摘要: 朋友所托,要帮忙破解一个MFC的小程序,他急等着用 (背景:几个人合伙创业,其中一个负责写这个有点小核心的项目,为了巩固自己的”地位“搞的小把戏,给加了密,要用必须通过他 - 我艹~~~)。虽说自己搞C++比较多,相对来讲native一点,但是对于汇编与破解,了解相当有限,去年这朋友也找过我,因为当时刚换公司比较忙,是求助另外一好友才搞定的。这次还是自己花点时间研究研究吧。工具吗,用windbg貌似只能看,softice与ollydbg之间,选择了ollydbg。一、基础知识ollydbg是一个动态反汇编分析调试工具,其功能强大的令人发指,而且居然还是免费的,其官方地址为:http://www 阅读全文
posted @ 2012-06-10 15:11 lzprgmr 阅读(23319) 评论(1) 推荐(1) 编辑
摘要: 比较有名的三个web server,Windows下是IIS,而Linux/Unix下则主要为Appache HTTP Server (httpd), 另外还有一个专门为运行java code的Tomcat Server,当然是跟着java一起跨平台了。其实Appache HTTP Server也是跨平台的,比如我这两天用的就是Windows下的版本。基本概念 Apache HTTP Server,或者Apache Server,或者httpd,是一个支持Unix和Linux的,提供插件机制的Web Server。 所谓Web Server,是指用来host web sites的软件,hos 阅读全文
posted @ 2012-01-08 19:32 lzprgmr 阅读(714) 评论(0) 推荐(0) 编辑
摘要: 很早就听说过sqlite这个数据库引擎,但鉴于我一贯好逸恶劳,纸上谈兵的恶劣行径,一直没着手玩过它。记得老东家当年做CAD系统的标准库时,用的就是sqlite来存储那些标准零件 - 作为desktop版本的标准库,作为数据库安装发布到单机,sqlite的确是不二之选。并且按照sqlite支持的容量上限2TB来看,如果每个标准库零件要5M,可以存2*1024*1024/5 = 419430个,应该是足够的!这次用sqlite,主要有两个原因:最近想写一个android下微博知识管理器,对于保存离线数据,sqlite是不二之选csdn泄露的密码,把它导入数据库,一是可以做一些分析,二是可以练习一下 阅读全文
posted @ 2012-01-02 16:12 lzprgmr 阅读(868) 评论(2) 推荐(0) 编辑
摘要: 自从用了豆瓣,每每看完一部电影,或者一本书,总会在豆瓣留下几笔,对内容的理解也好,自己的感想也罢,少则用短评,多则用评论,偶尔复习浏览,整个的过程,对记忆非常有帮助,而且不怎么花时间 - 理解感想那是自然而然的事,不要去管什么格式文笔,一挥而就是了 —— 三拜九叩都做了,还怕这最后一哆嗦?但是对于技术,这方面的习惯不好 - 往往用过(试过)之后不注意记录,若干时间后又要用到,却已经忘的差不多了,又得重新来学一遍。 这些主要是一些工具,库什么的,以后就都记在博客中了,标之以[try it] 。要快速的学会使用一个新的工具,library,基本上有这么几个步骤吧:了解其基本概念:这是工具是干什么的 阅读全文
posted @ 2011-12-31 11:14 lzprgmr 阅读(1965) 评论(0) 推荐(0) 编辑
摘要: 所谓头文件发布,就是在build某个工程的build过程中,把头文件发布到特定的输出目录,而依赖于此工程的代码,则需要从此特定的输出目录来include头文件。换句话说,在这种做法下,头文件与最终产生的library/binary具有同等地位,它也是build过程的一个产出。我们写C++代码,一般都是直接从source目录包含所需要的头文件的,那么为什么要使用这种头文件发布的方式呢? 我们可以先分析一下不发布头文件可能带来的问题:因为直接从source目录包含头文件,我们无法控制哪些头文件可以include,而哪些不可以。因为很多情况下,我们很可能只想对用户暴露某个层次的api,但对于用户来说 阅读全文
posted @ 2011-11-20 17:37 lzprgmr 阅读(2453) 评论(2) 推荐(1) 编辑
摘要: 两个月前的今天,离开老东家,投奔新东家,中间不带一点过渡的,这点曾经让我觉得无奈,但也偶尔让我为自己感动一把 —— 真够勤劳的~~~。 不管怎样,6年之后,我终于跳了我人生中第一个槽,。好处是,以后同学聚会,大家不会像看外星人一样盯着我,然后声音提高八度:”神马 - - -,你还在那个公司......" (注意,以上马字读4拍) 恩,还是谈谈新的环境吧。 以前,基本上是躺在windo... 阅读全文
posted @ 2011-09-18 12:39 lzprgmr 阅读(1104) 评论(7) 推荐(0) 编辑
摘要: 咏菊------黄巢待到秋来九月八,我花开后百花杀。冲天香阵透长安,满城尽带黄金甲。入都------李鸿章丈夫只手把吴钩,意气高于百尺楼。一万年来谁著史,三千里外欲封侯。定将捷足随途骥,哪有闲情逐水鸥?遥指芦沟桥畔月,几人从此到瀛洲?石灰吟 ------于谦千锤万凿出深山,烈火焚烧若等闲。粉骨碎身浑不怕,要留清白在人间。元末明初造反口号------韩山童,刘福通莫道石人一只眼,挑动黄河天下反(说实话我真没理解这词到底啥逻辑,不过感觉读起来朗朗上口,而且最后三个字也挑明了主题~) 阅读全文
posted @ 2011-08-27 21:56 lzprgmr 阅读(465) 评论(1) 推荐(0) 编辑
摘要: Dooyoul是个韩国人,他有个很古代的韩国名字,翻译过来叫:郑斗悦,恩,有点像《大长今》中的某个人物了。Dooyoul是我在Autodesk时的同事,我们不是同一个team,但是去美国office的时候,让我认识了这个热情,友善、坦率的韩国人。Dooyoul保龄球玩的很酷,高尔夫据说也是江湖闻名,而且,除了韩文和英文,尽然还能读中文和日文,怎一个牛逼了得~~~我们在Novi期间,Dooyoul是我们最好的伙伴 -周末了,开车带我们出去玩,至今我还念念不忘环密西根游那次美好的经历中午了,带我们在公司周围遍尝不同的餐馆,要知道,那个乡下地方,要没个车,那是寸步难行哪下雨了,开车到hotel下面来 阅读全文
posted @ 2011-07-26 21:53 lzprgmr 阅读(694) 评论(3) 推荐(0) 编辑
摘要: 最近的一个项目,是开发一个framework,提供给公司内部不同的产品线使用。 之间遇到的一个问题,就是STL容器的使用, 而结论是不要在公共接口中传递STL容器:这里说的STL容器,但主要则是指容器,字符串类,但其实可以推广到在STL中提供的任何类型,这里说的公共接口,是指需要暴露给客户的sdk头文件,包括函数签名,或者类成员变量;也可以说,不要在暴露给客户的头文件中包含STL的头文件。原因分析为什么有这个结论,我们可以从几个方面来论述:客户端使用的STL版本可能不同因为STL作为标准库,Framework编译的时候使用的STL,与客户端编译的时候使用的STL,版本是有可能不一样的,比如Fr 阅读全文
posted @ 2011-07-10 19:32 lzprgmr 阅读(5112) 评论(12) 推荐(1) 编辑

黄将军