存档

‘电脑’ 分类的存档

IntelliJ IDEA 推广 介绍 入门

2010年2月25日 14 条评论

注:这文章写得太水了。周日和ZY的一场不太和谐的争论以后,我决定尝试一下Eclipse,结果发现Eclipse其实也有不少技巧,我只是不知道它们而已。还发现了一篇Terse Systems : Why IntelliJ IDEA sucks,是一个Eclipse的重度用户攻击IDEA不好用的文章,请关注它的评论中有不少有趣的反击。总之IDEA现在看来,是个好工具,不过并没有到艳压群芳的地步,我只是井底之蛙,发现了一片天空,以为就是一个美丽新世界而已。文章依然保留,就当是蝴蝶拍了一下小翅膀。

IntelliJ IDEA似乎还不是一个很流行的Java IDE,因为最近两年来,一直在使用它,渐渐得有了一些心得。想,也许我应该写一点东西来推广一下它。

为什么我会这么推崇IntelliJ呢?原因是,它能够做到超高效率的编码。

IntelliJ IDEA的宣传单上有一句话:“我们与其他软件不一样,我们的默认快捷键是精心设置过,如果您以前使用的其他IDE和我们的快捷键不同,请尝试一下我们的。”我想说的是,这句话并没有任何言过其实。

IntelliJ的快捷键,是一种容易上瘾的东西,花10分钟到半小时学习一下,你会发现自己从此就不需要鼠标了。

首先举一个搜索的例子:

您忘了工程里一个类位于哪个包下,很简单,ctrl + n,输入类名,IntelliJ会帮你搜索。不仅如此,它还支持星号和问号通配符。更简单的,对于ImportDataNodesQuickAction这样的类,您可以输入IDNQA(所有的大写字母),或者ImportDNQA(相当于省略了星号的通配符)。超强。

如果您想找的是个资源文件比如图片,而不是一个Java类,很简单,ctrl+shift+n,输入关键字。

如果您想找的既不是类又不是文件,而是Java类里面的一个函数名或一个全局变量,很简单ctrl +alt +shift +n,输入关键字。

JBuilder下有个强大的功能就是模板。输入数个字符就可以生成一大段代码。IntelliJ IDEA更是把这个做到极致。请让我介绍一下它的Live Template功能。

当您第一次尝试IntelliJ,第一个程序当然是HelloWorld。

那么main函数您怎么写,挨个敲入public static void main(String[] args) ?太长了太长了,在IntelliJ下您这样做:

首先按ctrl+j,出现一个下拉框,别理他,接着输入psvm,回车。怎么样,所有的代码都有了。光标还自动停在了你准备编码的位置上!

然后您一定是准备输入:System.out.println(“Hello World”); 然后再添加import java.lang.System申明 ?在IntelliJ下面您这样做:

