Jarod@termainal$ tail * >> blog

A Developer's Notebook

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  24 Posts :: 9 Stories :: 12 Comments :: 0 Trackbacks

2007年12月20日 #

最近公司网站的squid离奇crash,用下面命令启动squid:
squid --9
-N: 用非守护进程方式运行
-d 9: 9级输出信息(最详细)

最后看到错误信息并且squid马上crash:
"File size limit exceeded (core dumped)"

同事说可能是log文件太大,后来google到一邮件列表的信息确认了的确是,是log文件中的store.log超过2G时就会报这个错误。

解决方法:
在squid.conf中查找"TAG: cache_store_log",在其下插入一行
cache_store_log none
即可把store log关掉



posted @ 2008-05-02 20:25 Jarod 阅读(894) | 评论 (0)编辑 收藏

硬件:
机器上有一块硬盘通过ide连接,两块通过sata连接,hda是用来安装系统的,sda和sdb组raid1。
hda: 160G
sda:160G
sdb:160G

软件:
linux下用mdadm管理软阵列设备,详见http://www.linuxmanpages.com/man8/mdadm.8.php

经过以下操作,既可搭建完成:

创建md设备
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb

查看设备状态
cat /proc/mdstat
正常的话输出类似:
Personalities : [raid1] 
md0 
: active raid1 sdb[1] sda[0]
      
156290816 blocks [2/2] [UU]
      [
=>.]  resync =  9.9% (15526336/156290816) finish=74.9min speed=31293K/sec

格式化阵列(ext3):
mkfs.ext3 /dev/md0

创建挂载点:
mkdir /data

在/etc/fstab中加入:
/dev/md0 /data ext3 defaults 0 0

使挂载马上生效:
mount /data


posted @ 2008-03-25 10:24 Jarod 阅读(1088) | 评论 (1)编辑 收藏

import java.util.HashMap;

import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsDateJsonBeanProcessor;

/**
 * 
@author jarod
 *
 
*/
public class JsonDate {

    
public static void main(String[] args) {
        
// json-lib默认不支持java.sql.Date的序列化,要序列化自己的类,实现一个BeanProcessor处理即可
        JsDateJsonBeanProcessor beanProcessor = new JsDateJsonBeanProcessor();
        java.sql.Date d 
= new java.sql.Date(System.currentTimeMillis());

        
// 直接序列化
        JsonConfig config = new JsonConfig();
        JSONObject json 
= beanProcessor.processBean(d, config);
        System.out.println(json.toString());

        
// 序列化含java.sql.Date作为属性值的bean
        HashMap m = new HashMap();
        m.put(
"date", d);
        config.registerJsonBeanProcessor(java.sql.Date.
class, beanProcessor);
        json 
= JSONObject.fromObject(m, config);
        System.out.println(json.toString());
    }
}
posted @ 2008-02-15 10:11 Jarod 阅读(4130) | 评论 (4)编辑 收藏

词库用起来比SCIM自带的五笔爽好多,而且有调频功能。
使用方法见:
http://forum.ubuntu.org.cn/viewtopic.php?t=99877



posted @ 2008-01-14 15:14 Jarod 阅读(462) | 评论 (0)编辑 收藏

刚学一新招:用C-x C-f打开文件时用//或~/可屏蔽此符号前的路径,省去删除当前路径的麻烦
如我的C-x C-f默认是指向~/的,此时想打开/etc/apt/fstab文件,输入~//etc/apt/fstab即可
如果当前路径为/var/,打开自己home目录下的aa.txt文件,输入/var/~/aa.txt



posted @ 2008-01-14 11:34 Jarod 阅读(664) | 评论 (0)编辑 收藏

