权记

一个关于我们生活点滴的网站,一个记录我们酸甜苦辣的日志。

Welcome to 权记

昨天将Ubuntu 9.10 格式了,装了最新的Ubuntu 10.04, 由于是双系统,需要更改引导文件的启动顺序。

发现原来ubuntu 9.10下面的menu.lst找不到了,取而代之是grub.cfg, 当然目录结构不变:/boot/grub/

ubuntu 10.04使用了GRUB2,更多信息可以查看这里:https://wiki.ubuntu.com/Grub2

转:土豆炖牛肉的做法

原料:

牛肋条肉、土豆。

辅料:

老抽、冰糖、葱段、姜片、红干椒、调料包(八角,花椒,香叶,桂皮,白芷,干山楂片)、蚝油、味精。

做法:

1、锅中烧开水,将整块牛肋条肉放入焯煮2-3分钟,捞出(血水不要),洗净,切成块,沥干或拭干水份;

2、炒锅烧热油,放入葱段姜片红干椒炒香,倒入牛肉块,翻炒断生后,倒入料酒,老抽,少许冰糖,均匀上色后,倒入齐平的开水;

3、大火烧开后,转入高压锅,放入调料包,大火烧至上汽后转小火压20-30分钟;

4、土豆洗净,去皮,切成滚刀块;

Read More

今天在使用的时候无法打开提示:该文件没有程序与之关联来执行该操作。……请在“默认程序”控制面板中创建关联。

据说此问题可能是安装纳米机器人导致,没有重新验证此问题。

网上找了两种解决办法:
1、将下面的内容保存为reg格式文件,然后执行,导入注册表即可(亲测可用)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage]
@=hex(2):40,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,\
00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,\
79,00,63,00,6f,00,6d,00,70,00,75,00,74,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,\
00,34,00,30,00,30,00,00,00
“MUIVerb”=hex(2):40,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,\
6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,\
00,6d,00,79,00,63,00,6f,00,6d,00,70,00,75,00,74,00,2e,00,64,00,6c,00,6c,00,\
2c,00,2d,00,34,00,30,00,30,00,00,00
“SuppressionPolicy”=dword:4000003c
“HasLUAShield”=”"
[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage\command]
@=hex(2):25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,00,5c,00,73,00,79,00,73,\
00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,6d,00,63,00,2e,00,65,00,78,00,\
65,00,20,00,2f,00,73,00,20,00,25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,\
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6f,00,\
6d,00,70,00,6d,00,67,00,6d,00,74,00,2e,00,6d,00,73,00,63,00,00,00

Read More

本周主题:Apache Nginx Tomcat集群

最近这段时间一个项目处于最后的调试,上线阶段,服务器和程序的优化方面成为最近的重点,以确保项目上线后可以达到预定的目标。

最终上线的配置是Apache+Tomcat集群,Nginx仅仅参与了一下测试,算是体验下,以后估计会在前端上多多使用。

Apache前端使用的是反向代理配置方式,Session Sticky,Tomcat配置sessionDB。

Apache基本上采用默认配置,由于使用prefork模式,因此调整了prefork下的一些参数配置。

Tomcat调整了连接数,Apache和Tomcat在同台机子上,调整了Linux系统的ulimit。

Nginx做前端时,没有配置session同步,压力测试的表现方面,没发现Apache和Nginx有太大差异,不过有一次Apache前端被压挂了,无法关闭httpd。

另外这次将GlashFish和Tomcat做了一个简单的对比,发现GlashFish+自身连接池测试效果要好于Tomcat+DBCP连接池,表现方面一个是内存使用上,另一个是数据库连接数和响应上。

转载:情感交互短片2则

这则短片来自World Builder,小电影达人Bruce Branit 花2年时间制作的一个9分钟短片( 据说拍摄只用了1天,另外600多天全投入在后期制作上了)剧情很感人,值得一提的是影片里的手势交互,以及建造世界时的各种设置工具,都非常有意思。

通过虚拟小镇场景贯穿整个故事,主人公以非常唯美的手法建造了如画般的风光,是女一号能够尽情享受那一刻的安静与舒适。短片中不俗的交互形式让我们大开眼界,同时也不禁佩服Bruce的创意思想。
Read More

