2007-04-23

ubuntu下opera段错误

之前sudo apt-get install opera安装opera在ubuntu下运行得很正常.
今天突然决定给ubuntu升级
利用ubuntu自带的升级功能,在网上拖了好几白M的东东回来."吱吱嘎嘎"的升起级来.
升级完毕后,突然在次打开opera,尽然没有反映(我是在Gnome)下面双击图表进行打
开的.
奇怪,之后便用终端运行opera,出现错误提示,如下:
<pre>
X Error: BadDevice, invalid or uninitialized input device 168
Major opcode: 148
Minor opcode: 3
Resource id: 0x0
Failed to open device
X Error: BadDevice, invalid or uninitialized input device 168
Major opcode: 148
Minor opcode: 3
Resource id: 0x0
Failed to open device
段错误
</pre>

启动google查找,上面由2个原因造成:
问题1.
引用:
http://linuxonmylaptop.blogspot.com/2006/09/fixing-annoying-wacom-bug-in-x.html

The reason for the problem is that somehow "wacom" input devices are
loaded in xorg.conf, such as stylus and cursor - which are in fact
nonexistent on my computer! The solution is rather simple: comment out
in xorg.conf all the lines that have anything to do with "wacom": both
in the "Input device" sections ("wacom stylus", "wacom eraser", "wacom
cursor", from "Section" to "EndSection"), and from "ServerLayout"
(InputDevice "stylus", as well as "cursor" and "eraser"). It fixes it.
也就是说,有一个wacom的输入设备在xorg.conf里面被载入,事实上在机器内并没有
这样的设备,一个简单的处理方法就是把wacom相关的设备设置,注释掉就OK了.

问题2
引用:
http://ubuntucookbook.com/recipes/opera-segmentation-fault.html

最近,在更新 Ubuntu Feisty 后,启动 Opera 时会提示"segmentation fault
(段错误)",这将导致无法正常使用 Opera。其原因是,由于 libx11 得到升
级,Opera 无法使用该最新版而造成的。

目前,Opera 官方已经在 Weekly 快照版中修复了这个问题,你可以从这里下载
<http://snapshot.opera.com/unix/Weekly-633/intel-linux/>安装。

另外,如果你不想安装上面的新版本,也可以通过更改 /etc/X11/xorg.conf 文件
来解决此问题。具体的做法是,将"DefaultDepth"更改为 16。


总结:
1.升级会带来一定的潜在不稳定因素,不一定升级就是好的.够用就行!!
2.google是最好的帮手
3.碰到问题,不但要去找出解决方法,最重要的是知道为什么这样解决,最好把解决
的过程记录下来.

在ubuntu6.06下解决java和mysql乱码问题

系统环境如下:
OS:Ubuntu6.06LTS
JDK1.6, 直接在sun公司的网站上下载bin包进行安装.
MYSQL5.0, 通过sudo apt-get install mysql-server的方式进行你方式进行安装.
eclipse3.2.1, 在eclipse.org上下载解压得.

Ubuntu系统默认的编码是zh_CN.UTF-8,
通过在java程序中System.getenv()得来

mysql默认的编码是ISO-8859-1,
apt-get安装安mysql后,就会自动启动mysql服务.
mysql -uroot -p登录后,输入

mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

可以得知系统的默认编码情况

在不更改数据库的设置和系统设置的前提下
打开终端,输入:
mysql -uroot -p --default-character-set=utf8
注意:必须加上--default-character-set=utf8,才能在控制台正确查看utf字符.
建立数据库:
create database hibernate30 default character set utf8;
建表:

use hibernate30;
create table tb_users (
id int,
name varchar(100)
);

插入数据:
insert into tb_users values (1, '中文测试数据');
查询:
select * from tb_users;
得出结果:

+------+--------------------+
| id | name |
+------+--------------------+
| 1 | 中文测试数据 |
+------+--------------------+
1 row in set (0.00 sec)

至此,mysql数据库配置完毕.以下配置java环境.

在eclipse中输入java代码如下:

String url = "jdbc:mysql://localhost:3306/hibernate30?user=root&password=&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8";
String sql = null;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

if (! DbUtils.loadDriver("com.mysql.jdbc.Driver")){
log.error("can't load jdbc driver!");
return;
}
conn = DriverManager.getConnection(url);

stmt = conn.createStatement();
sql = "insert into tb_users values (1, '中文测试')";
stmt.executeUpdate(sql);

sql = "select * from tb_users";
rs = stmt.executeQuery(sql);
while (rs.next()) {
log.info(rs.getObject(1));
log.info(rs.getObject(2));
}
DbUtils.close(rs);
DbUtils.close(stmt);
DbUtils.close(conn);

需要注意的就是: url的写法.
需要添加useUnicode=true&characterEncoding=utf8&characterSetResults=utf8的参数
最后运行则是正常的结果.

总结:
系统编码,数据库编码,应用编码必须保存一致.



另外:
在其他的网上有设置mysql全局的默认字符,操作如下:

在某些时候,我们续要修改mysql默认数据库的编码,以保证某些迁移的程序可以正常显示,编辑my.cnf文件进行编码修改,windows可以直接用Mysql Server Instance Config Wizard 进行设置

在linux下修改3个my.cnf的1个/etc/mysql/my.cnf文件

找到客户端配置[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)

修改好后,重新启动mysql 即可,查询一下show variables like 'character%';

+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

这样就方便在建立库的时候,设置数据库的默认编码了.

2007-04-10

今天看到几张老照片,好怀念在鞍山的日子.

无意中整理320G+80G的硬盘垃圾,竟然找到一堆大学时期的照片,回想一下,好久没有回北方了.时间过得真快,真就一晃3年啊.
鞍山的雪,还有一口特土的东北调,然后时不时带点"jiba","xiaoyang","byang"...之类的粗话.那面还特爱挺评书,尤其是单田芳的,老是把收音机放在暖气片上播.估计是受评书的影响吧???那面说话还特搞笑风趣.南方人真的没有北方人能说!
突然在chinaren上面看到母校师弟师妹毕业的DV片<<再见,我的大学>>,甚是感动.


离职那天,我们复员……(转于CSDN)

2007-04-05

面试亿阳

2个星期之前去亿阳面试了,主要是谈了一下自己的情况,有什么样的工作经验,熟悉什么样的技术,给了一套java方面的试题,主要是考察java的基础知识,没有多大难度的.
后来由于工作交接的问题,没有经历和亿阳再次联系.
昨天是辞职后的第3天,和亿阳联系后,再去上机考试.
考试的主要内容是:在亿阳提供的平台上,进行一个小模块的开发.需要用到hibernate技术,实现一个增删改的页面.
幸好这段时间了解了一下hibernate,呵呵.上午半天时间熟悉了他们的框架搭建,下午开始编写代码.展现层使用struts那套,数据库访问通过hibernate,通过dao提供的方法,对model进行增删改,最终将结果反映到展现层.
这也是我第一次使用hibernate,总结一下hibernate的初印象:

  1. 自动为java程序将对关系数据库的访问转化为对对象model的访问.java只要处理好对象的关系,hibernate就能自动将处理转化为对数据库的相应处理.避免了直接jdbc访问N个数据库表.
  2. hibernate需要加载策略,缓存策略...等优化.
  3. 利于分层,逻辑清晰.struts的action和form放在controller包中,访问数据库操作放在dao包中.访问的对象抽象放到model包中.显示中的动态内容至于form中,当访问一个URL后,action将一些值从form中取出,构成一个model,然后调用dao进行处理.最后将处理的结果至于form中,并至于request中.最后forward一下.简单的描述一下:-)

