户外

程序员,你的电脑是啥样的啊?

工欲善其事,必先利其器。程序员的工作需要电脑完成,我个人在家用Y450A的本子,已经跑了三年了,像我这样喜欢折腾电脑的人,现在的Y450A一开机就呜呜的喊叫了。在公司用台式机,肯定是比本快的多了。家里用xp系统,之前一直用win7 64,现在跑起来有些慢了,还是xp熟悉,就换成了xp,你们的现在用什么配置、什么系统呢?相信大部分的人还是xp或者win7吧!普通人咱们用win,文艺的用mac,高手们用linux,也不排除某些13也用linux。现在一台4、5K的电脑,基本就能够满足程序员的需要的,CPU没多低的了,内存配置个4G的都很普通(N年前,我们一台512M的,都属于大内存了),硬盘500G都小了,显卡,不做个设计、不玩个游戏,现在的集成显卡普通的都1G了,还能不够你用吗?再让你下次选择一台做开发的电脑,你会选择什么样的?这里提醒下,做开发,台式机是最好的,各种的DIY,别选什么品牌的,对一个开发者来说,不值得。

jvm的内存调优

1) 堆    运行时数据区域,所有类实例和数组的内存均从此处分配。Java 虚拟机启动时创建。对象的堆内存由称为垃圾回收器 的自动内存管理系统回收。 堆由两部分组成:    其中eden+fromspace+tospace也叫年轻代(young),old space叫旧生代.    其中还有S1,S0(在JDK的自带工具输出中会看到),分别指的是Survivor space,存放每次垃圾回收后存活的对象.    Old Generation , 主要存放应用程序中生命周期长的存活对象垃圾回收主要是对Young Generation块和Old Generation块内存进行回收,YG用来放新产生的对象,经过几次回收还没回收掉的对象往OG中移动,对YG进行垃圾回收又叫做MinorGC,对OG垃圾回收叫MajorGC,两块内存回收互不干涉2) 非堆内存   JVM具有一个由所有线程共享的方法区。方法区属于非堆内存。它存储每个类结构,如运行时常数池、字段和方法数据,以及方法和构造方法的代码。它是在 Java 虚拟机启动时创建的。    除了方法区外,Java 虚拟机实现可能需要用于内部处理或优化的内存,这种内存也是非堆内存。 例如,JIT 编译器需要内存来存储从 Java 虚拟机代码转换而来的本机代码,从而获得高性能。   Permanent Generation   (图中的Permanent Space) 存放JVM自己的反射对象,比如类对象和方法对象3) 回收算法和过程    JVM采用一种分代回收 (generational collection) 的策略,用较高的频率对年轻的对象(young generation)进行扫描和回收,这种叫做minor collection,而对老对象(old generation)的检查回收频率要低很多,称为major collection。这样就不需要每次GC都将内存中所有对象都检查一遍。      当一个URL被访问时,内存申请过程 如下:A. JVM会试图为相关Java对象在Eden中初始化一块内存区域B. 当Eden空间足够时,内存申请结束。否则到下一步C. JVM试图释放在Eden中所有不活跃的对象(这属于1或更高级的垃圾回收), 释放后若Eden空间仍然不足以放入新对象,则试图将部分Eden中活跃对象放入Survivor区D. Survivor区被用来作为Eden及OLD的中间交换区域,当OLD区空间足够时,Survivor区的对象会被移到Old区,否则会被保留在Survivor区E. 当OLD区空间不够时,JVM会在OLD区进行完全的垃圾收集(0级)F. 完全垃圾收集后,若Survivor及OLD区仍然无法存放从Eden复制过来的部分对象,导致JVM无法在Eden区为新对象创建内存区域,则出现”out of memory错误”    对象衰老的过程    young generation的内存,由一块Eden(伊甸园,有意思)和两块Survivor Space(1.4文档中称为semi-space)构成。新创建的对象的内存都分配自eden。两块Survivor Space总有会一块是空闲的,用作copying collection的目标空间。Minor collection的过程就是将eden和在用survivor space中的活对象copy到空闲survivor space中。所谓survivor,也就是大部分对象在伊甸园出生后,根本活不过一次GC。对象在young generation里经历了一定次数的minor collection后,年纪大了,就会被移到old generation中,称为tenuring。(是否仅当survivor space不足的时候才会将老对象tenuring? 目前资料中没有找到描述)     剩余内存空间不足会触发GC,如eden空间不够了就要进行minor collection,old generation空间不够要进行major collection,permanent generation空间不足会引发full GC。4 接下来这部分讲解的是TOMCAT或者其他服务器出现如下错误时的分析:   1、首先是:java.lang.OutOfMemoryError: Java heap space解释:Heap size 设置JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。解决方法:手动设置Heap size修改TOMCAT_HOME/bin/catalina.bat,在“echo “Using CATALINA_BASE: $CATALINA_BASE””上面加入以下行:Java代码set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m  set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m或修改catalina.sh在“echo “Using CATALINA_BASE: $CATALINA_BASE””上面加入以下行:JAVA_OPTS=”$JAVA_OPTS -server -Xms800m -Xmx800m -XX:MaxNewSize=256m”2、其次是:java.lang.OutOfMemoryError: PermGen space原因:PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。解决方法:1. 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.bat(Linux下为catalina.sh),在Java代码“echo “Using CATALINA_BASE: $CATALINA_BASE””上面加入以下行:   set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m  “echo “Using CATALINA_BASE: $CATALINA_BASE””上面加入以下行:set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512mcatalina.sh下为:Java代码JAVA_OPTS=”$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m”JAVA_OPTS=”$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m”JVM的默认设置**堆**(heap)(News Generation…

gitblit 中文语言包

Gitblit 是一个纯 Java 库用来管理、查看和处理 Git 资料库。相当于 Git 的 Java 管理工具。目前已经发布到了1.2的版本,翻译的时候是按照1.1的版本翻译的,不过1.2的也能用,已经提交给作者了。 在下一个版本应该会一并发布出来,如果想直接使用,直接把文件GitBlitWebApp_zh_CN.properties放到WEB-INFclassescomgitblitwicket路径下面就可以了。Gitblit使用的wicket框架,应该算是种比较古老的框架吧!研究了一下,与swing开发有些类型,还是很研究的价值的。下载:gitblit.war | 中文包链接: gitblit官网 | gitblit-github最近github被封了,又是天朝的一个杯具!

四个裸身搓麻将的女人

在微刊上面看到的,相当诡异的的图画。没看过的先看看图画,在看解读吧! 《北京,2008》[油画]——作者/刘溢(旅加华裔画家)**下面的是解读 **正面下方,背後有纹身的亚裔女子,是中国。左手打牌打得聚精会神的,是日本。穿着上衣侧头的是美国。躺得很淫荡的,是俄罗斯。旁边站着的小女孩,则是台湾。这幅叫作《北京2008》的油画,最近在西方社会以及网路世界引发的口水已经比画家所用的颜料多出千倍。画家是刘溢,一个去了加拿大的中国人。有意思的是这张图名字叫北京2008,画的却是四个女人打麻将,其实隐藏着很深的含义在里面。中国碰了「东风」,有两层意思,一是中国借了东风再崛起;二呢,「东风导弹」是中国已经摆台面上的有力武器中国一方面形势好像不错,但不知道其他的牌如何,而她又在牌桌下做着小动作。美国一副成竹在胸的样子,看着台湾,表情很耐人寻味,一方面是想从台湾的表情里读懂些什麽,一方面眼神又在给台湾做暗示。俄罗斯一副漠不关心的样子,其实不然。一边脚勾搭着美国,一边在给中国递牌,两国可以说是在暗中互相交换利益。日本人一本正经看着自己的那副牌,全然不知道别人在做些什麽动作,只顾着打着自己的牌。台湾身穿红肚兜,意思是中华文明的真正继承者。台湾一手拿着水果一手拿着水果刀,表情阴郁而愤恨的看着中国,但没办法,他不入局,无论最终谁胜利,他都只能帮别人切水果。窗外河边乌云密布,暗示海峡两岸局势危机,一触即发。墙上的挂像也很有意思,孙中山的胡子,蒋介石的光头,毛泽东的长相。四个女子的着装,中国光着上身,下边一条裙子一条内裤。美国一件外套一件内衣,下身却光着。俄罗斯只剩一条内裤了。日本已经什麽都不剩了。道尽各国局势的写照。美国衣着看上去最整齐,实力也最强大,其他几人均有点衣不蔽体,但美国貌似光鲜,但却其实已经暴露了自己的底线,而中国和俄罗斯虽然貌似赤裸,但关键阴私却藏住了。假设这局牌是赌脱衣服的,谁输了谁脱。一局牌打下来,中国输,则沦落到如今俄罗斯的地步(跟苏联解体情况相当)美国输,也会沦落到俄罗斯的地步,俄罗斯再输,则彻底沦落到一无所有。而日本,其实已经一无所有了;俄罗斯貌似相公在陪打,其实俄罗斯是在和中国换牌,真正陪打的是日本,因为她已经没东西可输了,而且一输就立刻出局。总结就是,美国最假正经,看上去最光鲜,但其实危机不小,如果打输这一局,他就得交出霸主的地位。俄罗斯两边勾搭,最是阴险狡诈,情况有点类似解放後的中国,一会儿倒向苏联一会儿倒向美国,因为自身实力不济,只能在两边摇摆以求得生存和发展。中国的牌有太多看不见,说明中国隐藏了很多实力?而且桌面下又和俄罗斯在换牌,而美国人却只能从台湾的表情上去揣测中国和俄罗斯干了些什麽。日本人则一无所知,继续打着自己的牌。台湾,冷眼旁观,桌上这些人在搞什麽她都看见了,心里也清楚,可是她没有入局的资格和能力,也没有说话权,心怀不满也无济於事,只能乖乖做丫头,给胜利者献上水果。胜利者应该在中国和美国之间产生,这个悬念不大。但要看清楚,美国尽管实力强,但她们玩的是中国麻将,不是西方扑克,按中国人的规矩玩牌,美国人的胜算又有多少?《2008,北京》(又名《搓麻将的女人》)一副具有影响力的油画,不仅体现了作者高超的艺术表现力,更体现了作者的思想性。上面这幅油画是去年春天在纽约一个画展上展出的油画,它的名字叫做《2008,北京》。这幅画暗示了什么?2008北京,大家自然会想到北京奥运会,但是,从油画所表现的四位游戏者所做的游戏来看,是中国的麻将,而麻将是中国游戏,由此可以肯定地说,油画所表现的主题不是北京奥运会。哪又是什么呢?油画的背景是阴云密布下的海滩,实际上是暗示台湾海峡被战争的乌云笼罩。实际上,进入2008,大陆与台海形势紧张,大陆3000枚导弹,瞄准台海。油画的人物,除了画面上明显的五个人之外,在左边墙上还挂着一幅人像,人像的脸廓是毛泽东的,胡子是孙中山的,光头是蒋介石的,三个人的头像混杂在一起,表明了中国大陆和台湾是孙中山、毛泽东、蒋介石遗留下的一个历史问题。油画中穿红肚兜的小女孩代表台湾,因为她是代表一个地区,无法与大国的地位相平等。四个打麻将的女子,可以肯定有一位是代表中国大陆的女孩,她的上身的纹身有中国的图腾凤凰,正对着中国大陆的女孩代表的是美国,因为中国与美国给太平洋相望;左边那个全身赤裸的代表日本,右边躺着的则代表俄罗斯。这幅画想表达的是,台海局势如何发展,完全是中美俄日四国在主导,台湾却被排挤在牌局之外,只能等待别人安排它的命运。油画的主体是四个打麻将的女子,她们身上衣服的多少代表了实力的强弱。正对大家的女子衣服穿得最多、最整齐,表明美国是四个大国中实力最强的。美国双手抱着头,眼睛望着台湾,对牌局心不在焉的样子,暗示美国自认为胜券在握,对台湾虎视眈眈。右边的俄罗斯一只腿搭在美国身上,另一只手却伸在中国背后,帮助中国偷偷换牌。再看俄罗斯的牌,少了一张,这样的牌根本不能胡,说明俄罗斯对台湾问题完全没兴趣,它明里和美国勾搭,暗中却把武器卖给中国,俄罗斯只是想借台湾问题制约中国和美国。中国上半身没穿衣服,下半身的衣服被桌子挡着看不见,暗示大家都看不清楚中国究竟有多少实力。中国的牌中有一个明杠东风,代表中国最具有威慑力的武器是“东风—31”中程导弹,这可是中国大陆对付台湾的杀手锏。中国背后还暗藏着两张牌,表明中国暗中留了一手,让其他人摸不准自己的实力。左边的日本全身赤裸,它的实力在这四个国家中是最弱的。它聚精会神地看着自己的牌,却没有察觉牌局中大家的小动作,而且从动作上看,非常兴奋,暗示着台海危机、甚至于台海战争对于日本,形势看好,加入战争一开,两虎相斗,必有一伤,日本坐享其成。这说明日本在台湾问题上关注自己的利益,。虽然从表面上看,日本的牌最好,但真正起决定作用的反而不是牌局本身,日本纯粹是陪太子读书,它在台海局势中完全得不到好处。代表中国的女子身上绘着凤凰文身,下身穿的却是带蕾丝的西式内衣。这说明在美国人看来,中国的传统文化只剩下一个外壳,中国本质上正在靠近西方,甚至和西方没什么太大区别,反而是穿着红肚兜的台湾比较完整地保留了中国的传统文化。台湾右手端着一盘水果,左手捏着一把小刀,表示不好意思亮出来,但水果刀,虽不锋利,但可杀人。而大陆回敬的是东风导弹,这前面已有叙述。这暗示台湾基本上不具备反抗能力,但也具有杀伤力。但无论这次牌局是谁胡牌,台湾都得乖乖地敬奉上那盘水果。2008年已经过去,陈水扁的台独政策造成的台海紧张形势、乌云密布,已伴随着国民党马英九的上台,而已形势缓和、乌云散去。但作者对台海形势及大国关系的洞察力,引人深思。原文没找到,微刊

Myeclipse开发web应用部署到tomcat根目录

Web应用部署在tomcat中,默认是带了web应用名称的。例如:web应用项目名称为:testweb,则部署到tomcat后,是部署在tomcat/webapps/testweb中,网址为:http://localhost:8080/testweb。一般我们实际使用是不带testweb的,发现了一个小方法。修改Web Context-root的值为“/”,就可以将testweb去掉,看webapps,testweb是部署到了webapps/ROOT中的,实际的应用部署也需要部署在ROOT中。原理不解释,看下tomcat文档就能明白,不看也行,知道怎么用也就够了!注意:建议使用tomcat7,tomcat6没测试。另外:如果想更简单的开发使用,推荐使用内嵌jetty。

TTS-API.com —— 高质量的 TTS 在线 API

在oschina上面早上看到的,把文字转换成语音,不幸的是,目前不支持中文。有个支持中文的技巧,把中文写成拼音,比如“你好”,就写“ni hao”!试试发音吧!你好听起来,典型的老外说汉语!

光棍节程序员闯关秀 小游戏

光棍节程序员闯关秀,没有几把刷子,还真是很难玩下去的,我承认我没玩完,按照攻略才完成的。挑战一下自己吧!看看能过几关。游戏地址:http://segmentfault.com/game/  攻略地址:http://www.cnblogs.com/partoo/archive/2012/11/11/2765070.html

metro4diandian预览版

metro4diandian预览版已经使用bootstrap框架,采用了metro样式,与bootstrap4diandian差别不大,只是引入样式不一样。仅作为预览,细节再做调整了。

AngularJs学习笔记--Guide教程系列文章索引

一直在AngularJs的使用,也学习过一点,没做什么笔记,有网上朋友做了笔记,还建立索引,推荐学习.索引导航…AngularJs学习笔记–bootstrapAngularJs学习笔记–html compilerAngularJs学习笔记–conceptsAngularJs学习笔记–directiveAngularJs学习笔记–expressionAngularJs学习笔记–FormsAngularJs学习笔记–I18n/L10nAngularJs学习笔记–IE CompatibilityAngularJs学习笔记–ModulesAngularJs学习笔记–ScopeAngularJs学习笔记–Dependency InjectionAngularJs学习笔记–Understanding the Model ComponentAngularJs学习笔记–Understanding the Controller ComponentAngularJs学习笔记–E2E TestingAngularJs学习笔记–Understanding Angular TemplatesAngularJs学习笔记–Using $locationAngularJs学习笔记–Creating ServicesAngularJs学习笔记–Injecting Services Into ControllersAngularJs学习笔记–Managing Service DependenciesAngularJs学习笔记–unit-testing在推荐一个angular-ui,整理集成了很多插件,完全可以作为一个js包含ui的框架使用了.链接: AngularJs官网 | angular-ui

最常用的100个ClassName集合

终于不用为给css取名而烦恼了,感谢Vivien Chen的整理. about 关于 account 账户 action 操作 ad,advertisment 广告 arrow 箭头图标 article 文章 aside 边栏 audio 音频 avatar 头像 background 背景 banner 条幅,广告 bar 条 branding 品牌化 breadcrumbs 面包屑 button 按钮 caption 标题,说明 category 分类 chart 图表 clearfix 清除浮动 close 关闭 column 列 comment 评论 community 社区 container 容器 content 内容 copyright 版权 current 当前态,选中态 default 默认 description 描述 details 细节 disabled 不可用 entry 文章,博文 error 错误 even 偶数,常用于多行列表或表格中 fail 失败(提示) feature 专题 fewer 收起 field 用于表单的输入区域 figure 图 filter 筛选 first 第一个,常用于列表中 footer 页脚 forum 论坛 gallery 画廊 group 模块,清除浮动 header 页头 help 帮助 hide 隐藏 hightlight 高亮 home 主页 icon 图标 information 信息 last 最后一个,常用于列表中 links 链接 login 登录 logout 退出 logo 标志 main 主体 menu 菜单 meta 作者、更新时间等信息栏,一般位于标题之下 module 模块 more 更多(展开) msg,message 消息 nav,navigation 导航 next 下一页 nub 小块 odd 奇数,常用于多行列表或表格中 off 鼠标离开 on 鼠标移过 output 输出 pagination 分页 popup 弹窗 preview 预览 previous 上一页…