自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

广告业的程序员

The only valid measurement of code quality: WTFs / minute

  • 博客(83)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spark——最简单明了的Java Web框架(2)

上一篇简单介绍了Spark Hello World,这一篇主要记录一下怎么获得Spark Java源代码,导入Eclipse,并且用Maven执行。1、从github checkout 源代码$git clone git://github.com/perwendel/spark.git2、把这个项目Eclipse化$cd spark$mvn eclipse:eclipse

2013-04-16 05:50:50 9133 1

原创 Spark——最简单明了的Java Web框架(1)

前阵子在10gen官网参与了MongoDB For Java Developer的网络课程,课程采用了一个blog作为开发例子,侧重于MongoDB的介绍,当然要对web开发(web框架,HTML,JavaScript等)尽可能略过。在搭建这个blog web app的时候,课程使用了一个叫Spark的框架,让笔者眼前一亮。经过一番阅读(网上的资料很少)和实验,发现Spark确实是简单

2013-03-21 03:47:01 29772 18

原创 Java的ArrayList和LinkedList

写Java的都知道,ArrayList用的比LinkedList多的多,同样是List,这二者有什么区别呢?1、ArrayList底层是由resizable Array实现的,而LinkedList是由底层的doubly LinkedList实现。(这一点至关重要,下面都是由这一点区别引申出来的)2、ArrayList有random access功能,即通过index可以以O(1)效率访问

2013-01-20 03:10:28 2526

原创 更改Mac上ScreenShot截屏文件的默认存储地址

Mac上默认的截屏功能相信很多用户都使用过,如果没有的话,设置快捷键的方式请看下图通常情况下,如果保存一个截屏文件,都会默认地存到桌面。下面介绍如何改动这个默认存储地址。1、先准备好一个用来存储截屏文件的文件夹2、打开Terminal窗口,输入下面的命令defaults write com.apple.screencapture location /文件夹的完整目

2012-12-27 06:49:37 5149

原创 在Mac上安装Git

1、下载Githttp://git-scm.com/downloads2、打开下载的dmg安装包,然后双击安装文件。如果遇到权限问题,可以打开System Preferences 的 Security & Privacy把Allow applications downloaded from 设置为 Anywhere(安装完成后可以再改回原来的设置)

2012-12-27 03:13:48 2577

原创 从Eclipse plugin中读文件