2007-04-03

买了一套情侣T-Shirt

在沃尔马下面买的,图案比较有意思.
我是插头,老婆是灯泡.

什么时候出去玩,就穿这套.呵呵:-)

2007年愚人节,新的一天,新的开始!总结一下在德意2年半的工作.

今天还是被手机闹钟叫醒的,时间是7点20.起来后才发觉,自己已经辞职了,没有必要那么早起床.深呼吸一口气,有一种自由的味道.
其实离开德意,多多少少还是有点舍不得.毕竟在那面工作了快3年了,来了走了N多同事.德意有点"来的都是客,人走茶就凉"的味道.今天是风水轮流转,转到我了:-)
总结一下在德意的2年半:
------------------------------------------------------------------------

  1. 2004-09,通过蒋叔叔的关系,离开一家不知名的小公司,进入德意.那时的确有一点猛劲.跑到德意前台说要见李业荣,然后直接杀到李总的办公室,聊了几句他突然问我,蒋和生是你什么关系?"我叔叔"我直率得要命.然后在小包的带领下,进到软件研发中心(是一件于外界隔开的玻璃房间,里面坐满了肯肯敲键盘的高手,好羡慕!好激动!),见到了蒙工.蒙工安排毛哥跟我随便聊了一下,通过!即安排我做到阿标旁边,用一台P3的服务器,机箱高的要命,声音跟发动机似的,显示器水文波严重,我只要跳到600*480的分辨率.
  2. 之后就安排陆乐来带我,给我一份struts的考题,然后开始使用上心爱的eclipse.特意从南国书店买了一本struts的书,没日没夜的啃.用5天的时间啃书,然后再用3天的时间编代码.最后提交给阿飞看,陆乐竟然对我说,我是做完这个考题最快的一个.晕死!
  3. 做完struts的考题后,阿飞就安排我进入税务的项目组,做一个xml的解析和在线新闻的功能模块.对于xml解析这块,由于之前的代码本身就有问题,还和李宗杨吵了一架,不过现在回想起来,真是幼稚得要命.不就是一个xml嘛:-)
  4. 突然有一天,代豪来德意了,他是中科院的.这人很会说话,也有一点技术底子.公司特意派李宗杨和我跟着代豪,说做一个DE服务器.然后说了一堆7788关于网格运算的事.代豪还特意搞了一个计划表,先做这个,然后再做那个,搞得很像那么回事似的.虽然之前有点满目崇拜代豪这个高手(这事一直还被女朋友笑话),但是跟着代豪还是学到一点东西.不过都是自学的,也不错.了解到编译器的大致情况,也因此学了javacc这个好东东:-)
  5. 代豪走了之后,公司不知道从哪门子路,要做一个信息防护系统.好像是看到南宁晓蕾软件的文件防弹衣,公司也想插一脚.于是,把李宗杨和我叫过去,做一个文件防护器的东西,需求讨论来讨论去,说白了就是防治xxx用U盘,把主机里面的文件拷贝过去.如果要拷贝,则需要用密码.当时找了好多资料,好像能达到这样效果的似乎是使用hook技术.整个研发就是李宗杨和我2个人在搞这样的研究,把其他新进来的人给羡慕死了.其实我那时也羡慕他们,毕竟我想接触公司的产品,而不是做一个不成形的东西.最后还是做出来了,其实就是找到windows的一些api,然后判断一下目标是否是U盘,如果是的话,就提示输入密码,呵呵.通过这个软件还认识了几个网上的朋友,一个做C++的高手.不错!
  6. 之后好像很长时间没有我什么事,就是按时上下班,挺清闲的.直到后来公司有位高人离职了,我才被调过去接手他的工作.用delphi做DE报表设计器.同时也了解了市场上各种报表工具:-)那段时间天天表头,表尾,页头,页尾,表主体...DE报表设计器其实就是在华表cell自带的一个demo的基础上,加入报表设计的功能.最后制作出一个xml文档,就是用来描述报表的.然后把这个xml文档发布到报表解析器,就自动生成一个报表.不过那时的功能很简单,只能制作出简单的报表.
  7. 就这样断断续续的维护着DE报表设计器的修改工作.后来猪头对我说,电子商务实验室需要人手志愿,把我调到了电子商务组.这才真正接触了公司的产品,也真正开始使用我喜爱的java.那时陆乐需要离职,我的工作就是和陆乐一起做中宏的几个考试平台.等陆乐走人后,我接手陆乐负责的项目.电子商务实验室,就是一个考试平台,加上一个试验平台.老师在考试平台上面布置一些7788的任务,并将任务发给学生,学生登陆试验平台,根据布置的任务进行考试.最后提交考试成绩包,返回给老师.刚开始还不太适应,后来慢慢的熟悉了考试平台的代码,等陆乐走人后,自己一个人负责电子商务实验室考试平台的维护,感觉还是有一点成就感哦~~~哈咔咔.
  8. 中宏的项目做完之后,突然又冒出一个山东的电子商务实验室.公司只给我2个星期的时间,把考试平台修改成山东版本.晕!那时真是加班得昏天暗地,时间太紧张了.不过咬咬牙,还是坚持住了.修改完后,就交给山东全省进行电子商务试验室的考试.那时北京公司的尤伟天天给我打电话,说这面出一个问题,那面出一个问题,害得我天天加班修改.不过欣慰的事,正式考试的那天,没有接到1个电话.之后问尤伟那天的情况,他说:那天特别顺利,整个山东的考点都没有出现问题:-)心里面美滋滋的.那天特意还和女朋友和了点红酒,高兴啊.自己做的东西有人用了:-)
  9. 也在电子商务组呆了快1年了,认识了一些好朋友:杨毅峰,梁英杰,朱小鹏.要提一下的是杨毅峰,作为电子商务组的项目经理,为人很不错,办事很稳重.我一有问题就跑过去问他,他都是耐心的解答.在此谢谢他的帮助!
  10. 之后公司就打算在电子商务实验室上加2个附加的系统:理论考试系统和收银员考试系统.杨毅峰还是作为电子商务组的项目经理.我负责理论考试系统的系统设计以及主要部分的代码开发.理论考试系统说白了,就是出单选题,多选题,判断题,问答题的考卷,然后给学生做,做完后回收考试结果给老师.里面最复杂的就是自动组卷的算法,公司里面有一篇xxx教授写了论文,关于自动组卷的,不过仔细看了一下,里面根本没有相关的具体算法,只是从概念上论证了自动组卷的可行性.后来也在网上找过类似的东西,也因此了解了遗传算法的一些边边角角:-)不过最后实现,还是通过不断的匹配,在一个容错的范围内,自动搜索出符合要求的考题,组成一份考卷.考虑到老师不单单是电子化考试使用,可能还会使用纸质考试的传统方式.向领导提出一件,要求添加一个考卷导出的功能,将考卷导出为A4纸的RTF文档,老师可以通过Word,对考卷进行打印:-)这个想法一提出,猪头立刻同意,呵呵.
  11. 忙完了理论考试系统,手头上就没有什么事了.一天上网看看新闻,学学技术文档,也开始用起linux来了.用vmware开了好几个linux,有redhat,suse,debian,mardarava(好像这么写的),ubuntu...进入linux的世界,一切都是新鲜的.什么开源啊,自由啊,稳定啊,黑客啊,随之而来.特意从ubuntu网站上定购了5张CD安装盘:-)linux令人神往的地方~~~
  12. 公司不知道从什么地方获得的消息,决定搞网关软件.从网上搜索了N多网管软件,终于找到一个比较成熟的东东,高手们将其反编译,然后公司决定在上面进行开发.呵呵,开始学TCP/IP啦~~~特意买了一本很经典的TCP/IP详解来看.主要是了解SNMP这个协议.因为网关软件很多通过SNMP协议来进行信息获取的.开始没日没夜的看圣贤书了,嘿嘿.网管这个东西还是比较有技术含量的,毕竟网络环境太复杂,包括各种各样的情况.有的设备的MIS公开,有的却要自己去找.很费尽,实施也是碰到很多难处.公司也许是渐渐发现网关这个产品搞不下去,只能骗骗政府,骗市场是不行了.结果网管组解散.
  13. 2006-07,公司获得南宁市发改委项目管理系统的B标,从那天起,开始和杨毅峰进入南宁市发改委的项目了.一起按照软件工程里面的来走,调研,定需求,做初设,写数据库设计,做原型,做技术审定,进行代码开发...由于杨毅峰之前负责的工作,暂时不能全心身的投入到发改委项目中来,于是他向公司推荐我做这个项目的项目经理.呵呵,当官了:-)其实这个时候公司发生了不小的变革,为了节省成本,招来一堆实习生,培训培训做项目.当时我就带了2个.梁英杰更强,带了4个,真是师母级人物啊!毕竟第一次当项目经理,负责的杂事比较多,不单单要开发,而且还要和客户方面打交道,最重要的还是维护整个项目的进度.但是只是给了1个月的时间开发4个子系统.妈的!我是仙也完不成啊.公司就考虑将其中的2个外包出去(据说公司小领导把这几个外包出去后,利用差价,自己得了不少好处),自己只负责剩下的2个子系统的开发.里面工作量还是很大的.不单单开发人员的水平问题,而且还用到3个新工具:extra,水晶报表(后来没用了),jatools杰表.风险很大.整个系统也是求快开发.冲着项目经理的兴奋劲,连续加班2个月,差点女朋友都分手了...呵呵.

------------------------------------------------------------------------