- 博客(38)
- 资源 (8)
- 收藏
- 关注
转载 Java异常:选择Checked Exception还是Unchecked Exception?
分类:Java(35) 目录(?)[+]Java包含两种异常:checked异常和unchecked异常。C#只有unchecked异常。checked和unchecked异常之间的区别是:Checked异常必须被显式地捕获或者传递,如Basic try-catch-finally Exception Handling一文中所说。而unc
2017-05-25 18:19:15
465
原创 设置sublime
sublime的设置与众不同,需要编辑配置文件,而不是其他软件常用的通过图形界面进行修改。 比如我很不喜欢每次从新窗口中打开文件,而想改为使用tab打开文件。 通过阅读和查找sublime的default配置,发现如下 “open_files_in_new_window”: true 这条语句设定新窗口打开文件。可是! 这个文件是不可编辑的。怎么办呢。 我灵机一动,编辑user的配置文件
2017-05-20 12:14:19
337
原创 在Linux上生成java程序的火焰图
首先安装perf-map-agent,这个比较麻烦,执行如下: mkdir /usr/lib/jvm cd /usr/lib/jvm yum install git git clone –depth=1 https://github.com/jvm-profiling-tools/perf-map-agent cd perf-map-agent/ yum install cmake
2017-05-18 13:03:12
2968
原创 卸载node脚本
node的版本升级很快,需要删除旧版本。可是我是通过官方下载的pkg文件安装的,官方也不提供卸载方法。只好自己写了一个脚本,如下:lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom \ | while read i; do sudo rm /usr/local/${i} done sudo rm -rf /usr/loc
2017-05-09 21:22:00
650
原创 自动化部署java web项目
关于自动化部署已经说了很多,也有很多专业的工具。本文不敢高攀那些高大上的方案,只是从自身实际出发,主要使用svn这个版本管理的工具,方便了发布和部署。一. 原因做为一个中小团队,发布和部署是家常便饭,而且容易出问题,我们一般采用的方法有如下两种:直接更换war包替换相应的jar包 前者在有时候频繁部署的时候很慢(因为war包比较大,至少都有几十M,每次都需要几分钟);而后者先要找到更新的jar
2017-02-05 09:28:27
9363
转载 mac os 10.10以上的开启端口转发-解决mac默认不开启1024以下端口权限问题
mac os 10.10以上的开启端口转发-解决mac默认不开启102以上端口权限问题本人 10.10.2的mac os,tomcat想要在80端口上启动,网上查了N多资料都不行,只有这个方案可行:老版本的OS X使用的是ipfw设置端口转发,但新的版本特别是在我这个OSX Yosemite (10.10.3)中,已经无法使用ipfw,而是换成了PF。PF配置端口转发的文章网上也有一大堆,但用下来没
2016-08-21 17:26:24
16325
原创 卸载docker
boot2docker卸载脚本: https://github.com/boot2docker/osx-installer/blob/master/uninstall.shtoolbox卸载脚本 https://github.com/docker/toolbox/blob/master/osx/uninstall.sh
2016-07-23 16:04:08
575
原创 安装火焰图生成工具
安装 SystemTap环境 CentOS 6.5 2.6.32-504.23.4.el6.x86_64SystemTap 是一个诊断 Linux 系统性能或功能问题的开源软件,为了诊断系统问题或性能,开发者或调试人员只需要写一些脚本,然后通过 SystemTap 提供的命令行接口就可以对正在运行的内核进行诊断调试。首先需要安装内核开发包和调试包(可以从http://d
2016-07-19 11:36:32
998
原创 修改Eclipse neon的project explorer 下的项目名称字体设置
eclipse中project explorer中的字体太小,长时间盯着看着实有点累,怎么办了,得想办法把字体设置的大一点。之前使用luna版本的eclipse时,只要找到eclipse下的org.eclipse.ui.themes目录就可以了,但是新版本下的eclipse的plugins目录居然是空的,这是由于neon版本使用了installer。后来查到eclipse.ini文件中有这
2016-07-16 20:45:57
3556
1
转载 解决 Local gulp not found in
在mac的WebStorm中的Terminal,先全局安装gulp,即 npm install -g gulp 安装完成后,执行gulp后发现有这个错误: $ gulp [23:29:31] Local gulp not found in [23:29:31] Try running: npm install gulp 解决方法: 第1步:先cd到当前目录中,如
2016-05-23 10:46:23
20204
原创 架构之沟通与协商
这两天随便看书,关于架构,偶得几点:1.架构的关键在于人,架构其实最终是综合反映了各个关键利害人的利益和立场所在;2.注重关系甚于正确与否,一味的争论是不会有结果的,反而塑造良好的关系氛围,让大家可以畅所欲言,充分沟通,才有助于构建合理全面的方案;3.清晰性重于完整性,很多时候,完整的解决方案是不存在的,就是需要不断的迭代跟进,此时,一个小的解决方案的目的清晰、结构清晰,有利于完成目标
2016-05-06 17:50:47
431
原创 磁盘空间不足导致的问题
偶尔服务器会发生一些莫名其妙的错误,发生这些错误的原因之一就是磁盘空间不足。我们使用tomcat部署,tomcat 会产生日志,虽然一天两天产生的日志量不大,但是时间长达几个月之后,日志量可能就会积累到几个G、十几个G,而系统盘容量有限,此时就会对服务的正常运行产生影响。为了避免这种问题:首先,部署脚本到crontab,定期清除日志;其次,分割catalina.ou
2016-05-06 17:29:15
2264
原创 flyway的使用
在频繁的工程实践中,服务端程序与数据库不断的更新,如果服务端和数据库部署不一致,经常性的会导致各种问题。为了解决这一问题,可行的方案之一就是让数据库随着服务端的版本而更新,flyway就是一种解决方案。一. 目的管理数据库更新。二.方法直接在java工程中嵌入sql脚本。工程重新部署时,会自动更新数据库,保证数据库与代码同步,避免了手动更新数据库带来
2016-05-06 17:23:59
4272
原创 centos7 安装 mysql
由于centos7内置了mariadb,故安装mysql有点麻烦。下面列出安装步骤。首先,需要卸载mariadb:1.#列出所有被安装的rpm package: rpm -qa | grep mariadb, 得到:mariadb-5.5.41-2.el7_0.x86_64mariadb-libs-5.5.41-2.el7_0.x86_64mariadb-serv
2015-11-15 18:11:36
462
原创 U盘安装CentOS 7的方法
安装CentOS7前,我的PC是win7和CentOS6.5的双系统,使用GRUB引导启动。我在CentOS6.5中安装了很多应用软件和服务器软件,并重新编译了高版本的内核。但由于在按自己需求打造linux系统的过程中,犯了很多不能解决的错误,导致系统有些地方配置的不如人意。作为一个完美主义轻度患者,得知CentOS7发布后,就开始琢磨升级。1. 首先尝试了在线升级的方法。参照http
2015-11-12 17:30:13
1931
原创 解决confluence的乱码问题
最近想尝试一下wiki系统,商业版的wiki:confluence还是比较容易上手。按照教程“Windows下安装设置Atlassian-Confluence-5.1.4并破解汉化(另附图解) ”一步一步将confluence安装完成。试用了一段时间,发现一些含有中文的页面中,中文都变成了问号。继续搜索解决方案,发现时数据库中数据的格式不对,在mysql中输入以下命令:
2015-11-03 22:09:47
4244
原创 接口返回值规则
技术团队工作中,接口的规则相当重要。接口可分为两部分,入参和返回值。下面就简单阐述我的相关思考:返回结果,使用json表示: {“code”:0,”thirdCode”:”“,”msg”:”[font=宋体]操作成功[/font]”, “data”:{“fUid”:2,”fToken”:”31ba90af-5468-4d87-9b6eeaa001112ab1f”,”fTokenExptime”:1
2015-11-01 16:00:26
14922
转载 韩咏梅:幸福只需要七分饱(转自新加坡联合早报)
看到联合早报上某件与it相关的文章,又包含人生哲理,故转来,请徐徐读之。创新源于匮乏,有人意识到在这世界少了某种东西,人类才有动力去创造。如果感觉很满足,或者觉得这个世界上还有很多东西可以等着自己去索取,人们会全心全意去争取传统观念里的成功,破格思考和行动的人就少了。上个月到上海办点事,在微信上问一个在当地工作的朋友如何带一笔钱过去。数额不是很大,但是以面额最大
2015-11-01 15:39:58
991
原创 安装confluence
1.atlassian-confluence-5.6.5.tar.gz confluence wiki官方程序2.mysql-connector-java-5.1.25-bin.jar 如果使用mysql需要此驱动3.confluence5.x-crack.zip 破解工具4.atlassian-extras-2.4.jar 破解需要的jar包5.Confl
2015-10-29 20:47:39
1958
转载 zookeeper自动清理日志
从3.4.0开始,zookeeper提供了自动清理snapshot和事务日志的功能,通过配置 autopurge.snapRetainCount 和 autopurge.purgeInterval 这两个参数能够实现定时清理了。这两个参数都是在zoo.cfg中配置的,将其前面的注释去掉,根据需要修改日志保留个数:autopurge.purgeInte
2015-10-23 11:38:47
1609
转载 jps命令使用
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简
2015-10-23 11:16:53
345
原创 jira使用
jira是一个广泛使用的项目与事务管理工具,这两天试着安装了一下,基本步骤都遵循http://blog.itpub.net/26230597/viewspace-1275597/。只有一点需要注意:执行start-jira.sh 启动jira时,总是打开tomcat的管理页面。 开始不明白,后来多方调试明白这是由于本机设置环境变量导致的: 需要执行:unset CATALINA_HOME 然后
2015-10-21 14:18:21
567
原创 解决bug的3种方法
市场人员来电话了:“那个谁,这个问题解决一下啊”。顿时研发就头大了。一般而言,解决bug有3种方法:第1种,加日志,加断点,寻找程序轨迹,抓住逻辑与预想差异的地方。这种方法是正面应对,如果行的通,那是直击痛点,畅快淋漓;如果行不通,那就要了命了。第2种,问牛人,查搜索引擎,比如同事和朋友中谁经验较多的,再比如谷歌、百度乱搜一气,有时我还会用必应,也可以查查stackoverflow等专
2015-10-20 17:21:11
1521
原创 一个iOS bug引发的思考
今天一个iOS App上线了,上线之后发现有一个严重的bug,这下悲剧了。 其实这个问题很好查,很快就改好了。改好之后得发布啊,但是地球人都知道,iOS发布是需要Apple审核的,而Apple审核是需要时间的,oh, my God!具体的问题不提了。程序员也是人,是人就会犯错,只不过这个错误犯在苹果的手里就麻烦了(国内的公司嘛,都喜欢折腾,最后软件折腾的像个麻花,一旦出了问题想各种奇淫巧计弥补,可
2015-10-15 19:17:02
459
原创 事务的创建与恢复——调试与测试的必须手段
通常我们测试的时候,领导抑或客户往往会说:这个界面的效果看不到啊,怎么回事。我们就说:你刚注册,没有数据啊。接下来,客户就说:那你就添几条数据,给我测试用吧。好吧,我们添了几条数据。然后,客户又要测试其他界面,我们又添加了几条其他方面的数据。过几天,我们的软件有了更新,客户说,我需要重新走一遍流程,你把相关的数据一次性删除吧。我们又查找了多个表,删除了相关数据。从这一系列过程可以看出,交互的成
2015-10-14 20:25:10
404
原创 修复bug的思考
很多情况下,修复bug是一件痛苦的事情,因为你不知道bug为什么发生,甚至很多时候bug是什么都不清楚(只听到用户抱怨了) 1.首先要定位 2.一定要评估时间 3.评估完之后一定要和客户、销售、测试等等人员沟通 4.在修改的过程需要不断的评估,并不断的沟通 5.对修改可能产生的副作用要有认识,并向相关人士表达清楚修复bug之所以痛苦,根本原因在于这需要专业人士(工程师)解决的问题,往往却需
2015-10-14 19:37:44
488
原创 在Mac下编译webdis
webdis为Redis提供http接口。在mac上编译的过程中遇到了一些问题,索性记录下来。 1.下载webdis: git clone git://github.com/nicolasff/webdis.git 2.安装libevent: brew install libevent-devel 3.修改Makefile,修改如下: CFLAGS ?= -O0 -ggdb -Wall -
2015-09-05 17:17:02
665
转载 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2015-09-05 17:09:27
314
原创 使用Testflight发现的NSString和String转换的问题
这两天使用Testflight测试App,发现到某个地方向后台请求数据的时候总是崩溃。开始我以为是不是苹果的某些认证出错了,反复的查,没有结果。今天我使用Xcode导出为ipa文件,然后从iTunes拖到自己的iphone上,发现同样有问题。这样,我就判断是某个地方的代码有了问题,经过不断的打成ipa包,然后拖到iphone,这样不断的测试,终于发现以下代码:var base64Str = N
2015-04-08 15:38:16
419
原创 在mac上运行ofbiz
今天开始部署ofbiz。下载ofbiz,升级java,设置环境变量,但是运行始终不成功。运行ant时始终显示javac16,但是我的mac上的java明明升级到1.8了。反思我之所以需要升级java,是因为mac自带的java版本是1.6,但是不含有tools.jar,所以我又安装了最新的java1.8。此时,mac上有两个java版本,1.6和1.8,而ofbiz使用的是1.6,而不是我原来
2015-03-18 16:31:56
477
原创 在swift项目中引入obj-c代码的注意事项
在swift项目中经常需要引入第三方的obj-c代码。首先,我们需要编译运行第三方的demo,确定可以运行后,我们需要引入它所依赖的framework。然后,需要注意的是,Objective-C Automatic Reference Counting是否为yes,还需要查询compile sources的每个文件的编译选项,总之需要确定哪些文件使用ARC。接下来,把这些Object-C文件拷贝到
2015-02-06 21:08:51
431
原创 ios8模拟器输入中文
在配置ios8模拟器输入中文时,出了点小问题。在ios8模拟器上添加中文键盘,并将语言与地区设置为简体中文,区域设定为中国后,在系统自带的程序里面可以输入中文,可是切换到自己的程序时总是无法输入中文。琢磨了一会,终于搞定了,请在xcode的菜单(注意不是模拟器的菜单)Product -> Scheme -> Edit Scheme -> 然后在弹出的界面里 选择 Option 项, 设置 A
2015-01-14 22:48:11
500
原创 在Mac 上安装opencv和python
折腾了很长时间,终于搞定。问题的症结在于mac安装了多种版本的python。言归正传,说明安装步骤。首先,利用macports安装cmake和numpy。在此过程中会顺道安装python。然后,在官网上下载源码包解压,执行如下mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PRE
2015-01-05 13:52:24
2467
原创 使用NSNotification传递参数
今天使用NSNotification在界面之间传递参数。开始的写法如下:NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("wordChanged"), name: "wordChanged", object: nil)func wordChanged(){
2014-12-09 17:18:40
608
原创 android手电筒
自己的手机上居然没有手电筒这个应用。到应用市场上去下载,这么小小的应用,居然带了那么多的广告,算了自己写个算了。在网上搜索一番,在android上使用手电筒其实就是打开摄像头的闪光灯,主要代码就是Camera camera = Camera.open();Parameters parameters = camera.getParameters();parameters.se
2014-08-28 09:00:50
545
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人