最近在家上网经常打开网页白屏,一开始也不在意,后来觉得实在太烦了,查了查是怎么回事,在firefox中的error console中看到错误信息
Error: window.frames[0] is undefined
Source File: http://访问的网址/
Line: XX
双击打开,显示了页面代码:
<html>
<head>
</head>
<iframe src="about:blank" width="0" height="0" frameborder="0" style="display:none"></iframe>
<script language="javascript">
window.frames[
0].location = "http://121.32.136.231/update/step1.aspx?p=" +
"gzDSLXXXXXXXX|" +
Math.floor((
new Date()).getTime()/1000+ "|" + 
navigator.appMinorVersion 
+ "|" +
screen.availHeight 
+ "|" +
screen.availWidth 
+ "|" +
screen.colorDepth 
+ "|" +
screen.height 
+ "|" +
screen.width;
</script>
</body>
</html>

刚看到时心理一惊,该不会是在ubuntu+firefox也中病毒了吧。。。
google了一下121.32.136.231,有以下发现

http://121.32.136.231/notice/notice.htm
http://www.gomain.net/articles/about_121_32_136_231.html
http://bbs.qianlong.com/redirect.php?tid=1281281

终于知道了真相

UPDATE:
反馈到电信,回复如下:
您好,这有可能电脑中了病毒的,建议您使用杀毒软件查杀一下
唉,客服练的都是忽悠功啊

posted @ 2008-01-13 10:16 Jarod 阅读(386) | 评论 (0)编辑 收藏

白色+8G+硅胶套 + 送便宜保护膜 + 送游戏DVD一张 ~= 2K

入手几天了,无聊的时候可以玩玩小游戏。本来想着也可以看看电子书,但试了看PDF和CHM的书效果特不好。。。

posted @ 2008-01-10 15:30 Jarod 阅读(285) | 评论 (0)编辑 收藏

http://gaming.gwos.org/doku.php/wine:winestuff
posted @ 2008-01-07 16:29 Jarod 阅读(1351) | 评论 (0)编辑 收藏

在地址栏输入about:config进入配置表,添加或修改下列相应项

内存缓存:
browser.cache.memory.enable=true
内存缓存开关
browser.cache.memory.capacity=51200
内存缓存大小,单位KB;-1: (默认)根据系统可用内存动态调整;

TIPS: 如果内存大可以关闭磁盘缓存,把此值设大;如果不关闭磁盘缓存,建议保留默认值


磁盘缓存:
browser.cache.disk.enable=false
磁盘缓存大小
browser.cache.disk.capacity=50000
磁盘缓存大小
browser.cache.disk.parent_directory=用户目录

TIPS: 提升性能第二法是把内存缓存关闭,把browser.cache.disk.parent_directory指向ramdisk


DNS:
network.dns.disableIPv6=false
TIPS: 建议设成true,关闭ipv6的dns解释,对打开网页的速度有比较明显的提高


HTTP连接数:
network.http.max-connections=64
最大连接数
network.http.max-connections-per-server=16
对每个服务器的最大请求数
network.http.max-persistent-connections-per-server=4
对每个服务器长连接的最大数
network.http.max-persistent-connections-per-proxy=4
对每个代理的最大长连接数

上面几个值可根据自己的机器情况配置


开启Pipelining:(http://www.mozilla.org/projects/netlib/http/pipelining-faq.html)
对多内容的页面比较有用
network.http.pipelining=true
开关pipelining
network.http.proxy.pipelining=true
开关代理pipelining
network.http.pipelining.maxrequests=8
单个网页的最大请求数有效值1-8


加快页面渲染速度
nglayout.initialpaint.delay=0
这个值为firefox等待多少毫秒后开始渲染页面。默认值250。网速快时设成0可以加速网页渲染。网速慢的最好就不要改了。对网速物慢的,如56kbit/s拨号上网的,还应适当增大此值,不然firefox的CPU使用就会上升很快

不检查插件兼容性
extensions.checkCompatibility=false
对于想试3.0的朋友此项特有用。因为firefox插件的兼容性检查是基于版本号的,所以某些“不兼容”的插件不一定就是不兼容

不使用页面指定的字体
browser.display.use_document_fonts=false
对于像我的linux系统,使用的中文字体是雅黑,但有些页面是指定使用宋体,显示的字体很难看,设这个值就可以忽视页面字体了

posted @ 2007-12-28 22:03 Jarod 阅读(1200) | 评论 (0)编辑 收藏

测试环境:
tomcat-6.0.14
ubuntu gusty
sun-jdk-1.6

多个人合作的项目里只要修改tomcat-conf.properties文件后即可使用。我这里用了slf4j做LOG,不用LOG的把相关类去掉即可。还有我是把tomcat/lib下的jar都加进classpath的。

目录结构
/-|projectHome
  |
  |--src
  |   |--TomcatServer.java
  |   |--tomcat-conf.properties
  |
  |--webapp
  |   |--WEB-INF
  |   |   |-web.xml

TomcatServer.java:
 1 import java.io.File;
 2 import java.io.IOException;
 3 import java.util.Properties;
 4 
 5 import org.apache.catalina.Context;
 6 import org.apache.catalina.Engine;
 7 import org.apache.catalina.Host;
 8 import org.apache.catalina.LifecycleException;
 9 import org.apache.catalina.startup.Embedded;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
12 
13 /**
14  * http://www.blogjava.net/jarod
15  * @author jarod
16  */
17 public class TomcatServer {
18 
19     private static final Logger logger = LoggerFactory
20             .getLogger(TomcatServer.class);
21 
22     public static void main(String[] args) {
23         try {
24             new TomcatServer();
25         } catch (Throwable t) {
26             logger.error("", t);
27         }
28     }
29 
30     private Embedded tomcat;
31 
32     // tomcat主目录
33     private String catalinaHome;
34 
35     private String projectHome;
36 
37     public TomcatServer() {
38         initConf();
39 
40         tomcat = new Embedded();
41         tomcat.setCatalinaHome(catalinaHome);
42         Engine engine = tomcat.createEngine();
43         Host host = tomcat.createHost("localhost", projectHome);
44         host.addChild(tomcat.createContext(""""));
45         Context context = tomcat.createContext("/webapp1""webapp");
46         // 当以debug模式启动时,修改可立即生效
47         context.setReloadable(true);
48         host.addChild(context);
49         engine.addChild(host);
50         engine.setDefaultHost("localhost");
51         tomcat.addEngine(engine);
52         tomcat.addConnector(tomcat.createConnector("0"8081false));
53         registerShutdownHook();
54         try {
55             tomcat.start();
                
Thread.sleep(Long.MAX_VALUE);
56         } catch (Exception e) {
57             throw new RuntimeException(e);
58         }
59     }
60 
61     private void initConf() {
62         Properties properties = new Properties();
63         try {
64             properties.load(TomcatServer.class
65                     .getResourceAsStream("/tomcat-conf.properties"));
66             catalinaHome = properties.getProperty("catalina.home");
67 
68             File f = new File(".");
69             projectHome = f.getAbsolutePath();
70         } catch (IOException e) {
71             throw new RuntimeException(e);
72         }
73     }
74 
75     private void registerShutdownHook() {
76         Runtime.getRuntime().addShutdownHook(new Thread() {
77             @Override
78             public void run() {
79                 try {
80                     tomcat.stop();
81                 } catch (LifecycleException e) {
82                     throw new RuntimeException(e);
83                 }
84             }
85         });
86     }
87 }


tomcat-conf.properties:
catalina.home=/home/jarod/server/tomcat/apache-tomcat-6.0.14


为什么要setCatalinaHome?
设了该值,tomcat启动时会在该目录加载默认的一些配置,如MIME mapping等,如果要自己手动添加配置太麻烦了,而如果不要这些配置,这个embedded tomcat用处也不大
posted @ 2007-12-20 14:49 Jarod 阅读(2153) | 评论 (0)编辑 收藏