对explain的各个属性一知半解,今天详细的了解一下。 Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。

本周主题 — MySQL Explain 详解

Explain语法:explain select … from … [where ...]

例如:explain select * from news;

输出:

+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+

下面对各个属性进行了解:

1、id:这是SELECT的查询序列号

2、select_type:select_type就是select的类型,可以有以下几种:

SIMPLE:简单SELECT(不使用UNION或子查询等)

PRIMARY:最外面的SELECT

UNION:UNION中的第二个或后面的SELECT语句

DEPENDENT UNION:UNION中的第二个或后面的SELECT语句,取决于外面的查询

UNION RESULT:UNION的结果。

SUBQUERY:子查询中的第一个SELECT

DEPENDENT SUBQUERY:子查询中的第一个SELECT,取决于外面的查询

DERIVED:导出表的SELECT(FROM子句的子查询)

Read More

[10/11周主题] – 微博

最近比较懒,写东西的欲望很低,但是没办法,周主题是自己给自己下的套,不能不钻!这几天把没补上的周主题给补上,以后周主题尽量按时完成。

本周主题–微博

最近应该说是微博产品大爆发了,自从Twitter推出来之后,微博产品在国内就开始火起来,最初最火的饭否因为某某事件到现在没了音信,做啥,嘀咕等目前看似也活得不太好,新浪围脖倒是成为目前微博在国内的代名词了,人气很旺,加上这几天网易微博发布了,搜狐微博也公测完毕了,腾讯微博还在内测,凤凰网微博也还在内测,人民网微博自从上次敏感词事件后关注的少了,其他还有很多…,总之以后微博将会遍地开花,使用的方式也各种各样,手机,Email,即时通讯工具等都可以方便的发布。

OK,说了这么多微博了,我们开始进入主题 – 微博,从几个微博的特点来入手,认识一下微博和它们的不同。

Twitter

作为微博的鼻祖,也是世界上目前使用人数最多的微博之一,Twitter更注重信息的传播,我喊了一嗓子,其他关注我的人可以看到,对于我喊的内容能够得到多少反馈,Twitter并不关注,ReTweet,俗称转发,Twitter原始转发只是把你想转发的内容转发一份出去,所有follow你的人都会看到,原作者并不知道。网友发明的RT,其实就是利用@。

新浪微博

在国内新浪微博做的应该说还算很不错,拓展了对微博的认识,比较典型的是转发和评论,也是实用最多的两个功能,有人说这两个功能有些重叠,个人看并不是这样的,转发一条微博,微博原作者会知道,follow你的粉丝也会看到,但是评论就只有微博原作者会知道,这是微博交互的两个不同途径,让用户有更多的选择。

搜狐微博

微博一般都是限制字数的,140貌似是默认的,网易整出来一个163个字数限制那是因为网易163,可搜狐微博不限制内容长度了,这是个进步还是走偏了方向,定位不准,这里不好说,短小而精悍有好处,但是有时候短小并不能表达想要表达的,估计这是搜狐微博不限制内容长度的一个初衷。

搜狐微博另一个特点是让微博和新闻连接起来,这有点像新闻评论,但是这比新闻评论更具传播性和互动性,你对一个新闻的评论可能会在你的粉丝里面引起更多的评论。

搜狐微博还有一个小功能就是加入了最近访客,进一步增强了互动。

Read More

[10/10周主题] – 正则表达式

和程序打交道的朋友,工作中很难避免不使用正则表达式,因为它可以很大程度上简化复杂和繁琐的字符串处理工作,关于正则表达式,wikimedia上是这样解释的:一个正则表达式通常被称为一个模式 (pattern),为用来描述或者匹配一系列符合某个句法规则的字符串。详细介绍参见这里:正则表达式

本周主题:正则表达式

首先介绍一个不错的正则表达式入门教程:《正则表达式30分钟入门教程》,即使你之前没接触过,也可以很容易入门应用。当然实际看下来肯定不止30分钟了,这篇文章作者几经修正浓缩了一些精华,让想接触的朋友更好的入门和使用,特别推荐。