进行Eclipse插件开发或者RCP开发的时候,常常遇到这样的需求:程序员准备了几个文件打在jar包里,在程序运行的时候由用户的操作触发,要读jar包里的这几个文件,显示内容在界面上,或者直接复制文件到用户的目录中。这里提供两种直截了当的方法来实现这一目的。第一,使用OSGi自带的utility class / methods,例子中的com.company.example是bundle (或

2012-12-05 09:28:56 1972

原创 AT&T 官方解锁iPhone 4 (无需升级最新操作系统) 操作步骤

从我本人的英文博客转载过来的,适合于使用美国AT&T 2年合约iPhone,并且合约期满官方解锁的朋友参考。特别是一般在AT&T客服联系苹果公司官方解锁后会要求你把iPhone链接iTunes restore,然后iTunes会要求你升级到你升级到最新操作系统,而这可能并不是你要想到的。本文最后提供的几个步骤可以帮你绕开“升级”这一步。I got my iPhone 4 with

2012-11-26 09:39:10 3641 1

原创 OSGi的EventAdmin

大家都知道Eventing或者Publish / Subscribe机制对于低耦合系统的重要性。很多时候写一个listener接口,一个list用来记录所有的listener,当有event发生的时候,就遍历list来通知每个listener,这种方法最简单明了,但在模块化开发(比如OSGi)中,如果在模块之间实现Publish Subscribe 模式就没有这么简单了。就好像logging这么

2012-10-16 23:33:21 3985

原创 Joshua Bloch离开Google了,Dart前景堪忧

Joshua Bloch,Java界的传奇人物,如果你没有听过他的名字,也肯定看过他的书(Effective Java,Java Concurrency in Practice, Java Puzzlers)。他在哥伦比亚大学和卡内基梅隆大学分别获得计算机本科和博士学位。先是在Sun公司工作,2004年去了Google,是Google的Chief Java Architect。他主持了无数Ja

2012-09-21 22:42:15 8369 2

翻译 iPhone 5还是很给力的

(有些图片貌似在csdn没法完全显示,原文在这:http://9to5mac.com/2012/09/16/first-iphone-5-geekbench-results-dual-core-a6-more-than-doubles-ipad-3-score-narrowly-beats-high-end-androids/)著名的处理器和内存benchmark工具Geekbench发布了关

2012-09-17 11:24:27 12258

原创 iPhone 5, Galaxy S III, Droid RAZR HD, Lumia 920参数对比

iphone 5发布了,基本上是个加长版的4S。iphone的竞争对手们虽然进步很大,有些甚至在一些方面已经超越了iphone,但优势还没有大到足以让iphone现有的海量用户选择离开iphone。iPhone 5 vs. Samsung Galaxy S III vs. Droid RAZR HD vs. Nokia Lumia 920

2012-09-13 02:39:27 2910 1

原创 暂时放弃e4,回到Eclipse 3.x RCP

e4,即Eclipse 4.0及之后的版本,标志着Eclipse作为一个平台革命性地提升。因为Eclipse从3.0开始正式全面基于OSGi的缘故,可以说Eclipse比其他任何IDE的模块化都做的更好。很多IDE都支持插件开发,但其本身很少能够做到模块化,一般都是本身是非模块化的系统,加上一个支持模块化的接口,从而允许第三方开发插件。只有Eclipse是由内而外完完全全的模块化。e4不仅仅延续且

2012-08-30 11:50:45 7071 2

转载 e4中的org.eclipse.e4.core.contexts.IContextFunction

(转载自:http://414149609.iteye.com/blog/1646251这个实验很有意思,简单有效地证明了EclipseContext每次取一个值之前都会执行compute方法。实际e4 RCP开发过程中,常常结合Declarative Service来充分发挥e4的Dependency Injection的作用。简单来说就是当一个类的构造函数有@inject的标签,e4

2012-08-29 11:32:14 2776

原创 GEFGWT——GEF的JavaScript版本

今年的EclipseCon Europe上会介绍GEFGWThttp://www.eclipsecon.org/europe2012/sessions/gefgwt-gef-javascript-browser-ipadGEF is one of the oldest Eclipse projects. When migrating a good old RCP app

2012-08-27 23:39:31 1866

原创 Maven和Tycho

点进来读这篇文章的朋友,我假定你已经知道maven的基本知识,也知道Eclipse,知道Eclipse是基于OSGi,初步了解Eclipse插件开发或者说OSGi模块化开发。如果对这些知识不了解,甚至完全没有听过,那请绕开本文。Maven简单来说是Java世界的一种新型的build工具,比ant的最大好处是依赖的管理,以及配置文件的可读性,可复用性,可扩展性。Maven的配置文件称为POM,

2012-08-26 14:14:54 10571 4

原创 OSGi 模块的start level

读到这篇文章,说明你已经知道OSGi是什么,很可能也知道 OSGi 模块和软件工程中其他功能性单元一样,有它自己的生命周期。OSGi的start level简单来说就是一个数字,用来定义模块的优先级,告诉负责OSGi 生命周期的容器 (Equinox Container),某个特定的模块应该在什么时候被启动。这个数字越小,代表模块的优先级越高。只有所有高优先级的模块都被完全执行后,才会开始执

2012-08-26 12:40:20 5850 5

原创 用e4技术重写Eclipse IDE——The Simple e4 IDE

公司要做一个基于Eclipse RCP的桌面程序,既然Eclipse Juno e4推出来了,比之前版本有很大的改进,那没道理还用旧的,但是因为e4才刚刚发布没多久,而且太灵活,现在连自带的Package Navigator / Explorer都没有,网上也找不到实现基于e4的 navigator的教程。找了半天发现了这个叫Tom的吊人用纯e4技术实现的一个简单IDE,非常非常牛叉

2012-08-14 23:31:27 4875

转载 Opening the World of Multimodality ——进入多模的世界

原文链接:http://www.speechtechmag.com/Articles/Column/Standards/Opening-the-World-of-Multimodality-51043.aspx作者:Deborah Dahl, Ph.D., is principal at speech and language consulting firm Conversational

2012-08-06 22:03:59 1284

原创 Git学习笔记5 merge冲突时二选一

常常有这样一种情况,程序员甲在Git branch了一个项目,然后花了1个月在 branch 中开发了几个功能,解决了一些bug,最后一步必然是把这个branch merge回master,然后解决冲突,再进行交给QA前的最后调试。解决冲突是个很痛苦的过程,如果高效解决 merge conflict 是所有版本控制系统花大力气的地方之一,这里就不赘述,只介绍如何在merge 冲突时使用 Git

2012-07-31 21:40:20 32563 3

原创 Git学习笔记4 找出最懒的程序员

场景假设:一个开发小组有10个程序员,他们用 Git 做版本控制,某一天程序员A push了当天的几个commit之后,突然在想“我在这个项目到底一共进行过多少次commit?谁比我commit更多?多多少?谁是组里面进行最多commit的?谁是最少的?”Git 非常人性化地支持这样一个命令:$ git shortlog这个命令会返回这个 git repository 底下每个用

2012-07-28 06:47:41 2626

原创 Google I/O 第二天keynote重点

第一天的亮点毫无疑问是Google眼镜,此外带有最新Android系统的Nexus 7平板也是一个小亮点,Nexus Q让普通消费者耳目一新,但对于知道或者使用过Roku box,或者tvpad,或者apple tv的人来说,并不是一个什么很炫的概念,更不用说Google Play市场上的书,电影,电视,杂志都价格不菲,199美元买个平板是不贵,但想要充分利用就还得每年至少花这个数在Google

2012-06-29 08:04:30 1836

原创 下一个炙手可热的web UI开发平台:Dart Platform

再过几个小时Google 2012 I/O盛会即将开始,Chrome是这次盛会的一个重点(当然还有Android,Cloud,Google Drive,以及没人用的Google+等等),而在Chrome部分,笔者认为最大的亮点就是Dart Platform。它必将成为web ui开发的一个新热点。什么是Dart Platform?Dart Platform是

2012-06-27 23:52:05 6425 1

原创 解决Eclipse RCP开发中Run As菜单项只出现一次的问题

症状:运行RCP application后,在Project Explorer里面右键某个项目,可以看到context menu里面有Run As这么个选项,可是当第二次右键同一个项目时,Run As却消失了,不管你有没有真正地Run这个application,Run As都只会在context menu中出现一次。调查:在org.eclipse.debug.ui这个插件的ex

2012-06-25 23:40:50 3356

原创 Java Collections复习笔记

ListArrayList可增长的数组Fast iterationFast random accessOrdered (by index)UnsortedNot efficient for insertion/deletionVectorThread-safeRandom Access (Only ArrayList and Vector have this

2012-06-22 11:44:36 4466

原创 在OSGi环境下配置hibernate的connection pool

很多人都知道MySQL的默认设置中含有一个connection timeout属性,当一个connection在8小时之内没有使用的话,就会timeout。在web系统开发中,比如一个用户今天下午下班前使用了,第二天早上来上班时显然已经超过了8小时,他就会发现系统出现了问题,所以需要从数据库pull data的request都得不到response。笔者前阵子开发的一个项目就遇到了这

2012-06-19 12:10:11 2115

转载 作为一个曾经看不上javascript的人,我推荐大家开始学习js

I've long looked at JavaScript as a second-class citizen in the programming world. Early on, it was the source of numerous security problems; it was a nice bit of glue to patch together HTML applica

2012-06-12 02:42:13 1487

翻译 Git学习笔记3 git revert

我们难免会因为种种原因执行一些错误的commit / push,git提供了revert命令帮助程序员修复这样的错误。举个例子,下图是git commit 的历史记录git revert 命令会通过一个新的commit 来使仓库倒退一个commit,在上例中,如果程序员想要revert 最新的那次commit (Updated to Rails 2.3.2 and edge hopt

2012-06-01 00:33:03 16785

翻译 创建Eclipse Editor

原文链接:http://www.vogella.com/articles/EclipseEditors/article.html配置要求:Eclipse 3.7 IndigoEclipse使用editor和view来处理数据。editor一般需要用户点击“save”来保存数据改动,而view一般直接执行改动。在RCP系统中通常采用下列步骤来创建和使用editor:在pers

2012-05-23 03:42:51 3271

原创 Java线程复习笔记

最近有骑驴找马的打算,咱们这行工作和面试其实差距很大(其他行业可能差的更大),就拿线程来说吧,平时工作中大部分时候是不需要管这玩意儿的,除非真遇到瓶颈了或者performance issue了,但是参加面试却几乎必问,没办法,只好复习一些基本的知识,以免栽在简单的问题上。先说说线程和进程,现代操作系统几乎无一例外地采用进程的概念,进程之间基本上可以认为是相互独立的,共享的资源非常少。线

2012-05-18 06:40:34 3937

原创 简单总结一下Hibernate的缓存问题

今天发现之前做的一个restful web based application有一个bug。比如先执行一个搜索,结果中有10条数据,执行数据库scrip删除这10条数据,在网页上再次执行同一搜索时,按道理结果应该为空,结果发现仍然看到已经删除的10条结果,反复点击搜索按钮后10条数据又不见了。QA之前居然没查出这个问题,可能它们以为只是一点点延迟,于是多点几次搜索按钮,删除的信息又不见了。

2012-05-17 04:40:12 3094 5

转载 各种编程语言优缺点

(译注:圣经记载:在远古的时候,人类都使用一种语言,全世界的人决定一起造一座通天的塔,就是巴别塔,后来被上帝知道了,上帝就让人们使用不同的语言,这个塔就没能造起来。 巴别塔不建自毁,与其说上帝的分化将人类的语言复杂化,不如说是人类自身心灵和谐不再的分崩离析。之所以后来有了翻译,不仅是为了加强人类之间的交流,更寄达了一种愿望,希望能以此消除人际的隔阂,获求来自心灵的和谐及慰藉。真正的译者,把握血脉,

2012-05-03 21:44:29 2512 3

原创 Git学习笔记2 给git命令起别名

程序员都是"懒惰"的,哪怕是执行一个命令的时候少敲了一个字母也感觉特舒坦。Git就允许为命令设置别名。以git status为例,如果敲git st显然无法识别。new-host-2:designer XXX$ git stgit: 'st' is not a git command. See 'git --help'.Did you mean one of these? s

2012-04-20 07:18:19 7644 2

Git学习笔记2 给git命令起别名

程序员都是"懒惰"的,哪怕是执行一个命令的时候少敲了一个字母也感觉特舒坦。Git就允许为命令设置别名。以git status为例,如果敲git st显然无法识别。new-host-2:designer XXX$ git stgit: 'st' is not a git command. See 'git --help'.Did you mean one of these? ...

2012-04-20 07:18:00 222

原创 Git学习笔记1 神奇的git stash

开发人员常常遇到这种情况:花了几天时间一直在做一个新功能,已经改了差不多十几个文件,突然有一个bug需要紧急解决,然后给一个build测试组。在Git问世之前基本上靠手动备份,费时且容易出错。git stash命令简而言之就是帮助开发人员暂时搁置当前已做的改动,倒退到改动前的状态,进行其他的必要操作(比如发布,或者解决一个bug,或者branch,等等),之后还可以重新载入之前搁置的改

2012-04-19 04:14:03 28839

Git学习笔记1 神奇的git stash

开发人员常常遇到这种情况:花了几天时间一直在做一个新功能,已经改了差不多十几个文件,突然有一个bug需要紧急解决,然后给一个build测试组。在Git问世之前基本上靠手动备份,费时且容易出错。git stash命令简而言之就是帮助开发人员暂时搁置当前已做的改动,倒退到改动前的状态,进行其他的必要操作(比如发布,或者解决一个bug,或者branch,等等),之后还可以重新载入之前搁置的改...

2012-04-19 04:14:00 268

原创 解决Eclipse插件升级中Cannot complete the install because of a conflicting dependency的问题

今天因为工作需要打算在Eclipse上安装一下Eclipse RCP Plugin-in Developer Resource 3.7.2的插件,照常使用Eclipse自带的最方便的“Install New Software”如图。结果报错说Cannot complete the install because of a conflicting dependency.笔者已经安装了

2012-04-18 00:16:05 84729 9

解决Eclipse插件升级中Cannot complete the install because of a conflicting dependency的问题

今天因为工作需要打算在Eclipse上安装一下Eclipse RCP Plugin-in Developer Resource 3.7.2的插件,照常使用Eclipse自带的最方便的“Install New Software”如图。结果报错说Cannot complete the install because of a conflicting dependency.笔者已经安装了3....

2012-04-18 00:16:00 1004

原创 VoiceXML简介

简单来说,VoiceXML就是语音网络世界的HTML,一种用于语音应用的开放标准的标记语言。VoiceXML的问世使得为HTML发展起来的web体系也能够轻松地创建和使用语音应用。发展历史:  1995年AT&T研究院的Dave Ladd, Chris Ramming, Ken Rehor以及Curt Tuckey在头脑风暴关于互联网会如何改变电话应用的时候,产生了一些新的想

2012-04-17 00:46:20 3003

VoiceXML简介

 简单来说,VoiceXML就是语音网络世界的HTML,一种用于语音应用的开放标准的标记语言。VoiceXML的问世使得为HTML发展起来的web体系也能够轻松地创建和使用语音应用。 发展历史:  1995年AT&T研究院的Dave Ladd, Chris Ramming, Ken Rehor以及Curt Tuckey在头脑风暴关于互联网会如何改变电话应用的时候,产生了...

2012-04-17 00:46:00 198

翻译 终有一天软件都会像这样开发

Someday, all software will be built this way.原文链接:http://alblue.bandlem.com/2011/02/someday.html(笔者注:文章主要介绍Git,Gerrit,Jenkins为代表的版本控制,代码审核,持续集成工具在现代软件开发中的使用,笔者认为这些都是当下最时髦,最先进的开发工具和工程思想,特做简单翻译与大家

2012-04-14 02:11:19 2040

使用SWTBOT进行GUI自动化测试

在Java世界,GUI测试从来都是一个痛,SWTBOT从某种程度上可以帮助自动化GUI的测试,当然了,是否适用于你的项目还需要看具体情况分析。这篇文章对如果使用SWTBOT自动测试GUI有比较深入浅出的介绍

2012-09-22

CareerCup150题

CareerCup150题,程序员面试必备。坚持每天练习且吃透1-2题,3个月内对于算法,数据结构等知识的掌握就相当入门了

2012-09-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除