- 博客(91)
- 资源 (10)
- 收藏
- 关注
原创 Best Practices for Speeding Up Your Web Site
Minimize HTTP Requeststag: content80% of the end-user response time is spent on the front-end. Most of this time is tied up in downloading all the components in the page: images, stylesheets, scri
2012-07-04 13:38:14
2152
原创 javascript 的MD5代码备份,跟java互通
var MD5 = function (string) { function RotateLeft(lValue, iShiftBits) { return (lValue>>(32-iShiftBits)); } function AddUnsigned(lX,lY) { var lX4,lY4,lX8,lY8,lResult; lX8 = (lX &
2012-07-02 15:03:39
1335
原创 自动同步服务器vm文件的shell脚本
#!/bin/shif [ $# -lt 1 ]; then echo "[FAILED]please input project name."else if [ -d /home/admin/work/$1 ]; then cd /home/admin/work/$1 svn up > files find -name "files" -exec grep ".vm" {}
2012-04-17 17:12:46
1031
原创 nginx配置备份一下
#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_con
2012-04-12 15:03:45
2233
原创 [html5]Web SQL
Web sql 是在浏览器模拟数据库,可以使用JS来操作SQL完成对数据的读写,但是这个东西目前支持的浏览器不多,而且其W3C规范已经停止支持,貌似其前景不是很明朗W3C 规范:http://www.w3.org/TR/webdatabase/#dom-sqltransaction-sync-executesql (目前已经停止更新,组织也没想清楚发展方向)支持的浏览器以及版本:Saf
2012-03-05 18:21:21
4915
原创 [html5]离线存储
H5的一个重要特性就是离线存储,所谓的离线存储就是将一些资源文件保存在本地,这样后续的页面重新加载将使用本地资源文件,在离线情况下可以继续访问web应用,同时通过一定的手法(更新相关文件或者使用相关API),可以更新、删除离线存储等操作;H5的离线存储使用一个manifest文件来标明哪些文件是需要被存储的,使用如 来引入一个manifest文件,这个文件的路径可以是相对的,也可以是绝对的,
2012-03-05 11:21:22
14081
原创 [PhoneGap]音乐播放器Android版
PhoneGap #sp span{font-size:15px; color:green;} button{height:70px;width:120px;}Music player play pause stop document.addEventListener("deviceready",onDevice
2012-02-07 09:17:13
4000
原创 Jetty websocket
使用jetty版本:jetty-websocket-8.0.4.v20111024.jar使用servletapi版本:3.0服务器端servlet继承 WebSocketServlet 实现websocket连接。如下代码:public class Communicate extends WebSocketServlet {private static final long seri
2012-02-07 09:16:17
4041
原创 Web workers
功能 浏览器实现多线程编程;使用 使用: var worker = new Worker('worker.js'); 自动载入worker.js,如果载入失败,则自动停止,不会执行;消息传递:worker.postMessage(message); 传递参数可以是简单值,也可以传递Json格式数据(依赖于浏览器版本和类型)。postMessage({'key1':'
2012-02-07 09:15:29
1369
原创 [Html5]GhoneGap开发音乐播放器
开发一个Android版的音乐播放器,功能:读取SD卡的音乐,提供刷新音乐库、播放、暂停、停止功能,特别的,还支持通过左右摇手机实现歌曲切换。代码并非商业代码,只是个人的一个尝试,所以很多地方设计的并不仔细,只是为了能多调用几次API。PhoneGap #sp span{font-size:15px; color:green;} button{height:70px;wid
2012-01-19 12:58:04
2428
原创 [python]抓取文件夹的所有文件,包括子文件夹和子文件夹的文件
#!/user/bin/python# -*- coding:utf8 -*-import Basicimport os#############################################################
2011-10-18 14:51:37
2073
原创 [Python] (多线程版本)抓取聚划算页面商品分析页面获取商品信息并以XML格式保存到本地
#!/user/bin/python# -*- coding: gbk -*-#Spider.pyimport urllib2import httplibimport StringIOimport gzipimport reimport chardetimpo
2011-10-12 11:44:50
2675
原创 [Python]基于Splinter的自动化回归/测试脚本
总结来说就是用一种自动化回归脚本的方式,可以重复性的回归现有功能,并给出回归测试报告 基于这个想法,我开发了这个脚本,定义了一套开发模式,基于这个模式,只要针对每个case添加如下的脚本代码:caseBegin('输入关键字执行搜索') ——>测试开始,其实就是打印一个
2011-10-11 16:48:40
6016
原创 用Python开发自动化测试脚本
通常对于一个稍具规模的系统,一些新的改动势必会带来一些额外的功能回归测试工作,而这个工作是非常繁杂的,人肉的方式一次又一次的重复将会非常的枯燥乏味。 而我们所希望的,是一种自动化回归脚本的方式,可以重复性的回归现有功能,并给出回归测试报告。
2011-10-11 13:44:11
30651
原创 [Python] 抓取聚划算页面商品分析页面获取商品信息并以XML格式保存到本地
#!/user/bin/python# -*- coding: gbk -*-#Spider.pyimport urllib2import httplibimport StringIOimport gzipimport reimport chardetimpo
2011-10-10 14:39:27
3289
原创 将PC站点的链接转换成对应WAP站点的链接
最近做了一个项目,需要做到这个事情,将一些网站的链接转换成其对应wap站点的链接,比如将凡客诚品的商品链接,转换成对应的wap站点的地址,这样就可以直接在手持设备上直接访问。这里代码备份一下。 <!-- name : 配置的名称,用于标
2011-09-08 11:05:48
11702
原创 [装饰者模式]经典的星巴克咖啡问题解决方案
<br />在星巴克咖啡中,随意的点取咖啡种类以及配料的场景,如果使用传统的逻辑控制,产出的将会是一片非常不优雅的代码,而几乎每个例子中都会使用这样的一个场景,来引出装饰者模式的介绍。<br />装饰者模式通常有着如下的特点:<br />1、装饰对象和被装饰对象通常有着相同的接口,实现相同的操作;<br />2、装饰者对象中要含有被装饰对象的实例;<br />3、装饰者只是增加了附加功能,而不会去更改被装饰对象的实现逻辑;<br />从上述的描述中,我们可以抽象一下几个领域模型:<br />1、共同的接口,
2011-03-04 16:16:00
3988
转载 修改JSONObject源码使JSON官方的java扩展支持对汉字进行ascii转义
<br />本文转自:http://eit.name/blog/read.php?462 <br /> <br />近日某同事在用java发布一个API时,使用Json进行数据编码,发现JSON官方的java扩展在处理汉字时未进行ascii转义,如下所示: <br />Java源码: <br /><br />AppObject ao=new AppObject(20,"鱼漂"); <br />try { <br />JSONObject jo=new JSONObject(ao); <br />System
2011-02-12 11:11:00
4329
原创 [Drools]JAVA规则引擎2 -- Drools实例
上一篇文章 http://blog.youkuaiyun.com/quzishen/archive/2011/01/25/6163012.aspx 描述了一些常用的drools的语法标签和一个模拟实例即发送积分的场景,这一片优化了一下代码,在此贴一下,希望有这方面使用经验的朋友多多交流沟通,指正不足。通常而言,习惯上我们将规则放到文件系统中,比如以drl结尾的规则文件,现在我们要扩充一下,使其放到数据库中,以供多台服务器同时使用,同时依然保留文件系统的支持。先看下一个接口:/** * 规则接口 * @autho
2011-01-26 14:17:00
21463
5
原创 [Drools]JAVA规则引擎 -- Drools
Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效。 1、Drools语法开始语法之前首先要了解一下drools的基本工作过程,通常而言我们使用一个接口来做事情,首先要穿进去参数,其次要获取到接口的实现执行完毕后的结果,而drools也是一样的,我们需要传递进去数据,用于规则的检查,调用外部接口,同时还可能需要获取到规则执行完毕后得到的结果。在drools中,这个传递数据进去的对
2011-01-25 14:33:00
213929
50
转载 tomcat中通过JNDI数据源配置使用
<br />一、数据源简介:<br />***********************************************************************************<br />在Java语言中,DataSource对象就是一个代表数据源实体的对象。一个数据源就是一个用来存储数据的工具,它可以是复杂的大型企业级数据库,也可以是简单得只有行和列的文件。数据源可以位于在服务器端,也可以位于客服端。<br /><br />应用程序通过一个连接来访问数据源,那么一个DataS
2011-01-20 11:20:00
1226
原创 [jms那点事儿]Activemq集群部署
<br />集群部署,貌似activemq并不理想,分享一个链接吧暂时<br />http://wenku.baidu.com/view/6989622de2bd960590c67760.html<br />暂时没时间去太深入研究<br /> <br />之前看到一个同学写的博客讲到activemq他们目前平均吞吐量由4000/秒,4K的消息,这个量下,我感觉一般的应用足够了,只要做足了单点部署的备份工作。
2011-01-14 11:53:00
3093
2
原创 [jms那点事儿] JMS 消息传送模式、消息签收以及spring jmsTemplate配置
<br />Activemq支持两种消息传送模式:PERSISTENT (持久消息)和 NON_PERSISTENT(非持久消息) <br />从字面意思就可以了解,这是两种正好相反的模式。<br />1、PERSISTENT 持久消息<br />是activemq默认的传送方式,此方式下的消息在配合activemq.xml中配置的消息存储方式,会被存储在特定的地方,直到有消费者将消息消费或者消息过期进入DLQ队列,消息生命周期才会结束。<br />此模式下可以保证消息只会被成功传送一次和成功使用一次,消息
2011-01-12 14:27:00
17769
1
原创 [jms那点事儿] JMS ( java message service )入门 + activemq消息持久化
JMS 即 java message service 是为java提供了一种创建、发送、接收消息的通用方法。可以将复杂的系统进行业务分离,变成灵活的高度解耦合的布局。同时对我们的日常业务需求开发,提供了非常灵活的业务解决方案。比如缴费还款送积分,送积分的业务逻辑不能影响到缴费还款的业务逻辑,所以最好的,就是缴费/还款逻辑执行完成之后,通过一种方式告诉积分系统,给用户发送积分,发送积分的结果不要影响到复杂的缴费还款的过程。这种情况下,采用jms进行异步处理,便是一个很好的选择。要使用消息的方式来进行系统交互,
2011-01-11 12:42:00
14295
15
原创 [lucene]初探bobo-browse
<br />Bobo-browse是一个基于lucene的分面搜索插件,可以完成对搜索结果的分面统计,比如“男装(221) 女装(332)”等。<br />这里做首次尝试,只谈使用,不谈原理。用熟了才有可能去研究仔细。<br />lucene3 + bobo-browse2.5<br />建索引,更新索引跟它没关系,仅关注搜索。索引建立好后,开始进行分面搜索。<br />bobo-spring.xml <br /><?xml version="1.0" encoding="UTF-8"?><bean
2011-01-07 16:15:00
3483
2
原创 [lucene3] 重写TermRangeFilter获得支持数字型数据区间检索的过滤器
<br />在lucene2中,对于结果的区间过滤,是通过RangeFilter来实现的,其中一个主要的判断“大”“小”的方法就是<br />public BitSet bits(IndexReader reader) throws IOException <br />在上一篇 [lucene那点事儿]继承RangeFilter编写数字型过滤器 通过继承RangeFilter重写bits方法,实现对于数字型数据的区间大小判断逻辑,以对数字型数据的直接支持(现在较为普遍的方式,是通过建立索引的时候对数字型的
2011-01-06 14:20:00
2677
原创 [lucene]索引建立
<br />Lucene索引建立的过程,类似于将数据进行关键字提取,设置标签,在后续工作中,可以通过这个标签进行内容过滤获取期望数据的操作。<br />lucene建立索引过程很简单,归结起来,就是:<br />获取数据 -> 设置建立索引规则 -> 建立索引 -> 写入磁盘/内存<br />建立索引涉及几个类:<br />1、 IndexWriter<br />执行索引写操作,并且控制索引建立过程的各种参数。包括参数:<br />1)索引存放位置<br />索引存放位置有两种:磁盘 和 内存<br />所
2010-12-30 14:32:00
3777
原创 JAVA精确向txt文件输出换行符
<br />当写文件使用writer.write("/n");的方式时候,在txt文件中会被输出为一个黑色方块,当然在editplus等编辑器下,是一个换行符。<br />但是当读取的时候,这个会被当做一个字符读进来,所以不是严格意义的换行符。<br />使用下面的方式,可以精确输出一个换行符,不论在txt还是其他编辑器中,都可以严格换行。<br /> <br />@SuppressWarnings("unchecked") private String lineSeparator = (String)
2010-12-30 10:41:00
4440
1
原创 推荐一个不错的免费svn服务器unfuddle
<br />www.unfuddle.com<br /> <br />经测试,速度还可以<br />对于本人开发的B2C商城,你可以通过<br />svn co http://normandy.unfuddle.com/svn/normandy_normandypositionii/NormandyPositionII<br />获取,具体的账户名密码申请请发送邮件至 quzishen@gmail.com
2010-12-29 19:53:00
3141
转载 代码之丑(九)——退让的缩进
<br /><br />这是一个让我纠结了很久的话题:缩进。 for (int j = 0; j < attributes.size(); j++) { Attr *attr = attributes.get(j); if (attr == NULL ) { continue; } int IsCallFunc = -1; if(attr->status() == STATUS_NEW || attr->status() == STATUS_M
2010-12-26 19:07:00
778
原创 [Discuz]论坛搭建step by step
摘要:本文介绍如何从头开始搭建Discuz论坛,涉及具体内容为apache + php + tomcat + mysql 等工具的配置和使用。步骤:1、环境配置以及基础工具安装2、整合配置3、安装Discuz4、相关问题解决1、环境配置以及基础工具安装---------------------------------------------需要安装的工具: JDK(推荐1.5 ~ 1.6)、mysql、tomcat、apache、phpJDK安装:略mysql:略。注意这里用户使用的最好是root账户,暂时
2010-12-09 15:46:00
1409
原创 使用ANT发布项目
<br />通常在eclipse中开发的web工程,测试的时候都会直接采用右键点击工程名称 -> run as -> on server -> 选择tomcat./jboss -> 启动运行 的方式,在开发阶段,这样的方式不但方便,而且基本上很多的问题都是eclipse帮我们完成了。<br />但是如果项目发布上线了,这个时候该怎样将项目发布上线呢?<br />很简单,就是将生成的class文件,资源文件,模板文件,图片,js,样式等等系统所需的文件,拷贝到tomcat下,新建一个目录比如photograp
2010-12-07 13:11:00
3636
原创 JXL生成的excel文件+JAVA文件下载功能
<br />一个需求,用户点击下载按钮,将指定的excel的报表模板使用数据库数据渲染,然后下载到用户本地;<br />通常而言,对于一个文件的下载,可以有以下几种方式:<br />window.location.href=文件名称URL全路径;<br />window.open(文件名称URL全路径);<br />这种方式不友好的地方在于服务器的目录结构直接暴露出去,而且在IE下很有可能会报错权限问题等,甚至firefox中会触发那个年代久远而依然没有解决的bug。所以这里不推荐。<br /> <br /
2010-11-30 11:26:00
8118
原创 freemarker调用java静态方法以及枚举
<br />Freemarker渲染视图采用的是一个 模型+数据 = 页面 的方式,这也是模板渲染引擎的通用模式,对于freemarker渲染页面的时候一些特殊的数据格式转换、随机数获取等需求,如果很难通过freemarker本身的标签完成,可以通过调用java静态方法来完成。前提是这个方法必须是静态。允许传递参数。<br />实现这个需求,使用的便是freemarker的BeansWrapper这个类,他借用TemplateHashModel可以从web容器中获取指定类名的bean并通过传统的如spri
2010-11-30 09:40:00
19316
1
原创 谨以此系统纪念过去的三个月时间
<br />过去的三个多月里,做了一个B2C商城,这是一个慢慢琢磨慢慢探索的过程,有很多的问题如果没有亲身去做,不会知道其中的一些隐藏性关键点,眼高手低的现象在程序员的这个行业中很容易出现。<br />从页面设计,美工,css,图片ps,交互效果,js/jquery等,到后台的实现,到支付的完成,点点滴滴都是自己的心血。<br />在此纪念一下吧,后续还在不断优化中,在优化中增强自己的系统架构设计能力。<br /> <br />----------<br /> <br /><br /> <br /><br
2010-11-27 19:07:00
1293
原创 JST[javascript Template] 通过自定义标识符统一时间格式
数据库取出塞给DO的时间一般是: Thu Nov 25 2010 18:29:21 GMT+0800 这种格式在使用jst动态渲染模板的时候,这样会直接按照字符串输出到页面,所以需要将时间进行转换,成普通的2010-10-10的格式有两种方式可以解决,一是通过将外面的js转换方法作为一个参数的形式直接塞进渲染参数中,比如:var change = function(time){ ... }var param = {"change":change};这样在jst模板中,需要写成{var timeS
2010-11-26 16:58:00
4125
原创 Apache+Tomcat集群部署下的session共享解决
多台服务器集群部署下,传统的登录后写入session标志位的方式将不能满足请求定位到其他服务器后无法获取当前用户是否登录的准确判断,因为当前的服务器没有保存用户的session登录信息。解决这个问题可以采用两种方法:1、session共享,多个服务器session拷贝保存,一台宕机不会影响用户的登录状态;2、请求精确集中定位,即当前用户的请求都集中定位到一台服务器中,这样单台服务器保存了用户的session登录信息,如果宕机,则等同于单点部署,会丢失;apache中针对上述两个方法提供了不同的配置项:ses
2010-11-22 19:06:00
11505
原创 Json 一种轻量级的数据通信格式
<br />Json是一种基于js的轻量级数据交换格式,独立于特定的语言,其中对于信息的保存使用特殊的符合来实现不同的数据结构。可以构建两种基本数据结构:<br /> <br />1、对象<br />对象的概念类似于面向对象语言中的逻辑,采用 key/value的方式保存数据,同时使用{}包含来表示对象;如:<br /> <br />{name:'quzishen',company:'netease',department:{d1:'hangzhou',d2:'tech',d3:'dir'}}<br />
2010-11-16 11:15:00
6067
原创 [Ibatis] Ibatis批量操作(增/删/改)
<br />Ibatis批量操作,代码模板如下:<br />/* (non-Javadoc) * @see com.normandy.position.dao.NorTradeDAO#batchUpdateOrderList(java.util.List) */ public void batchUpdateOrderList(final List<NorTradeDO> list) { if(null == list || 0 == list.size()){ throw n
2010-11-05 10:09:00
1366
drools5 demo project
2011-01-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人