另外推荐使用的是正则表达式验证工具:REGex TESTER  http://www.regextester.com/ , 随时可以将写好的正则表达式进行在线实时验证。

正则表达式说起来有不少使用方法,但是平常使用的正则表达式还是稍微比较简单,大部分都属于验证框架 或者 服务器上面的一些rewrite规则使用。

下面就整理和收集了一些常用的正则表达式,以备不时之需。

Validate 框架相关

1、匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

2、匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*

3、匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

4、匹配国内电话号码(这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等): \(?0\d{2}[) -]?\d{8}

5、匹配IP地址:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

6、匹配身份证:\d{15}|\d{18}

7、用户名可使用中文、英文字母(区分大小写)、数字或部分特殊字符(. _ – @),长度为4~20个字符:/^[\u4e00-\u9fa5A-Za-z0-9\_\-\.@]$/ig

Read More

Nginx试用

最近Nginx比较火,也比较好奇,于是今天就试着在自己的虚拟机上装了玩玩。

教程基本上是按照网上的教程一步步走来的。

1、下载Nginx 0.7.65

2、编译,这块稍微花了点时间,主要是缺少依赖的库,一个一个去下载安装,建议初学使用可以看这里:http://wiki.nginx.org/NginxInstallOptions

我是用的是CentOS,执行下面的命令:

yum install gcc openssl-devel pcre-devel zlib-devel

3、安装完,运行就可以了!注意:apache默认也是80端口,别重了,或者暂时把Apache关掉。

4、配置 stub_status , 配置之前确定在编译时加载 http_stub_status_module, 否则你就要重新编译了!

5、配置tomcat集群,现学现用,由于我们目前大部分服务器使用的是tomcat集群。

下载 gnosek-nginx-upstream-fair-2131c73.tar

重新编译,别忘记带上 –add-module=/home/mikespook/gnosek-nginx-upstream-fair-2131c73

简单的一个Nginx+Tomcat集群就运行起来了!网上配置教程一大堆,我也就自己实践实践,如果不明白可以Google下或者百度下,不行搜狗下,可怜的Google,不,应该是可怜的中国政府!

用mysqlsla来帮助分析慢查询日志

项目做压力测试的时候难免会碰上数据库压力比预期的高,这个时候就要进行数据库和sql优化,其中一个很好的办法便是分析数据库的慢查询日志。

以前都是手动打开浏览,或者通过Mysql自带的mysqldumpslow来查看,今天分享另外一个工具:mysqlsla

hackmysql.com推出的一款MySQL的日志分析工具

整体来说, 功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等.

格式说明如下:

总查询次数 (queries total), 去重后的sql数量 (unique)

输出报表的内容排序(sorted by)

最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.

Count, sql的执行次数及占总的slow log数量的百分比.

Time, 执行时间, 包括总时间, 平均时间, 最小, 最大时间, 时间占到总慢sql时间的百分比.

95% of Time, 去除最快和最慢的sql, 覆盖率占95%的sql的执行时间.

Lock Time, 等待锁的时间.

95% of Lock , 95%的慢sql等待锁时间.

Rows sent, 结果行统计数量, 包括平均, 最小, 最大数量.

Rows examined, 扫描的行数量.

Database, 属于哪个数据库

Users, 哪个用户,IP, 占到所有用户执行的sql百分比

Query abstract, 抽象后的sql语句

Query sample, sql语句

除了以上的输出, 官方还提供了很多定制化参数, 是一款不可多得的好工具.

安装和使用也非常简单
安装:

tar zxf http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
cd mysqlsla-2.03
perl Makefile.PL
make
make install

简单使用:

— Slow log: mysqlsla -lt slow slow.log

— General log: mysqlsla -lt general general.log

— Binary log: mysqlbinlog bin.log | mysqlsla -lt binary -

mysqlsla会自动判断日志类型,缺省会打印出前十条结果,可以通过类似“–top 100”的参数来修改,如果觉得每次输入麻烦,还可以建立一个配置文件“~/.mysqlsla”,在文件里写上:top=100,这样就不用每次都手动输入参数了。