之前就知道ANT这个小蚂蚁,一直没有用过,这两天,下了点功夫,写了一个ANT的脚本。功能还行,可以完成同步svn代码、编译代码、打包代码、上传、部署的功能。直接上干货,看代码。[code]#JDK homejdk.home=/opt/Java/jdk1.6.0_33#webapp namewebapp.name=pmeappproject.name=pmeapp#svnsvn.url=http://127.0.0.1:9344/svn/pmeapp/trunksvn.uname=dapengsvn.pwd=dapengpwd#warwar.exclude=war.exclude.classes=#ftpftp.server=127.0.0.1ftp.password=dapengpwdftp.userid=dapengftp.path=/opt/ftp/#sshssh.host=127.0.0.1ssh.path=/opt/tomcat6/webappsssh.pwd=dapengpwdssh.uname=dapeng#sshssh.path.webapp=/opt/tomcat6/webappsssh.server.bin=/opt/tomcat6/binssh.cmd.sshClean=rm -rf /opt/tomcat6/webapps/${webapp.name}/ssh.server.start=/opt/tomcat6/bin/startup.shssh.server.stop=/opt/tomcat6/bin/shutdown.sh[/code]另外一个是关键中的核心[sourcecode]<project basedir=’.’ default=’usage’ name=’${project.name}’> <!– =================================================================== –> <!– 下句是import进ant属性配置文件,properties文件里存放基本的配置变量. –> <!– 该变量可以在build.xml中直接引用. –> <!– =================================================================== –> <property file=’ant.properties’/> <!– =================================================================== –> <!– 以下的几个属性是系统自带的,初始了tstamp之后,它们就有值了 –> <!– ${DSTAMP} ${TSTAMP} ${TODAY} –> <tstamp/> <property name=’war.name’ value=’${webapp.name}’ /> <!– =================================================================== –> <!– Init –> <!– =================================================================== –> <target name=’init’> <echo message=’————————————-‘/> <echo message=’start ant build ${project.name} – ${DSTAMP}${TSTAMP}’/> <property name=’debug’ value=’off’/> <property name=’optimize’ value=’on’/> <property name=’deprecation’ value=’on’/> <!– java源文件路径 –> <property name=’src.dir’ value=’${basedir}/src’/> <!– jar包路径 –> <property name=’lib.dir’ value=’${basedir}/WebRoot/WEB-INF/lib’/> <!– webapp路径 –> <property name=’webapp.dir’ value=’${basedir}/WebRoot’/> <!– 准备源文件路径 –> <property name=’build.src’ value=’${basedir}/AntBuild/build’/> <!– 编译源文件路径 –> <property name=’build.dest’ value=’${basedir}/AntBuild/bin’/> <!– 准备webapp文件路径 –> <property name=’buildwar.dest’ value=’${basedir}/AntBuild/warsrc’/> <!– 打包war文件路径 –> <property name=’war.dest’ value=’${basedir}/AntBuild/war’/> <!– jre lib路径 –> <property name=’jre.lib’ value=’${jdk.home}/jre/lib’/> <!– 引用svn task文件,使用svn任务可以使用–> <typedef resource=’org/tigris/subversion/svnant/svnantlib.xml’ /> <!– 设置svn相关属性 –> <svnSetting id=’svn.setting’ svnkit=’true’ username=’${svn.uname}’ password=’${svn.pwd}’ javahl=’false’ /> <!– classpath –> <path id=’classpath’> <!–web.lib–> <fileset dir=’e:/lib’> <include name=’/*.jar’/> </fileset> <fileset dir=’${jre.lib}’> <include name=’/.jar’/> </fileset> <fileset dir=’${lib.dir}’>…
分享了几篇bootstrap的文章,再来分享一个bootstrap的axure原型设计组件。axure是一个原型设计工具,可以有多优秀的组件可以使用,这里推荐下bootstrap组件,目前bootstrap的组件还不是很多,不过,也占据了大部分可以使用的。中午我抽空就用axure做了一个,采用的是bootstrap组件,算是我博客主题升级前的一些准备吧!demo地址:http://dapeng.me/demo/201207/axure-bootstrap/dapeng.me.htmlbootstrap组件下载地址:http://l3.yunpan.cn/lk/08f2nhl0ve
程序猿们都是些机械手,让制造东西很容易,如果需要把东西艺术一下,很太难为程序猿们了!Twitter Bootstrap在很大的程度上面解放了程序猿对页面的制作,前提就是web使用Twitter Bootstrap来制作的。Twitter Bootstrap很推荐每个程序员都来掌握一下,其中难度也没多少,如果说有难度,也就是一点点的E文吧!不过现在这点难度也解决了,已经有朋友将Twitter Bootstrap翻译成中文了,感谢这位朋友啊!Bootstrap 是基于 HTML,CSS,JavaScript 的简洁灵活的流行前端框架及交互组件集,由微博的先驱 Twitter 在2011年8月开源的整套前端解决解决方案。Bootstrap 有非常完备和详尽的使用帮助文档,热心的 @TV来客开发者 翻译成了中文,讨厌英文的朋友有福了。 Bootstrap 的口号是 Designed for everyone, everywhere.(适用于任何场景,适用于每一个人),主要有以下特色:适应各种技术水平 Bootstrap适应不同技术水平的从业者,无论是设计师还是程序员,大牛还是菜鸟。既能用来开发简单的小东西,也能构造复杂的应用。跨设备,跨浏览器 最初设想中的Bootstrap只支持现代浏览器,不过新版本已经能支持所有主流浏览器(甚至包括IE7)。从Bootstrap 2开始,提供对平板和智能手机的支持。12列栅格布局 栅格系统不是万能的,不过在应用的核心层有一个稳定和灵活的栅格系统确实可以让开发变得更简单。可以选用内置的栅格或是自己手写。响应式设计 从Bootstrap 2开始,提供完整的响应式特性。所有的组件都能根据分辨率和设备灵活缩放,从而提供一致性的用户体验。样式化的文档 与其他前端工具箱不同,Bootstrap优先设计了一个样式化的使用指南,不仅用来介绍特性,更用以展示最佳实践,应用以及代码实例。不断完善的库 尽管只有10kb(gzip压缩后),Bootstrap却仍是最完备的前端工具箱之一,提供了几十个全功能的随时可用的组件。定制的jQuery插件 一个出色的组件设计岂能没有易用易扩展的人机界面?Bootstrap为此提供了定制的jQuery内置插件。用LESS构建 当传统的枯燥CSS写法止步不前时,LESS横空出世了。LESS中使用变量,嵌套,操作,混合编码,让CSS编写更快更灵活。 Twitter Bootstrap 中文帮助文档:http://wrongwaycn.github.com/bootstrap/docs/index.html原文网址:http://www.cnblogs.com/lhb25/archive/2012/07/26/bootstrap-documentation.html
使用mysql时,发生的错误 Table is marked as crashed and should be repaired。解决办法:用“REPAIR TABLE tablename;”命令修复。简单好用!还有其他办法,就不多说了。原因:有网友说是频繁查询和更新dede_archives表造成的索引错误,因为我的页面没有静态生成,而是动态页面,因此比较同意这种说 法。还有说法为是MYSQL数据库因为某种原因而受到了损坏,如:数据库服务器突发性的断电、在提在数据库表提供服务时对表的原文件进行某种操作都有可能 导致MYSQL数据库表被损坏而无法读取数据。总之就是因为某些不可测的问题造成表的损坏。来一曲古风版的最炫民族风,民族乐器演奏出来果然不一般啊!
作为一个通用的框架,不仅仅需要最小可用,还需要一些完整的功能,这篇文章说了一些常用的通用功能,我建议再补充一些。a、权限控制 作为系统,就有人去用,有人的地方就需要进行控制,能用什么,该用什么,都要进行管理,这就是权限控制。权限是个很复杂的东西,场景不一样,权限控制也就不一样,我一直赞成使用的是RBAC,使用资源、角色、用户做最小角色控制,以后需要其他功能,RBAC也容易进行扩展。b、日志记录安全是现在系统必须注意的问题,而系统很作的操作,都很敏感,你做了,我就得记住。其他的功能,看看下面的文章!公司的JAVA框架应具备的通用功能以前在学校的时候自己以为是不是每个做JAVA开发的公司每次做项目的时候都要搭建一个SSH框架呢,工作之后才发现每个公司都有自己的一套框架,要不是在SSH基础上,要不是在SSI基础上进行了符合自己公司需求的封装,并且随着自己公司的框架被应用到各个实际系统的过程中,这个框架会越来越成熟,会使该公司的开发效率越来越高。 根据笔者接触过的几个公司的框架,笔者发现要想实现高效的开发,每个公司的Java框架应该具备如下的特点:1.具有灵活的分页功能。 分页功能是每个项目中必须要实现的功能,而恰恰这个功能是比较费时费力的,如果在框架中实现这一功能,将在每个项目中大大减少分页的重复性工作。2.可以方便的实现文件的上传与下载、数据的导入和导出的功能。 文件的上传于下载、数据的导入和导出在大部门项目中也会遇到,但是这两个功能可能会因为项目的不同导致实现上有一点区别,我们框架中要做的就是应该抽出其中共有的东西,定义为抽象的东西,以便不同的项目、不同的需求都能很容易的实现该功能。3.方便的事务管理功能。 事务管理一般来说都定义在业务逻辑层。我们框架中应该实现对业务逻辑对象事务的简单配置甚至是零配置。笔者接触过的两个框架中,一个需要在配置完一个业务逻辑对象时,在事务管理的配置文件中加上一句简单的配置即可,另一个是框架中实现了几个基本的业务逻辑对象,并对这几个对象实现了事务管理的配置,开发的时候定义的业务逻辑对象都是继承自这几个基本对象,也就省去了事务管理的配置。4.具有异常处理框架。 基本上每个项目的异常处理都应该可以使用公司的框架定义的异常处理框架,并不会因为项目的不同而要求的异常处理也不一样。5.具有自己的一套页面组件。 项目开发都是团队的开发,要想保证每个开发人员的界面风格统一,最好的办法就是定义一套公司自己的页面组建。这样既能保证开发效率,也能做到界面的统一。freemark就是不错的选择,其支持自定义宏,公司框架中可以定义一套自己的页面组建宏,供开发人员调用即可。6.具有数据校验框架。 每个项目在数据校验时都可能会用到大量的正则表达式,那么在公司的框架中将这些正则表达式封装起来,提供统一的调用接口将是不错的选择。7.简单的实现菜单的配置。 一个好的框架应该提供对菜单、二级菜单等的简单配置、管理。还是上文提到的两个框架,一个是通过XML配置文件实现了对系统中一级菜单、二级菜单、三级菜单的管理,而另个框架要实现相同的需求却要在数据库中进行繁琐的配置,显然第一个框架的实现方案更可取、更高效。原文网址:http://hp.dewen.org/?p=974
mysql默认是关闭InnoDB存储引擎的使用的,将InnoDB设置为默认的引擎如下。 1. 查看mysql存储引擎情况: mysql>show engines。 InnoDB | YES,说明此mysql数据库服务器支持InnoDB引擎。 2. 设置InnoDB为默认引擎:在配置文件my.ini中的 [mysqld] 下面加入default-storage-engine=INNODB 3. 重启mysql服务器 4. 登录mysql数据库,mysql>show engines。如果出现 InnoDB |DEFAULT,则表示设置InnoDB为默认引擎成功。听一曲歌来听听,挺喜欢的歌手万晓利的。走过来,走过去!
小米的音效,还算是一般吧!如果把音量放到最大,偶尔会听到一些爆音。这里强烈推荐使用DSP管理器,来进行管理。这边已经由puterjam进行整理打包好的工具了。puterjam就是pjblog的大神,相当不错一款博客程序。我对这些音效也算是个音盲,可用过Beats Audio + DSP 管理器后,也能十分的发现音效的确变了,音效可以自己选择,我选择的是改变的低音,这样听起来深沉些。 截图: 安装方法:方法1:第一次安装前先执行 1.备份系统文件.bat 根据引导即可自动完成安装。方法2:执行 1.备份系统文件.bat 后中断继续安装流程,可以选择不带DSP的安装方式 2.安装(不带DSP).bat (注意:已经安装过7.1版本的,备份文件系统是无效的,请参考安装问题解决中的 6.1或者6.2 来解决卸载问题)卸载方法:3.卸载.bat 不用多说了吧 (卸载的时候,自动把system_bak目录中备份的文件进行覆盖,需要手动制作备份文件的请参考安装问题解决中 的 6.2 说明) ————————————————— 我是分割线 —————————————————安装问题 Q&A 1. 安装失败的问题,建议在 MIUI V4 (我是最新的2.6.29版本)下试试看(其他版本系统没尝试过),如果是android 2.3内核的这个不保证可以安装。 2. DSP安装有问题的,可以尝试下载 去掉DSP 的audio_effects.conf 的文件 覆盖/system/etc/audio_effects.conf 下的文件,别忘记修改权限成644 wr-r-r 以及用RE删除 /system/app/DSPManager.apk 可以保留BA的音效 3. 如果还出现其他问题,小米手机可以切换到另外的系统来修复。 4. 安装先关闭 豌豆莱或者QQ手机管家等软件,避免adb server冲突 5. 如果发现copy文件失败,请手动执行一下 adb root 后在执行install.bat6. 安装方式因为修改到了系统文件可能会导致OTA升级时文件验证失败而无法升级系统,7.1号安装的朋友请根据一下方式解决6.1 情况1: 如果是 2.6.29 的系统,可以下载这个版本对应的系统文件,解压到心的安装包里system_bak目录下,然后执行 3.卸载.bat 进行系统文件还原。6.2 情况2:如果不是这个系统的,需要自己找到对应系统的的几个文件按照system的目录结构放到system_bak目录中进行还原 系统升级需要检查的文件列表, 这些文件可以在您的系统对应的完整安装里找到/system/etc/audio_effects.conf/system/lib/soundfx/libvisualizer.so/system/lib/soundfx/libreverbwrapper.so/system/lib/soundfx/libbundlewrapper.so/system/lib/soundfx/libaudiopreprocessing.so/system/lib/libwebrtc_audio_preprocessing.so/system/lib/libSR_AudioIn.so/system/lib/libaudcal.so/system/lib/libacdbmapper.so_复制代码_对应备份目录的结构图6 天前 上传下载附件(17.06 KB)发送到手机 最后同样执行,3.卸载.bat 进行系统还原后进行OTA升级。 7. 最后,还是需要你要胆大心细 :P原文地址:http://www.miui.com/thread-630072-1-1.html下载地址:http://l3.yunpan.cn/lk/080fswmvve
最近迷上了Sublime text2编辑器,用的是绿色版的,没有右键打开,模仿UE的右键注册表文件,改了下,支持Sublime text2右键打开文件。Sublime text2 相当的神器,推荐每一位程序猿们使用.Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOTshellSublime]@="用Sublime打开"[HKEY_CLASSES_ROOTshellSublimeCommand]@=""D:\360云盘\Tools\Sublime Text 2.0 x64\sublime_text.exe" %1"
场景: 客户端发出http请求,服务端对客户端的http请求进行验证问题: 问题的表象是 从Chrome发出HTTP命令后,Chrome console中报 “Origin null is not allowed by Access-Control-Allow-Origin”错误。产生原因: 这是由于Browser的same origin policy 限制的缘故。简单来说,从HTML中发出XMLHttpRequest 请求时,Browser会做检查,如果发现Response中没有Access-Control-Allow-Origin Header或Access-Control-Allow-Origin Header Header的值与 HTML的 orgin 不同时,Browser会拒接绝该Response,Javascript就收不到该Response。 本地HTML的Origin是 null, 而Server端没有发出Access-Control-Allow-Origin Header Header给Browser, 所以会有了“Origin null is not allowed by Access-Control-Allow-Origin”错误。 简单的说,就是由于客户端和服务端处于两个不同的域,相互之间是不允许通信的. 不同的域包含:1.静态文件向服务器请求 2.客户端和服务端域名不同 3.客户端和服务端端口不同 等等,个人理解总结的,不是很准确.解决办法: 事实上有一个W3C标准,Cross Origin Resource Sharing (CORS) 专门用来解决这个问题的。目前的主流Browser也有支持。CORS 在HTTP Message 加入几个Header, Browser和 Server可以利用这些Header来判断对方是否是安全,是否可以通信。 http://enable-cors.org/ 介绍了目前常用的服务器和技术的支持CORS的办法.其中对与JAVA Web,里面没提到.整理下让Java Web支持的办法.Java Web支持的办法: 使用CORS Filter 解决. 下载地址:http://software.dzhuvinov.com/cors-filter.html 使用方法:http://software.dzhuvinov.com/cors-filter-installation.html 参考文章 http://www.cnblogs.com/LevinJ/archive/2012/04/09/2439670.html 43 Things:CORSBuzzNet:CORSdel.icio.us:CORSFlickr:CORSIceRocket:CORSLiveJournal:CORSTechnorati:CORS