依旧按ctrl+j,接着输入sout,回车。自动生成了代码不说,连Import都帮您自动完成了!光标还停在println(“的位置上,就等着您直接输入Hello World。

如果您坚持看到这里,毫无疑问,您是一位Java程序员,这点小伎俩当然无法让您留下哈喇子,那么我接着来点猛料。

好了,下一步,我们建一个类,让它实现Runnable接口。首先建立一个新类ThreadTest (这个貌似没有快捷键,我们不应该这么懒对不对)

第一步,当然是在类名后加上implements Runnable, 请只输入前两个字符im,然后按ctrl+空格,(唔,中文输入法出来了是不是?请您把中文输入法的快捷键改成别的或者去掉,您依然可以用ctrl+shift来切换输入法),您看自动完成了implements ,然后输入Ru,按ctrl+空格您看Runnable也自动完成了。

先别急着换行什么的去实现方法,听我号令。您看到public class ThreadTest implements Runnable下面有一道红线是不是?这时候按alt+回车,出现一个下拉框,有两个选项“Implement Methods”和“Make ThreadTest abstract”,直接回车,再回车。。。

您看到了,这工程就是全自动贵宾式服务。以上其实介绍了两个快捷键,ctrl+空格Alt+回车。。。一个是自动完成:一个是自动纠错(它不只是帮您实现方法,它还可以帮您添加异常检测,帮您Import工程库,一键式服务,搞定多种难题:难言之隐,一键了之),。总之有了这两个利器,您变成超级大懒虫指日可待。。。IntelliJ IDEA的口号是Develop with pleasure!什么意思,就是出门有人帮开车,进门有人帮拎包,开房有人帮您叫小姐。。。前面这些只是冰山一角,还有很多快捷键充当皮条客为您服务。而这些皮条客的名字绝对不会像VIM那样难记(不知道VIM是什么东东请无视这一句)。

IntelliJ IDEA,乃是杀人放火打家劫舍之利器。

当然了,对高级用户而言,特别是Eclipse用户而言,能够支持各种奇怪的需求才是王道,比如Ant,比如Maven,比如JAXB,比如UML。。。这些也没有任何问题,且听下回分解(有没有下回,就看有没有回帖了;当然不排除自己犯贱的可能性)。

最后说一句,这玩意有商业版和开源社区版。在这里下载。


IntelliJ的缺点:

1,内存占用大大的。。。在我的3G的内存的办公机上,有时候也会慢得我受不了重启IntelliJ。。。当然这个也取决你的工程有多大(公司的工程有8400多个文件,81万行代码)。我的IBM T43跑只有几个文件的小工程就从来没有慢到要重启。

2,界面设计器和JBuilder的思路不同,采用一种特有的XML方式存取界面,总之不推荐使用。因此我练就了手写GridBagLayout参数的基本功。

3,IntelliJ启动的时候会扫描工程中所有Java类的结构,然后用在它超强的搜索里面。因此如果您的工程有百万行代码的话,启动时间就至少有30秒之多。当然启动完了以后,一切都会好起来的。


关于为什么不使用EMACS

楼下回复提到EMACS,作为一个连VIM我都没能摸熟的菜鸟,我当然没用过EMACS。。。shame。。。

但是我有了一些想法,决定写下来。我有个朋友跟我说,写代码,NotePad就够了。还有一个朋友跟我说,不能依赖编译器,你得在编译器帮你检查出错误之前自己用眼睛挑出来,更进一步,你必须一边写代码一边就在查错,这样才能保证代码的正确性。我得说,这些话都是对的。但是IDE这种东西之所以存在,就是因为我这样的菜鸟程序员太多。如果程序员也有末尾淘汰制,每年一定会有一群IDE爱好者被赶出程序员队伍,并强制转行为皮条客。(只有更左没有更左,IDE爱好者被赶尽杀绝的一天,下一步就应该轮到VIM爱好者,哈哈哈。)

您看,我如果有练过EMACS,当然不屑于IntelliJ了,问题就在于EMACS至少要闭关数年,方能神功炼成天下无敌。天下无敌是爽,但是IntelliJ只要练30分钟可以出去试试能不能把比武招亲的姑娘搞定了,所以我爽在前面您爽在后面。

IntelliJ有个有趣的地方就是:它的门槛低,快捷键虽然有上百个,但是一个不会都没关系,照用。。。我就在没用快捷键的日子里度过了好长一段日子,慢慢地,发现了一些有趣的键,然后是发现另外一些,然后,你永远不知道什么时候能够发现一些你不知道的好姑娘。。。我之所以在用AutoHotKey绑定系统热键的时候专挑Win键,一个非常重要的原因就是我的IntelliJ热键知识还在不断增长中;我不喜欢某一天我在IntelliJ里面按ctrl + p试图查看函数参数时,却跳出个截图软件出来。

对EMACS,我想说的,尺有所短寸有所长,您牛人配置出ctrl + 空格这样懒人自动完成键一定是超级容易的(或者从上千个命令中秒检出一个适用命令),我的小小的不成的。这里有一篇:10个用EMACS蹬掉Java IDE的理由 ,写得真是太好了,太牛了,可是对我不管用:小子我刚刚学会开小轿车,就让我控制洲际导弹,我玩死自己是铁板钉钉。

其实我拼死抵赖,也无法改变我强词夺理的本质。人类之所以能进步,就在于能够学习。正如楼下向我推销EMACS,就如我向JBuilder用户推销IDEA一样。从这一点来说,我在狠狠地抽自己的嘴巴。


我用过的Java的IDE有这么几种:JBuilder用的时间最长,用了6年。Eclipse和NetBeans都用的时间不算太多,一共加起来可能只用了1年不到,还是为了在澳洲找工作准备的,NetBeans没啥印象,Eclipse强大的插件功能让我五体投地,有一阵子我甚至有可能成为它的忠实用户,直到IntelliJ IDEA的出现。

我用IntelliJ IDEA,最开始是被迫的,因为公司要求用,而且是花钱买的正版(公司也有人在用正版的JBuilder,但是很快这家伙也迁移到IntelliJ IDEA上来了)。一开始我并不喜欢它,慢慢得就离不开它。

作为一个JBuilder的用户,我最喜欢的几个功能是:强大的界面设计器;快速查找类的位置。其他功能我用得很少很少。

迁移到IntelliJ以后,我遇到两个问题:

1,界面设计器没了,这个很让我失望。(也不是完全没有,IntelliJ提供了一个New GUI Form/ GUI Dialog设计器,但我研究一下表明,这设计最后是保存为xml文件,也就是不通用。因此我直接忽略了这个功能。值得一提的是,IntelliJ IDEA提供了一个Ant任务包,让你可以脱离IntelliJ IDEA独立编译这些XML格式的界面文件)

2,另一个困难是:IDEA引入了模块的概念。这个在JBuilder貌似是没有的。模块的用途是让代码更清晰,模块的依赖性更明显,比如强制不允许服务器端模块去引用客户端代码否则就编译错误。这个理念对刚接触IntelliJ IDEA的我而言有点超前,过了挺长时间才明白模块的作用。

虽然不是大问题,但是实实在在地打击了我。。。但风雨过后就会有彩虹,现在的我,腰也直了,腿也不抖了,吃饭蛮香,睡觉倍棒,您瞅准了,IntelliJ牌IDE,值得一试。

原创的话痨如需转载请注明来源:http://blog.chenyi.me/blog/11047;转载的文章我会力所能及地注明来源如有疏漏请留言指正。

文章的脚注信息由WordPress的wp-posturl插件自动生成

分类: 编程 标签:

自定义的系统快捷键

2010年2月23日 8 条评论

使用AutoHotKey很长时间了,但是这玩意需要直接写脚本进行配置,而且还需要调整自己的使用习惯。所以到今天才算渐渐产生了依赖性,并初具规模。

设置快捷键的时候,我首先考虑的是不会其他软件冲突,而因为我最常用的IntelliJ IDEA的快捷键极多且五花八门,所以最后使用的全局快捷键全部和Win键有关,原因是程序很少会把这个键关联到热键上去。

已经被Windows占用的热键,我保留了:

Win+D。显示桌面

Win+E。现实资源管理器

我替换了两个系统热键:

Win+F。被我用AHK替换成EveryThing(我很不喜欢windows自带的搜索功能甚至到憎恨的地步,这玩意又慢又没啥用处,一周用一次倒是无时无刻不在给你建劳什子索引拖慢系统)

Win+L。被我替换成打开或显示Lingoes(因为Lingoes的热键是Alt+L,有时按成锁定,很Borling)

我已经定义的热键:

Win+T:打开或激活TotalCommander(检测是否已经运行了TC,如果已经运行,则切换窗口;否则启动TC)

Win+ V:打开或激活VIM

Win+P:无格式粘贴

Win + S:打开Service窗口

Win+ C:打开Computer Management

Win+N:打开或激活EverNote

其他全局热键:

Win + Shift + F:EverNote定义了搜索。

Ctrl+Shift+V:多重粘贴,我使用ArsClip来达到多重粘贴板和无格式粘贴。

用下来很棒,我需要一些程序的时候,不要手离开键盘去找鼠标,然后移动鼠标,点击某个小小的按钮,而是直接一个组合热键,非常流畅。因为热键的存在,一些软件的使用频率也得到了提升。

现在最大的问题是,我不能在家里的IBM T43笔记本配置同样的热键,因为它没有Win键。。。考虑到同一位置有个Fn键,我在考虑是不是用Fn来做同样的事情,只是Fn比较特殊,AutoHotKey原生并不支持,可能需要加一些插件或写一些脚本才行。

尝试了某人推荐的KeyTweak,把我的IBM的T43的Fn键映射成了Win键,结果成功了:按Fn会弹出Windows主菜单,但是 Win+E和Win+D快捷键均失效。。。而本以为键盘重新映射以后,原有的Fn+PageUp(打开键盘灯)组合键会失效,结果居然还可以用。需要继续折腾。

把这些共享出来,欢迎留言指点。另:我目前的脚本文件共享在这里,懒人可以直接下载了用。

原创的话痨如需转载请注明来源:http://blog.chenyi.me/blog/11043;转载的文章我会力所能及地注明来源如有疏漏请留言指正。

文章的脚注信息由WordPress的wp-posturl插件自动生成

分类: 软件 标签:

手机定位

2010年2月1日 2 条评论

论坛上有人问,说想随时知道自己8岁小孩要上学去了,想通过手机定位器的位置。

想了一下,这不就是GoogleLatitude吗。

Google Latitude是自动定时发布位置的。。。而且支持GPS和3G链接两种方式,前者必须有GPS,当然耗电也厉害。。。后者是通过计算移动基站的位置来定位你的位置,误差范围会比较大,最多会达600米,但好处是有信号就能定位,比如GPS在屋里一定是死菜了,但是基站定位还能用。。。

GoogleLatitude是可以手工设置位置的,也就是如果你家小孩知道了怎么用这个的话,可以手工设置一下我现在在学校,然后翘课去。。。

有个最简单的办法可以搞掉后台自动更新位置:重启手机。

GoogleLatitude可以让程序在后台运行自动更新位置。前提是3G链接一直开启。更新位置对流量要求很小。

我是在E63上玩这个的。。。S60V3系统。

GoogleLatitude可以启动历史记录功能,也就是自己可以查看自己地理位置的历史记录。。。您把自己的孩子注册一个Google帐号,用这个Google帐号来跟踪,密码自己留着,登录到Google网站,这一天这家伙都到哪里溜达去了就都知道了。

又想了 ,觉得“手机跟踪器”这个词比较有意思,既然有人提,说不定已经有这样的产品了。Google一把。。。唔。。。超牛啊。可以截获短信,截获位置,监听。。。联想到微型设想设备之类的东西,这世界已经进入了间谍时代了。

这玩意下次回国也许可以买一个过来,再搞一个破手机,给妞妞用。

原创的话痨如需转载请注明来源:http://blog.chenyi.me/blog/11010;转载的文章我会力所能及地注明来源如有疏漏请留言指正。

文章的脚注信息由WordPress的wp-posturl插件自动生成

分类: 电脑 标签:

重装了老大的操作系统。

2010年1月19日 2 条评论

使用的是“番茄花园 Windows XP SP3 1.2版本”(盗版,我的T43有个正版XP序列号,不过我不爱它)。

本来想看看T43能不能从U盘启动,上网一查,貌似很复杂,心想也不费那事了,直接光盘吧

JH资助的CDR刻录盘,光盘放入光驱,启动到安装界面,选择3,安装DPS版本。所谓DPS版本,就是打包了驱动程序的版本,最后证明这些驱动没啥用。 安装好以后,以下驱动出现问题: 主板;电源;声卡;显卡;指纹驱动;网卡驱动;无线网卡驱动。

还好我还有另一台T43可用。上网Down了,安装好了。现在还有一个设备有问题,貌似是电源的设备,不影响使用也就不管了。(发现显卡驱动有更新,就给自己的T43也更新了一把,效果没看出来;倒是催化剂驱动面板显示不出来了,不过也不影响使用。)

安装电源驱动居然要求.net framework 3.5,升级安装之。(一个驱动居然要这么一个庞大的库作为支持,开发人员难辞其咎)

然后安装360安全卫士,安装50多个系统补丁。

安装FireFox,安装Chrome,升级IE6到IE7。

安装软件时报错,发现是注册表中将“我的文档”指向了D盘;搜索替换注册表,修复。

安装Java,安装EveryThing,安装Lingoes。安装QQ影音,安装MSN,安装Twirl。安装Foxit的PDF阅读器

安装Office2007(盗版,然后用360安全卫士又安装了20多个补丁)。

系统自带了搜狗输入法和五笔输入法。升级搜狗输入法,修改默认的剧难看的鸟巢Skin,实在找不到严肃一点的Skin,只好找了一个Kitty的Skin。

安装杀毒软件时犹豫了一下,想买收费的但是放弃了,本想装AVG,但是不喜欢它不是跳出的提示网页,最后装了360 杀毒(我好堕落)。

好几年没有重装系统了,难得装一下,感觉居然很喜欢。

觉得还是应该把这个过程记下来的,以备已经再次安装时备用。

原创的话痨如需转载请注明来源:http://blog.chenyi.me/blog/11001;转载的文章我会力所能及地注明来源如有疏漏请留言指正。

文章的脚注信息由WordPress的wp-posturl插件自动生成

分类: 电脑 标签:

[转载]对Google放弃中国的一个程序员的反应

2010年1月14日 没有评论

这个很有趣的,别人看了可能没啥感觉,但是对一个程序员来说,这些个都是贴心知己话。

我一直自认是犬儒主义者。但是正如回帖所说:“太平狗都这么难当”,没错,这是一个求当奴隶而不可的时代。本人并不赞同此文的观点,首先如果政府真有那么大能量,别说扫黄了,反腐倡廉早就成功了;其次Google如果走了,也就是不够拥护我们的伟大光荣正确,走了没啥可惜的:Google不就是前一阵被CCTV传播黄色淫秽的网站么;这么一说,很快大家都只会记得淫秽两字;Google被击退乃是我们互联网的伟大胜利才对。

原帖:http://www.mitbbs.com/article_t1/Military/33159291_33159483_1.html

担心在网络上再出现一个象BBC,CNN一样的可以影响世界观点,舆论,左右政治的Google

但是小弟觉得,政府很多措施可以灵活一些,而且更多时候不要做挂羊头卖狗肉的勾当,这样,即便出发点再好,也容易被人所鄙视,更会让人联想幕后是不是有什么见不得人的政治黑幕。

比如,要扫黄就真的扫黄,不要找一堆人在google故意搜母子乱伦的关键词,然后等这些词上了google的热榜,再截图,用来当证据,也不要找一堆内部工作人员当演员,故意设计脚本来演戏,说自己的舍友因为google能搜到黄色网页而坠入肉欲的。这都是当年台湾那些下三滥节目用的手段,堂堂一个国家电视台,怎么好的不学,偏偏学这些东西。

坦白地说,我现在之所以同情Google,是因为我觉得它的手段相对来说,还是比较上得了台面,比较干净,比较清白的。我自己也感觉到,现在的关键词过滤有扩大化的趋势,倘若只是对一些政治敏感词进行屏蔽,我个人可以接受,但现在上海的朋友提到,连“月入过万”也成了敏感词,什么倒倒,脆脆,维权,上访之类的就更不用说了。还有一点,国内程序员已经是一个数量非常可观的群体了,却没有可以反应自己意见的通道。李彦宏,陈天桥他们是资本的代表,是巨头公司的执掌人,不是程序员的代表。

谁都可以管着我们,网监,版署,文化,工信,可是谁都不怎么听取我们的意见。每次封网也好,关停也罢,都是通知或是电话,甚至有时都不会告诉你,最先受影响的往往是程序员为代表的这些互联网工种(在这里我有点身分模糊了,既是程序员,也是初创者),可是每次都没人来询问一下我们的意见,即便我们主动向上反应意见了,也是推来推去,或者是一幅此事不可说,不可问的就直接神秘的回秘了。

就说11月的事,突然下令,个人不允许申请域名;然后我一夜没睡,带着自己的,朋友的几十个域名裸奔到name和godaddy下面;再过一个月,突然下令说不准网站以“XXX某人的个人网站”,“XXX人的博客”为名,我又得挨个通知我的朋友和客户,求爷爷告奶奶,请他们一定要改名,千万别给我惹麻烦。(但是后来发现不改也没有什么麻烦,于是我又成了他们眼中的太监)。没几天,机房又来函说要检查机房,停一段时间,我
姑且相信了。月底,又要我们来一次大清查,看看哪个网站没备案,限期一星期内办完。问题是,国家备案中心正常的流程是20个工作日,顺利地话,可以办完。也是一位同行的技术站,40多天了,还是显示待处理中。一个合作过的公司,把所有服务器都迁到香港了,按剩余天数把钱退给我,但是为了再次托管这些网站,我只能去美国找主机,找vps,价格自然是高,此外我还要退款的基础上加钱以达到一年的租期,还要应付每个客户的不满,我生怕客户按照合同办事,向我索要赔偿。那时哪还有钱可赔,谁又能赔偿我。难道非逼着我以后将“政府神经性封网”和“火灾,地震,战争等非人为因素”一起写到合同条款里?

我在做一个以动态语言为主的类似cnblogs.com和javaeye.com这样的社区型网站,我自己写了几个爬虫,这一年来都在扒几百个技术博客,整理和分析他们的内容。每一周,都有几个博客无法访问,或是抓回来的页面显示的是该网站已关闭;或是显示该博客已变为独立博客,放在美国,旧博客不再维护。而且越来越多的文章开始与技术无关,开始点评政治,外交;越来越多的文章在谈论民(光贱字)主,自(光贱字)由,在讨论美国历史上那些带有神话色彩的民间组织战胜政府的案例,越来越多的作者在转载那些我认为是颠倒史实的抹黑土(光贱字)共的文章。但是我无力反驳这类文章,因为我不想在圈内被人视为异类。

不要去批判这些程序员不顾史实,人云亦云,乱转载文章,乱批驳土(光贱字)共,乱抹黑历史,他们中的很多人也是当年热血的红客,是什么样的政策让他们变得开始地憎恶这个政府,是什么样的经历让他们愿意相信和传播这样的文章。或许是我接触的程序员面太窄,正好最偏激的那部分被我遇见。

上面这些,都是我发的牢骚。我想我所遇到的问题,铁手一样也遇到过,而且以西西河的影响,他的问题肯定比我更棘手。但区别是,铁手不用担心被人抱走服务器,拿走硬盘,铁手也不太担心国内的网民访问不了网站,毕竟海外华人是是中坚力量。而我,一个国内的小初创程序员,我真的很害怕,很在意这些。

我想说的很简单:我很爱这个国家,我也不反感这个政权,我也感觉到了生活越来越好,但是国内的互联网环境的政治味也越来越浓了。我真的真的真的不想碰政治,我只想找个地方可以好好地托管我的服务器,不用担心夜半电话,不用担心被拔线,不用担心域名被截持,更不用担心被视为一小摄在网上别有用心的坏分子。

我曾经想过amazon ec2,但是谁能保证,下一个投降的不是amazon呢

现在正好是国内时间午夜12点,我继续代码去了。这次若Google真的离去,无法访问,在仁兄们大国策论的餐桌上,充其量就是随手扔掉一份难吃的佐餐小菜;但对于象我这样微渺的小程序员来说,这分又馋又羡又怨又恨的心情,怕是不能只用酸楚和不舍来形容。

原创的话痨如需转载请注明来源:http://blog.chenyi.me/blog/10996;转载的文章我会力所能及地注明来源如有疏漏请留言指正。

文章的脚注信息由WordPress的wp-posturl插件自动生成

分类: 网站 标签: