重拾起博客,发现好久没写了,竟然孵化出了懒惰,还是像重新建起来,写写。
过去的几个月,自己做了好多决定,回想,一切都是不可思议,人生,就是这样,只有写在记忆里面的,才能明白,才能细细品味。享受人生要往前看,感悟人生只能往后看。
2011年9月7日于曾厝垵。
重拾起博客,发现好久没写了,竟然孵化出了懒惰,还是像重新建起来,写写。
过去的几个月,自己做了好多决定,回想,一切都是不可思议,人生,就是这样,只有写在记忆里面的,才能明白,才能细细品味。享受人生要往前看,感悟人生只能往后看。
2011年9月7日于曾厝垵。
翻开以前的一些记录,发现自己说过以下话,有点意思,无聊一下,特此记录。
有关技术:
1、ERP的核心是“每个人都应该面向系统操作”;
2、协同工作的关键是实现“你能知道我所知道的,而我能知道你的需求”
3、中国移动是最大的SNS。
4、ERP的用处就是农民将锄头换成拖拉机。
5、什么是ERP,ERP就是用电脑记账。
6、学编程就是哥哥追美眉,生活就像美眉追哥哥 。
7、中国的电子商务必将向国外进军,特别是传统线下品牌。
8、传统线下企业的电子商务的核心不是淘宝是自有平台。
9、技术的核心不是技术,而是业务。
10、人之所以称之为人,因为我们犯错误的频度远高于电脑。
有关电视剧杂感
1、电影永远是人们抽取的生活的一部分并删掉的一部分的那部分,但仍然为那一部分努力着。
2、每个男人都应该学会珍惜,每个女人都应学会满足。
3、是什么力量能让两个人拿一生当承诺?
4、男人以真心去守护爱情,以事业来守卫爱情!
5、爱一个人不是爱他全部,而是知其所需。
有关生活
1、什么事情到最后都归根结底还是钱的问题。
2、真正的幸福是自己知道要什么并且得到。
3、总是到下雨才想到雨伞,总是到拿雨伞时才发现不见了。总是到下雨才想到雨伞,总是到拿雨伞时才发现不见了。
4、不怕做错,只是怕做错没人提醒;不怕有人提醒,就怕自己当时没有接受。
5、从一个过程到另一个过程之中,你会发现很多东西。你以为懂了,当到最后,你才会发现,这是一个低级错。
6、最大的梦想就是最简单的、最平凡的。
7、我发现QQ空间里面无非两种:一是秀幸福,一种诉痛苦。
8、赚一辈子的钱,还是一辈子赚钱?
9、学经济的人中我计算机最好,学计算机的人中我经济学最好。
10、其实坚持不是那么难,只要不要有那么多借口外加少一点健忘。
Amcharts是一个非常优秀的FLASH图标组件,最新版本为可以接收CSV或XML文件数据,使用起来非常方便,支持HTML5,界面比JFreeChart华丽很多,而且可以与用户交互,动画效果非常漂亮。
它的官网:http://www.amcharts.com
下载地址:http://www.amcharts.com/download
AmCharts可以免费使用,但免费使用的时候会在图表的左上角显示该网站的链接。网上有很多破解版本,其中有一种在flash的目录下加key文件的,经测试,这个方法已经失效。
package com.mrzeng.action;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.huashui.authentication.AuthName;
import org.huashui.dto.PageBean;
import org.huashui.service.IPaginate;
import org.huashui.util.StringUtils;
import org.huashui.util.WebUtils;
import com.mrzeng.hibernate.Category;
import com.mrzeng.hibernate.Crawlrecord;
import com.mrzeng.hibernate.Saleinfo;
import com.mrzeng.hibernate.Shop;
import com.mrzeng.hibernate.Shopdetail;
import com.mrzeng.service.IAnalysisService;
/**
* @fileName ShopdetailAction.java
* @author 曾华水
* @email zenghuashui@gmail.com
* @date Jun 10, 2011
* @time 9:07:13 AM
* 代码类代码编写规约:add-增加,edit修改,remove删除,list列出全部,排除用ex,tree代表树
*/
@ParentPackage("huashui-default")
@Namespace("/admin")
@Results( {
@Result(name = "saleinfo", location = "/WEB-INF/data/saleinfo.jsp"),
@Result(name = "json", location = "/WEB-INF/view/json.jsp"),
@Result(name = "jsonfilter", location = "/WEB-INF/view/jsonfilter.jsp"),
@Result(name = "jsonfiltertype", location = "/WEB-INF/view/jsonfiltertype.jsp") })
public class SaleinfoAction {
@Resource
private IPaginate paginate;
@Resource
private IAnalysisService analysisService;
private Integer rows;
private Integer page;
private Integer total;
private String sort;
private String order;
public String getSort() {
return sort;
}
public void setSort(String sort) {
this.sort = sort;
}
public String getOrder() {
return order;
}
public void setOrder(String order) {
this.order = order;
}
public Integer getRows() {
return rows;
}
public void setRows(Integer rows) {
this.rows = rows;
}
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public Integer getTotal() {
return total;
}
public void setTotal(Integer total) {
this.total = total;
}
@Action("data_saleinfo")
@AuthName("DATA_SALEINFO")
public String index(){
List shops = analysisService.listShop();
List crawls = analysisService.listCrawlrecord();
StringBuilder sb = new StringBuilder();
for (Shop shop : shops) {
if (!StringUtils.isNull(sb.toString())) {
sb.append(",\r\n");
}
sb.append("{").append("id:").append(shop.getId()).append(
",name:\"").append(shop.getName()).append(
"\"}\r\n");
}
WebUtils.getRequest().setAttribute("shops", sb.toString());
StringBuilder sb2 = new StringBuilder();
for (Crawlrecord crawlrecord : crawls) {
if (!StringUtils.isNull(sb2.toString())) {
sb2.append(",\r\n");
}
sb2.append("{").append("id:").append(crawlrecord.getId()).append(
",name:\"").append(StringUtils.dateToString(crawlrecord.getCrawltime(), "yyyy-MM-dd hh:mm:ss")).append(
"\"}\r\n");
}
WebUtils.getRequest().setAttribute("crawls", sb2.toString());
return "saleinfo";
}
@Action("data_saleinfo_list")
@AuthName("DATA_SALEINFO")
public String list(){
Map data = new HashMap ();
StringBuilder sql = new StringBuilder();
sql.append("from ").append(Saleinfo.class.getSimpleName());
sql.append(" where 1=1");
if (!StringUtils.isNull(sort) && !StringUtils.isNull(order)) {
if (order.trim().equalsIgnoreCase("desc")
|| order.trim().equalsIgnoreCase("asc"))
sql.append(" order by ").append(sort).append(" ").append(order);
}
PageBean pageBean = new PageBean();
pageBean.setPage(page);
pageBean.setPageSize(rows);
pageBean.setListSQL(sql.toString());
try {
pageBean.setCount(paginate.getTotalCount(pageBean).intValue());
} catch (Exception e) {
e.printStackTrace();
}
List list = paginate.getList(pageBean);
List rList = new ArrayList ();
for (Saleinfo saleinfo : list) {
SaleinfoBean bean = new SaleinfoBean();
bean.setBuyer(saleinfo.getBuyer());
bean.setBuyerCode(saleinfo.getBuyerCode());
bean.setBuyerLevel(saleinfo.getBuyerLevel());
bean.setBuyNum(saleinfo.getBuyNum());
bean.setBuyTime(saleinfo.getBuyTime());
bean.setCrawlId(saleinfo.getCrawlrecord().getId());
bean.setGoodDesc(saleinfo.getGoodDesc());
bean.setGoodPrice(saleinfo.getGoodPrice());
bean.setGoodTitle(saleinfo.getGoodTitle());
bean.setGoodUrl(saleinfo.getGoodUrl());
bean.setId(saleinfo.getId());
bean.setShopId(saleinfo.getShop().getId());
rList.add(bean);
}
data.put("rows", rList);
data.put("total", pageBean.getCount());
WebUtils.getRequest().setAttribute("data", data);
WebUtils.getRequest().setAttribute("type", "Set");
return "jsonfiltertype";
}
public class SaleinfoBean{
private Long id;
private Integer shopId;
private Long crawlId;
private Date buyTime;
private Integer buyNum;
private String buyer;
private String buyerCode;
private Integer buyerLevel;
private String goodTitle;
private String goodDesc;
private Double goodPrice;
private String goodUrl;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getShopId() {
return shopId;
}
public void setShopId(Integer shopId) {
this.shopId = shopId;
}
public Long getCrawlId() {
return crawlId;
}
public void setCrawlId(Long crawlId) {
this.crawlId = crawlId;
}
public Date getBuyTime() {
return buyTime;
}
public void setBuyTime(Date buyTime) {
this.buyTime = buyTime;
}
public Integer getBuyNum() {
return buyNum;
}
public void setBuyNum(Integer buyNum) {
this.buyNum = buyNum;
}
public String getBuyer() {
return buyer;
}
public void setBuyer(String buyer) {
this.buyer = buyer;
}
public String getBuyerCode() {
return buyerCode;
}
public void setBuyerCode(String buyerCode) {
this.buyerCode = buyerCode;
}
public Integer getBuyerLevel() {
return buyerLevel;
}
public void setBuyerLevel(Integer buyerLevel) {
this.buyerLevel = buyerLevel;
}
public String getGoodTitle() {
return goodTitle;
}
public void setGoodTitle(String goodTitle) {
this.goodTitle = goodTitle;
}
public String getGoodDesc() {
return goodDesc;
}
public void setGoodDesc(String goodDesc) {
this.goodDesc = goodDesc;
}
public Double getGoodPrice() {
return goodPrice;
}
public void setGoodPrice(Double goodPrice) {
this.goodPrice = goodPrice;
}
public String getGoodUrl() {
return goodUrl;
}
public void setGoodUrl(String goodUrl) {
this.goodUrl = goodUrl;
}
}
}
jqGrid是非常强大的,除了上一讲提到的预置的格式化外,还提供自定义的格式化方法,这种方法也是我比较喜欢的方法。
我们接上面的例子
$("#grid_id").jqGrid({
...
colModel : [ {name:'sex', edittype:'select', editoptions:{value:"1:男;2:女"}} ... ],
...
});
此时,我们增加格式化
$("#grid_id").jqGrid({
...
colModel : [ {name:'sex', edittype:'select', editoptions:{value:"1:男;2:女"}},formatter:function(cellvalue, options, row){
if(cellvalue==1){
return "男";
}else{
return "女";
}
} ... ],
...
});
这样操作起来就比较方便。我们也可以把这个方法独立出来,例如:我们在数据库设置的时候常用1来标示“是”,0标示“否”,这时候我们前台展示的时候肯定不能只显示1或者0,于是必须转换,如果比较多字段用到,我们就采用独立出来写一个。
function sexFmatter(cellvalue, options, rowObject){
if(cellvalue==1){
return "男";
}else{
return "女";
}
}
在formatter属性后面填写方法名
$("#grid_id").jqGrid({
...
colModel : [ {name:'sex', edittype:'select', editoptions:{value:"1:男;2:女"}},formatter: sexFmatter... ],
...
});
公司要架一台新的图片服务器,对比了centos下的几款ftp,最后还是继续选择vsftp。
搭建的方法如下:
一、下载安装
1、安装Vsftpd
yum -y install vsftpd*
2、安装PAM
yum -y install pam*
3、安装db4
yum -y install db4*
最近慵懒了很多,很少来上面博一博,发下jqGrid的例子的全部文件。
jqGrid
由于文件太大,删掉了所有的jar包,jar是整合struts2.1+spring2.5+hibernate3.2
jqGrid引入后,执行,常常会碰到css无法像官方的demo一样正常显示,特别是字体还有一些弹出框,
Read More
许多人安装centos和redhat的时候没有将开发工具包和开发库给打钩,从而在安装后要编译一些程序出现错误。
此时,安装方法有以下几种:fdc5f25c
切换到root账户下
Read More