如果开启了cpu的分页功能,则程序里引用到的地址都是虚拟地址(Intel x86架构下也有称这个为线性地址的),这个和物理内存够不够用是没有关系的。
http://rdc.taobao.com/blog/dba/html/329_virtual_memory.html#more-329
http://rdc.taobao.com/blog/dba/html/329_virtual_memory.html#more-329
“And God said, Let there be network: and there was timeout”
在使用MySQL的过程中,你是否遇到了众多让人百思不得其解的Timeout?
那么这些Timeout之后,到底是代码问题,还是不为人知的匠心独具?
本期Out-man,讲述咱们MySQL DBA自己的Timeout。
先看一下比较常见的Timeout参数和相关解释:
从以上解释可以看出,connect_timeout在获取连接阶段(authenticate)起作用,interactive_timeout和wait_timeout在连接空闲阶段(sleep)起作用,而net_read_timeout和net_write_timeout则是在连接繁忙阶段(query)起作用。
获取MySQL连接是多次握手的结果,除了用户名和密码的匹配校验外,还有IP->HOST->DNS->IP验证,任何一步都可能因为网络问题导致线程阻塞。为了防止线程浪费在不必要的校验等待上,超过connect_timeout的连接请求将会被拒绝。
即使没有网络问题,也不能允许客户端一直占用连接。对于保持sleep状态超过了wait_timeout(或interactive_timeout,取决于CLIENT_INTERACTIVE标志)的客户端,MySQL会主动断开连接。
即使连接没有处于sleep状态,即客户端忙于计算或者存储数据,MySQL也选择了有条件的等待。在数据包的分发过程中,客户端可能来不及响应(发送、接收、或者处理数据包太慢)。为了保证连接不被浪费在无尽的等待中,MySQL也会选择有条件(net_read_timeout和net_write_timeout)地主动断开连接。
这么多Timeout足以证明MySQL是多么乐于断开连接。而乐于断开连接的背后,主要是为了防止服务端共享资源被某客户端(mysql、mysqldump、页面程序等)一直占用。
作者:陶方 | 【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】
地址:http://rdc.taobao.com/blog/dba/html/433_mysql_timeout_analyze.html
在使用MySQL的过程中,你是否遇到了众多让人百思不得其解的Timeout?
那么这些Timeout之后,到底是代码问题,还是不为人知的匠心独具?
本期Out-man,讲述咱们MySQL DBA自己的Timeout。
先看一下比较常见的Timeout参数和相关解释:
connect_timeout
The number of seconds that the mysqld server waits for a connect packet before responding with Bad handshake.
interactive_timeout
The number of seconds the server waits for activity on an interactive connection before closing it.
wait_timeout
The number of seconds the server waits for activity on a noninteractive connection before closing it.
net_read_timeout
The number of seconds to wait for more data from a connection before aborting the read.
net_write_timeout
The number of seconds to wait for a block to be written to a connection before aborting the write.
The number of seconds that the mysqld server waits for a connect packet before responding with Bad handshake.
interactive_timeout
The number of seconds the server waits for activity on an interactive connection before closing it.
wait_timeout
The number of seconds the server waits for activity on a noninteractive connection before closing it.
net_read_timeout
The number of seconds to wait for more data from a connection before aborting the read.
net_write_timeout
The number of seconds to wait for a block to be written to a connection before aborting the write.
从以上解释可以看出,connect_timeout在获取连接阶段(authenticate)起作用,interactive_timeout和wait_timeout在连接空闲阶段(sleep)起作用,而net_read_timeout和net_write_timeout则是在连接繁忙阶段(query)起作用。
获取MySQL连接是多次握手的结果,除了用户名和密码的匹配校验外,还有IP->HOST->DNS->IP验证,任何一步都可能因为网络问题导致线程阻塞。为了防止线程浪费在不必要的校验等待上,超过connect_timeout的连接请求将会被拒绝。
即使没有网络问题,也不能允许客户端一直占用连接。对于保持sleep状态超过了wait_timeout(或interactive_timeout,取决于CLIENT_INTERACTIVE标志)的客户端,MySQL会主动断开连接。
即使连接没有处于sleep状态,即客户端忙于计算或者存储数据,MySQL也选择了有条件的等待。在数据包的分发过程中,客户端可能来不及响应(发送、接收、或者处理数据包太慢)。为了保证连接不被浪费在无尽的等待中,MySQL也会选择有条件(net_read_timeout和net_write_timeout)地主动断开连接。
这么多Timeout足以证明MySQL是多么乐于断开连接。而乐于断开连接的背后,主要是为了防止服务端共享资源被某客户端(mysql、mysqldump、页面程序等)一直占用。
作者:陶方 | 【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】
地址:http://rdc.taobao.com/blog/dba/html/433_mysql_timeout_analyze.html
mysqldump是非常重要的MySQL备份工具。然而在长年累月的使用过程中,TAOBAO多次出现了因mysqldump意外终止而导致备份失败的情况。
以下是我们经常遇到的问题:
1、Lost connection to MySQL server at ‘reading initial communication packet’:
这个主要是因为DNS不稳定导致的。如果做了网络隔离,MySQL处于一个相对安全的网络环境,那么开启skip-name-resolve选项将会最大程度避免这个问题。
2、Lost connection to MySQL server at ‘reading authorization packet’:
从MySQL获取一个可用的连接是多次握手的结果。在多次握手的过程中,网络波动会导致握手失败。增加connect_timeout可以解决这个问题;然而增加connect_timeout并不能防止网络故障的发生,反而会引起MySQL线程占用。最好的解决办法是让mysqldump重新发起连接请求。
3、Lost connection to MySQL server during query:
这个问题具备随机性,而淘宝MySQL的应用场景决定了我们无法多次备份数据以便重现问题。
然而我们注意到这个问题一般会在两种情况下会发生。一种是mysqldump **** | gzip ****;另外一种是mysqldump **** > /nfs-file
注意,不管是gzip还是nfs都有一种特点,那就是它们影响了mysqldump的速度。从这个角度思考,是不是mysqldump从MySQL接受数据包的速度不够快导致Lost connection to MySQL server during query错误呢?
为了定位到问题,我搭建了一个测试环境:
test@192.168.0.1:3306
CREATE TABLE `test` (
`id` bigint(20) NOT NULL auto_increment,
`b` varchar(2000) default NULL,
`c` varchar(2000) default NULL,
`d` varchar(2000) default NULL,
`e` varchar(2000) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
insert into test(b,c,d,e) values (lpad(’a',1900,’b'), lpad(’a',1900,’b'), lpad(’a',1900,’b'), lpad(’a',1900,’b'));
多次复制数据使测试环境达到一定数据量。
192.168.0.2:
编写一个c++程序
#include <stdio.h>
#include <mysql.h>
using namespace std;
int main()
{
MYSQL conn;
MYSQL_RES *result;
MYSQL_ROW row;
my_bool reconnect = 0;
mysql_init(&conn);
mysql_options(&conn, MYSQL_OPT_RECONNECT, &reconnect);
if(!mysql_real_connect(&conn, “192.168.0.1″, “test”, “test”, “test”, 3306, NULL, 0))
{
fprintf(stderr, “Failed to connect to database: %s\n”, mysql_error(&conn));
exit(0);
}
else
{
fprintf(stdout, “Success to connect\n”);
}
mysql_query(&conn, “show variables like ‘%timeout%’”);
result = mysql_use_result(&conn);
while(row=mysql_fetch_row(result))
{
fprintf(stdout, “%-10s: %s\n”, row[0], row[1]);
}
mysql_free_result(result);
fprintf(stderr, “\n”);
mysql_query(&conn, “select SQL_NO_CACHE * from test.test”);
result = mysql_use_result(&conn);
while((row=mysql_fetch_row(result))!=NULL)
{
fprintf(stderr, “Error %d: %s\n”, mysql_errno(&conn), mysql_error(&conn));
fprintf(stdout, “%s\n”, row[0]);
sleep(100);
}
fprintf(stderr, “Error %d: %s\n”, mysql_errno(&conn), mysql_error(&conn));
mysql_free_result(result);
mysql_close(&conn);
return 1;
}
#include <mysql.h>
using namespace std;
int main()
{
MYSQL conn;
MYSQL_RES *result;
MYSQL_ROW row;
my_bool reconnect = 0;
mysql_init(&conn);
mysql_options(&conn, MYSQL_OPT_RECONNECT, &reconnect);
if(!mysql_real_connect(&conn, “192.168.0.1″, “test”, “test”, “test”, 3306, NULL, 0))
{
fprintf(stderr, “Failed to connect to database: %s\n”, mysql_error(&conn));
exit(0);
}
else
{
fprintf(stdout, “Success to connect\n”);
}
mysql_query(&conn, “show variables like ‘%timeout%’”);
result = mysql_use_result(&conn);
while(row=mysql_fetch_row(result))
{
fprintf(stdout, “%-10s: %s\n”, row[0], row[1]);
}
mysql_free_result(result);
fprintf(stderr, “\n”);
mysql_query(&conn, “select SQL_NO_CACHE * from test.test”);
result = mysql_use_result(&conn);
while((row=mysql_fetch_row(result))!=NULL)
{
fprintf(stderr, “Error %d: %s\n”, mysql_errno(&conn), mysql_error(&conn));
fprintf(stdout, “%s\n”, row[0]);
sleep(100);
}
fprintf(stderr, “Error %d: %s\n”, mysql_errno(&conn), mysql_error(&conn));
mysql_free_result(result);
mysql_close(&conn);
return 1;
}
在这段代码里,sleep函数用来模拟NFS的网络延迟和gzip的运算时间。执行一段时间之后,Lost connection to MySQL server during query出现了,程序意外终止。在数据处理足够快的情况下,又会是怎样的结果?
将sleep的时间改为1,重新编译后发现程序能够完整跑完。根据《MySQL Timeout解析》上对net_write_timeout的解释,我们可以发现,mysqldump处理数据过慢(NFS、gzip引起)会导致MySQL主动断开连接,此时mysqldump就会报Lost connection to MySQL server during query错误。经过多次测试,确定这个错误是由于net_write_timeout设置过短引起。
作者:陶方 | 【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】
地址:http://rdc.taobao.com/blog/dba/html/435_mysqldump_error.html
构思是include两个php程序,一个renderheader.php,一个renderfooter.php.分别在页面的开头和结尾include这两个文件,就可以无缝的整合profiling到现有的程序当中。
renderheader.php
renderfooter.php
renderbody.php
本系列的文章暂时告一段落,希望对爱好php的朋友有所帮助。阅读全文
renderheader.php
<?php
$time_start = getmicrotime();
$filename="logs3/".date("Y-m-d",mktime()).".log";
$scriptName=$_SERVER["SCRIPT_NAME"];
echo $scriptName;
function getmicrotime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
function logToFile($filename, $msg,$scriptName)
{
$fd = fopen($filename, "a") or die ("Can't open file ".$filename);
// append date/time to message
$str = "[" . date("Y/m/d h:i:s", mktime()) . "] " ." ".$scriptName." ".$msg;
// write string
fwrite($fd, $str . "\n");
// close file
fclose($fd);
}
?>
$time_start = getmicrotime();
$filename="logs3/".date("Y-m-d",mktime()).".log";
$scriptName=$_SERVER["SCRIPT_NAME"];
echo $scriptName;
function getmicrotime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
function logToFile($filename, $msg,$scriptName)
{
$fd = fopen($filename, "a") or die ("Can't open file ".$filename);
// append date/time to message
$str = "[" . date("Y/m/d h:i:s", mktime()) . "] " ." ".$scriptName." ".$msg;
// write string
fwrite($fd, $str . "\n");
// close file
fclose($fd);
}
?>
renderfooter.php
<?php
$time_end = getmicrotime();
$msg=($time_end - $time_start)*1000;
logToFile($filename,$msg,$scriptName);
printf ("page render time: %.2fms\n\n",($time_end - $time_start)*1000);
?>
$time_end = getmicrotime();
$msg=($time_end - $time_start)*1000;
logToFile($filename,$msg,$scriptName);
printf ("page render time: %.2fms\n\n",($time_end - $time_start)*1000);
?>
renderbody.php
<?php
include("renderheader.php");
for ($i=1;$i<=10000;$i++)
{
echo "hello wade"."</br>";
}
include("renderfooter.php");
?>
include("renderheader.php");
for ($i=1;$i<=10000;$i++)
{
echo "hello wade"."</br>";
}
include("renderfooter.php");
?>
本系列的文章暂时告一段落,希望对爱好php的朋友有所帮助。阅读全文
今天在研究ob_start()的时候发现它的参数中有个callback,也就是回调函数。已前没有接触过,立即google。发现有好多文章介绍此函数的,但是大多数都介绍的很不清楚(也许本人水平太低,看不懂),最后貌似理解了。下边就我的理解介绍一下什么是callback function.
使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作。也就是可以讲回调函数作为另外一个函数的参数,然后利用回调函数完成一些操做。
下边就拿ob_start()来做一个例子,开始贴代码
ob_start() 会回调callback这个方法,对buffer中的内容进行修改。
来源:http://blog.sina.com.cn/s/blog_4d8a2c970100ewb3.html
使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作。也就是可以讲回调函数作为另外一个函数的参数,然后利用回调函数完成一些操做。
下边就拿ob_start()来做一个例子,开始贴代码
<?php
function callback($buffer)
{
// replace all the apples with oranges
return (str_replace("apples", "oranges", $buffer));
}
//ob_start will out put content to a internal buffer
ob_start("callback");
?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php
//will clean internal buffer
//ob_end_clean();
//will out the internal buffer's content.
ob_end_flush();
?>
function callback($buffer)
{
// replace all the apples with oranges
return (str_replace("apples", "oranges", $buffer));
}
//ob_start will out put content to a internal buffer
ob_start("callback");
?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php
//will clean internal buffer
//ob_end_clean();
//will out the internal buffer's content.
ob_end_flush();
?>
ob_start() 会回调callback这个方法,对buffer中的内容进行修改。
来源:http://blog.sina.com.cn/s/blog_4d8a2c970100ewb3.html
我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,从Nginx的日志可以统计出,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量:
服务器①:DELL PowerEdge 1950(两颗 Intel(R) Xeon(R) 双核CPU 5120 @ 1.86GHz,4GB内存)
服务器②:DELL PowerEdge 1950(一颗 Intel(R) Xeon(R) 双核CPU 5140 @ 2.33GHz,4GB内存)
Web服务器:CentOS Linux 4.4 + Nginx 0.5.35 + PHP 5.2.6RC2(300 FastCGI Procees, unix-domain socket, with XCache)
PHP程序内容:大量Memcached读写、少量MySQL读操作、大量文件队列写操作,然后计算,生成供<script type="text/javascript" src="http://www.domain.com/abc.php?u=1"></script>方式调用的JS代码或XML数据。
网卡流量:1.5M~3M/秒
请求数统计方式:从Nginx访问日志中,统计每分钟的第15秒共有多少条日志记录。
引用
grep "25/Mar/2008:15:01:15" /data1/logs/nginx.log | wc -l
服务器的系统负载也不算高:
总结:
1、Nginx的处理能力超强,这块不是瓶颈。影响动态程序处理能力的因素主要在于PHP(FastCGI)。PHP(FastCGI)模式适用于执行时间较短的PHP程序,一般复杂的PHP程序执行时间应该在100ms以内,例如我的博客首页执行时间为38ms左右。假设一个PHP程序的执行时间为 100ms,那么一个PHP(FastCGI)进程每秒可以处理完毕10个请求,300个FastCGI进程理论上每秒可以处理3000个请求。但是,在生产环境下,还将受到内存、系统负载等多方面的影响,例如300个PHP(FastCGI)进程需要占用2.4GB左右的内存,每秒处理超过1000个请求时,系统负载会飚升到100以上。因此,FastCGI的进程不是越多越好,而是够用就好。
2、使用PHP的XCache、APC等加速模块会提供速度10倍左右,降低系统负载50倍以上。
3、修改了spawn-fcgi,使它能够支持250个以上的FastCGI进程。
4、如果PHP直接对MySQL进行大量读写操作,速度是达不到“700 request/sec”的,PHP与MySQL之间需要一个中间层,这是关键的技术。
5、CPU的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。
6、使用PHP 5.2.6RC2,因为它修正了PHP 5.2.5的“zend_mm_heap corrupted”错误BUG。PHP 5.2.5(FastCGI)在高并发请求情况下,经常会出现该错误。
7、有空我将写一篇针对CentOS Linux环境Nginx + PHP5(FastCGI)安装、配置的最新博文。
来源:
http://blog.csdn.net/scun/archive/2008/03/27/2222233.aspx
服务器①:DELL PowerEdge 1950(两颗 Intel(R) Xeon(R) 双核CPU 5120 @ 1.86GHz,4GB内存)
服务器②:DELL PowerEdge 1950(一颗 Intel(R) Xeon(R) 双核CPU 5140 @ 2.33GHz,4GB内存)
Web服务器:CentOS Linux 4.4 + Nginx 0.5.35 + PHP 5.2.6RC2(300 FastCGI Procees, unix-domain socket, with XCache)
PHP程序内容:大量Memcached读写、少量MySQL读操作、大量文件队列写操作,然后计算,生成供<script type="text/javascript" src="http://www.domain.com/abc.php?u=1"></script>方式调用的JS代码或XML数据。
网卡流量:1.5M~3M/秒
请求数统计方式:从Nginx访问日志中,统计每分钟的第15秒共有多少条日志记录。
引用
grep "25/Mar/2008:15:01:15" /data1/logs/nginx.log | wc -l
服务器的系统负载也不算高:
总结:
1、Nginx的处理能力超强,这块不是瓶颈。影响动态程序处理能力的因素主要在于PHP(FastCGI)。PHP(FastCGI)模式适用于执行时间较短的PHP程序,一般复杂的PHP程序执行时间应该在100ms以内,例如我的博客首页执行时间为38ms左右。假设一个PHP程序的执行时间为 100ms,那么一个PHP(FastCGI)进程每秒可以处理完毕10个请求,300个FastCGI进程理论上每秒可以处理3000个请求。但是,在生产环境下,还将受到内存、系统负载等多方面的影响,例如300个PHP(FastCGI)进程需要占用2.4GB左右的内存,每秒处理超过1000个请求时,系统负载会飚升到100以上。因此,FastCGI的进程不是越多越好,而是够用就好。
2、使用PHP的XCache、APC等加速模块会提供速度10倍左右,降低系统负载50倍以上。
3、修改了spawn-fcgi,使它能够支持250个以上的FastCGI进程。
4、如果PHP直接对MySQL进行大量读写操作,速度是达不到“700 request/sec”的,PHP与MySQL之间需要一个中间层,这是关键的技术。
5、CPU的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。
6、使用PHP 5.2.6RC2,因为它修正了PHP 5.2.5的“zend_mm_heap corrupted”错误BUG。PHP 5.2.5(FastCGI)在高并发请求情况下,经常会出现该错误。
7、有空我将写一篇针对CentOS Linux环境Nginx + PHP5(FastCGI)安装、配置的最新博文。
来源:
http://blog.csdn.net/scun/archive/2008/03/27/2222233.aspx
不重视细节,如何谈得上成功!
1)程序员每天总结自己一天任务的完成情况
最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多
2)考虑自己明天应该做的主要工作
把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作
3)考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法
出错不要紧,最重要的是不要重复犯相同的错误,那是愚蠢
4)考虑自己一天工作完成的质量和效率能否还能提高
一天只提高1%,365天你的效率就能提高多少倍你知道吗? (1+0.01)^365 = 37 倍
5)看一个有用的新闻网站或读一张有用的报纸,了解业界动态
闭门造车是不行的,了解一下别人都在做什么,对自己能带来很多启示
6)记住一位同事的名字及其特点
你认识公司的所有同事吗?你了解他们吗?
7)清理自己的代码
今天完成的代码,把中间的调试信息,测试代码清理掉,按照编码风格整理好,注释都写好了吗?
8)清理自己的桌面
当日事当日毕,保持清洁干劲的桌面才能让你工作时不分心,程序员特别要把电脑的桌面清理干净
1)程序员每天总结自己一天任务的完成情况
最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多
2)考虑自己明天应该做的主要工作
把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作
3)考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法
出错不要紧,最重要的是不要重复犯相同的错误,那是愚蠢
4)考虑自己一天工作完成的质量和效率能否还能提高
一天只提高1%,365天你的效率就能提高多少倍你知道吗? (1+0.01)^365 = 37 倍
5)看一个有用的新闻网站或读一张有用的报纸,了解业界动态
闭门造车是不行的,了解一下别人都在做什么,对自己能带来很多启示
6)记住一位同事的名字及其特点
你认识公司的所有同事吗?你了解他们吗?
7)清理自己的代码
今天完成的代码,把中间的调试信息,测试代码清理掉,按照编码风格整理好,注释都写好了吗?
8)清理自己的桌面
当日事当日毕,保持清洁干劲的桌面才能让你工作时不分心,程序员特别要把电脑的桌面清理干净
一个年轻人,如果三年的时间里,没有任何想法,他这一生,就基本这个样子,没有多大改变了。
2、成功者就是胆识加魄力,曾经在火车上听人谈起过温州人的成功,说了这么三个字,“胆子大”。这其实,就是胆识,而拿得起,放得下,就是魄力。
3、这个世界,有这么一小撮的人,打开报纸,是他们的消息,打开电视,是他们的消息,街头巷尾,议论的是他们的消息,仿佛世界是为他们准备的,他们能够呼风唤雨,无所不能。你的目标,应该是努力成为这一小撮人。
4、如果,你真的爱你的爸妈,爱你的女朋友,就好好的去奋斗,去拼搏吧,这样,你才有能力,有经济条件,有自由时间,去陪他们,去好好爱他们。阅读全文
2、成功者就是胆识加魄力,曾经在火车上听人谈起过温州人的成功,说了这么三个字,“胆子大”。这其实,就是胆识,而拿得起,放得下,就是魄力。
3、这个世界,有这么一小撮的人,打开报纸,是他们的消息,打开电视,是他们的消息,街头巷尾,议论的是他们的消息,仿佛世界是为他们准备的,他们能够呼风唤雨,无所不能。你的目标,应该是努力成为这一小撮人。
4、如果,你真的爱你的爸妈,爱你的女朋友,就好好的去奋斗,去拼搏吧,这样,你才有能力,有经济条件,有自由时间,去陪他们,去好好爱他们。阅读全文
当今社会,任何人想成功都必须具备三个条件:一是公平创业的载体。宝马车只有找到好公路才会有速度,你必须找到好的载体去承托你的梦想,你的梦想才有可能变成现实;二是良师益友,他们会让你资讯超前,观念超前。21世纪是英雄退位,团队进位。小成就靠个人,大成就靠团队。必须找到良师指点,益友相助,形成一群力量,你的人生才会成功;三是个人努力。这三个条件缺一不可,而且顺序不能颠倒,首先必须是载体,然后是良师益友,再加上个人努力。这三点结合起来你会突然发现,选择比努力更重要。选择不对,努力白费。只有把选择放在努力的前面,努力才会有结果,价值才会有体现。如果努力就会成功,天底下就不会再有民工。
从这个角度来说,人生关键处的选择更重要。这个关键处的选择实际上就是人生目标的选择。人可以晕船晕车晕飞机,但绝对不能晕人生。人生一定要有目标,正所谓有目标的人生叫航行,没目标的人生叫流浪,流浪的人生是很不好受的。人生一定要每天很清楚地问自己三件事情:我到底想要什么、我现在在做什么、我该去做什么。人生一定是做了你该做的,才会得你想要的。不是做自己喜欢做的,而是做自己该做的。成功之前,爱好个性叫毛病,成功之后爱好毛病叫特长特质。一个人想要结果精彩,一定要过程精彩。一生就那么多天,时间用在哪里,未来就在哪里。人与人的不同在于8小时之外做什么和想法的不同。人生就是单行道,只有现场直播,没有彩排。只有前进的没有倒回的,才有千金难买早知道,万金难买后悔药。所以人的一生不是赢在起点,而是赢在转折点,选择比努力更重要。迈出的脚步大小不重要,重要的是脚步的方向,勤奋的双脚一定要踏在正确的道路上。励志照亮人生,创业改变命运,观念决定贫富,思路决定出路!失败的人找借口与理由,成功的人则找方法与机会!陈安之说,人生的转机不是发生在危机时刻,而是出现在机遇之时。工作、学习、恋爱、创业等等不顺利的时候,不是要迷惑而停滞不前,而是要迈出关键的一步,让危机转变为机遇从而迅速实现转型,走向成功。阅读全文
从这个角度来说,人生关键处的选择更重要。这个关键处的选择实际上就是人生目标的选择。人可以晕船晕车晕飞机,但绝对不能晕人生。人生一定要有目标,正所谓有目标的人生叫航行,没目标的人生叫流浪,流浪的人生是很不好受的。人生一定要每天很清楚地问自己三件事情:我到底想要什么、我现在在做什么、我该去做什么。人生一定是做了你该做的,才会得你想要的。不是做自己喜欢做的,而是做自己该做的。成功之前,爱好个性叫毛病,成功之后爱好毛病叫特长特质。一个人想要结果精彩,一定要过程精彩。一生就那么多天,时间用在哪里,未来就在哪里。人与人的不同在于8小时之外做什么和想法的不同。人生就是单行道,只有现场直播,没有彩排。只有前进的没有倒回的,才有千金难买早知道,万金难买后悔药。所以人的一生不是赢在起点,而是赢在转折点,选择比努力更重要。迈出的脚步大小不重要,重要的是脚步的方向,勤奋的双脚一定要踏在正确的道路上。励志照亮人生,创业改变命运,观念决定贫富,思路决定出路!失败的人找借口与理由,成功的人则找方法与机会!陈安之说,人生的转机不是发生在危机时刻,而是出现在机遇之时。工作、学习、恋爱、创业等等不顺利的时候,不是要迷惑而停滞不前,而是要迈出关键的一步,让危机转变为机遇从而迅速实现转型,走向成功。阅读全文
“过于谨慎之人将一事无成。”——弗里德里希 冯 席勒①
在有案可稽的人类历史上,大多数人都是属于风险规避型的。猎人和以采集野果为生者可以浪迹天涯,但是当农业文明出现后,大多数人都选择了定居的生活方式。人们选择了父辈和祖辈的生活方式,一辈子都不曾走出过村口半步。这种选择也是明智的,因为外面的世界很危险。你不妨看看古代的航海图,上面很多地方都标志出了“未知海域”,有些还带有更让人担惊受怕的警告——“此处有蛟龙出没”。古今中外,又有几个人愿意冒着巨大的风险驾船进入这些危险海域呢? 阅读全文
在有案可稽的人类历史上,大多数人都是属于风险规避型的。猎人和以采集野果为生者可以浪迹天涯,但是当农业文明出现后,大多数人都选择了定居的生活方式。人们选择了父辈和祖辈的生活方式,一辈子都不曾走出过村口半步。这种选择也是明智的,因为外面的世界很危险。你不妨看看古代的航海图,上面很多地方都标志出了“未知海域”,有些还带有更让人担惊受怕的警告——“此处有蛟龙出没”。古今中外,又有几个人愿意冒着巨大的风险驾船进入这些危险海域呢? 阅读全文
如果这篇文章没有分享给你,那是我的错。
如果这篇文章分享给你了,你却没有读,继续走弯路的你不要怪我。
如果你看了这篇文章,只读了一半你就说没时间了,说明你已经是个“茫"人了。
如果你看完了,你觉得这篇文章只是讲讲大道理,说明你的人生阅历还不够,需要你把这篇文章珍藏,走出去碰几年壁,头破血流后再回来,再读,你就会感叹自己的年少无知。
如果你看完了,觉得很有道理,然后束之高阁,继续走进拥挤的地铁,依然用着自己昨日的观念来思考自己的未来,你的人生也将继续重复着昨日的状况。
如果你看完了,觉得那是一个过来人,对你的人生忠告,并你也愿意用他告诉你的思想去指导自己今后的生活,对你来讲成功不是很难,难的是你是否可以用这篇文章里的思想一直鞭策自己。
如果你看完了,觉得那是一个长辈用他的一生的时间来写的一篇对你忠告的文章,说明你已经有了和他相似的人生阅历,只要你继续努力,成就伟业并不难,难的是你是否可以把自己的人生经验和他人分享呢?
体验决定深度,知识决定广度。你的人生是什么呢?
阅读全文
如果这篇文章分享给你了,你却没有读,继续走弯路的你不要怪我。
如果你看了这篇文章,只读了一半你就说没时间了,说明你已经是个“茫"人了。
如果你看完了,你觉得这篇文章只是讲讲大道理,说明你的人生阅历还不够,需要你把这篇文章珍藏,走出去碰几年壁,头破血流后再回来,再读,你就会感叹自己的年少无知。
如果你看完了,觉得很有道理,然后束之高阁,继续走进拥挤的地铁,依然用着自己昨日的观念来思考自己的未来,你的人生也将继续重复着昨日的状况。
如果你看完了,觉得那是一个过来人,对你的人生忠告,并你也愿意用他告诉你的思想去指导自己今后的生活,对你来讲成功不是很难,难的是你是否可以用这篇文章里的思想一直鞭策自己。
如果你看完了,觉得那是一个长辈用他的一生的时间来写的一篇对你忠告的文章,说明你已经有了和他相似的人生阅历,只要你继续努力,成就伟业并不难,难的是你是否可以把自己的人生经验和他人分享呢?
体验决定深度,知识决定广度。你的人生是什么呢?
阅读全文
浙江人的工作哲学:“宁做创业狼,不做打工狗”。
当然这话说的很极端,很多打工的朋友都不乐意听,但是我们仔细想想,这位老兄的话还真有点道理呢。
狼为了寻求自由,宁愿独立人格,自由思想,天天奔跑在大草原上,肆意的猎杀牛羊,尽可能的享受大自然提供的一切美味,吃饱后就躺在草地上,什么都不想,享受阳光和自由的空气,他们是草原的主宰,他们有的是尊严。不过当严寒来临时,他们必须学会抗拒暴风雪的寒冷,学会在厚厚的雪堆下面寻找猎物,时常忍受饥饿的痛苦,随时担心自己冻饿而死。狼的生活可谓一半是海水,一半是火焰。
狗的生活恰恰相反,平时狗只能吃主人剩下的残羹冷炙,被主人吆喝着到处忙活,没有自由,没有尊严,只有摇尾乞怜,狗的生活是有保证的,虽然从来吃不到什么美味,但是冬天到来时也不担心挨饿受冻,有主人的屁护,狗们感恩戴德,发誓下一辈子依旧为主人效忠,即便主人肆意的打骂狗们,狗们也多半不敢吭一声,因为听话和驯服是狗们的标志。委曲求全是狗们的标签,为了稳定的饭碗,为了自己老时有一份固定的口粮,一切都认了!
如果把现实生活中的人们进行比较,估计我们大多都是过着狗的生活,稳定安逸,但是永远吃不饱,想离开主人家的狗窝,但是缺乏破釜沉舟的勇气!
我感到现实中的年轻人的职业选择大多是做打工狗,而不是做创业狼。可能很多朋友会说,刚出校门的学生,哪里有资本和经验去创业呀?最好的选择就是去公司打工几年,储备点经验和资金,然后几年后有机会的话再自己创业。
其实这样的想法证明是很错误的,一个大学生单位工作几年后,不但赚不到创业所需要的钱,更是无法学到创业的经验与技能。打工生涯学到的东西对创业基本上是没有用的,因为两者的角度不同,思考方式不同,得到的经验体会也不同,只能这么说,打工几年后你唯一获得提高的是打工的技术技能,而创业最不需要的就是技术技能了。
更可怕的是,打工几年后,年轻人普遍会丧失创业的激情,丧失初生牛犊不怕虎的勇气,越来越沉湎于单位之中难以自拔,后来创业的念头只能永远的留在心底,成为永久的遗憾。等到年龄到了40多被老板辞退的时候,才后悔20年前为什么不出来自己创业呀!
那么做创业狼的要求究竟高不高?
我的答案是:只要有做创业狼的理念,哪怕口袋里只有100元,照旧可以创业成功!
人家早一辈的温州人出来做生意口袋有几个钱?不是靠换鸡蛋换铁锅赚的第一笔钱嘛。你口袋里只有100元,至少可以在街边摆个地摊,冬天卖点袜子手套什么的,夏天卖点菠萝什么的,资金充足一点后可以搞个烧烤之类的,反正,钱再少,也能走上创业的道路,关键看你想不想做创业狼?
打工人生与创业人生一定是不一样的。
时间长了,打工者的性格与创业者的性格会有越来越大的差别。
我们扪心自问,打工时间长的朋友时不时觉得更加患得患失,害怕外面陌生的世界,害怕失业的危险,心灵变得越来越敏感和脆弱。心态不仅逐渐的疲惫和懒惰,整个人也没有了锐气和精神,只好安慰自己知足长乐,淡漠名利。但是生活变得越来越平庸,家庭的经济负担越来越沉重,房子和孩子教育日渐成为自己脖子上的经济绳索,勒的越来越紧,透不过气来,只好调整自己的心态,让自己逐渐适应城市小爬虫的定位,自己本来就是庸人,庸人何必自扰之,发财是人家的事情,咱没有那命。
最恐惧的第一件事情莫过于听到公司效益不好,要裁员的消息,最要紧的事情和领导搞好关系,坚持学习恭维逢迎拍马屁,入乡随俗嘛。思想麻木了,只好随大流,毕竟饭碗在领导或老板的手心里面,想让你滚蛋,就得滚蛋。
最恐惧的第二件事情,是看到自己年龄的日渐增长,可是自己的工作技能却没有获得任何提高,虽然靠着资历老工资也越来越多,可是看着那些新进来的年轻大学生,生龙活虎的干活,却只要那么一点的工资,老板的敲打在耳边响起,看人家年轻人吃的少干的多,你们这些老革命越老越不行了。难怪,打工生涯的结果是越老越贬值,尤其到了40-50年龄段,简直是事业最悲惨的阶段,时刻濒临深渊,如同趟地雷阵,动辄下岗失业。
有人说过去10年是蓝领工人下岗的高峰期,未来10-20年将是白领工人下岗的高峰期,你一位自己曾经读个大学就是精英了?社会不断进步,你的知识结构,身体素质,职业理念早就不如人家刚毕业的大学生了。老板是现实的,肯定率先在遇到危机时裁掉那些40-50年龄段的白领工人。
所以说你现在有个稳定的工作,你觉得安全,其实等与在你身边按了颗定时****,等到10多年后,它会爆炸,你那时失业的痛苦与代价恐怕要比现在残忍100倍。
其实表面看创业面临的现实风险比打工高很多,可是从长久看,打工带来的风险更高。
创业的风险是失去近几年的预期打工收入,甚至破产后还得赔进去自己借的一部份钱,但是毕竟年轻,能够屡败屡战,从失败中汲取养分和经验,经商水平与能力一次比一次高,逐渐融入经商人士的群体后,眼界和经验日积月累,总有一个量变到质变的突破,只要真正的跨入了生意门,将来的事业基本上一片坦途。钱也越赚越多,财富积累越来越多,自身的价值也能得到最大的体现。
相反,打工生涯持续下来,近几年确实平安无事,可是你其实在不断的贬值和缩水,而不是越来越强健。打工的时间越长,你会越来越心虚,越来越胆怯,10几年后,稍有不慎,就可能被炒掉鱿鱼,失业下岗,你看看那个风险大呢?
年轻炙热的心,蹋上人生的征途,其实没有你想像的那么的简单,
我们有什么,什么都没有,为有年轻,一个澎湃激情的心,激情一时是不行的,
弱肉强十的的社会,没的一技子长是不行的。只是社会的渣子,和乞丐有什么区别,
思路决定出路,行动决定结果。
绝大多数人习惯做语言的巨人,行动的矮子。
越是智商高的人越容易陷入这个悖论中,难以自拔。
看来上帝是公平的,赋予人智慧的同时,往往剥夺他的勇敢。
所以世界上享有精彩人生的人总是少数。
我们来描述一下那些继续打工者的心态。
他们嘴巴上说自己一直都在耐心等待,等真正的机会。智者深思熟虑,三思而后行。他们一直在等条件成熟,哪怕花开花又落,可是等到现在,时机也没有等到,条件也没有成熟,现实生活的质量还是没有得到改观。
记得希腊有一首很悲观的民歌:“日神阿波罗是个勇士,他能够一拳打倒凶猛的敌人,但他无法扭转自己的命运。普罗米修斯是个智慧的神,他能够瞒着宙斯把火种偷了出来,教那些可怜的人们看到光亮,而他自己却被鹫鹰啄着心肝,这是命运跟他开的玩笑!”这就是人们认为自己的力量无法战胜自己命运、改变现实的例子。
为别人打零工才得以糊口的打工朋友们不是不想改变现实生活,也有紧迫感,也很想改变自身的“贫穷”面貌,但是总有恐惧感,因为从来没有独立把握自己命运的经历和经验,就像一个从来没有用过电脑的人,生怕按错开关和按钮把电脑烧坏了、一用力就把键盘敲坏了,或者一上网就会遭遇病毒一样。事情其实并没有那么可怕,对于恐惧电脑的人来说,最重要的就是插上电源,再依次开机就好了。
当然我们打工者在职场上总是对工作本身负责、对企业对老板负责,所以要等条件成熟,而实际上促使这些条件具备往往会消耗很多精力,拖延很多时间,有时还没有等到条件成熟,周边的环境已经发生了变化,旧的条件还没有达到,新的问题又冒出来了,结果还是无所适从,最终导致不了了之。所以,对于打工者来说,最重要的就是要明白必须先行动在思考。
注:文章出于分享目的,绝对没有排斥打工者的意思,创业和打工同样重要!
当然这话说的很极端,很多打工的朋友都不乐意听,但是我们仔细想想,这位老兄的话还真有点道理呢。
狼为了寻求自由,宁愿独立人格,自由思想,天天奔跑在大草原上,肆意的猎杀牛羊,尽可能的享受大自然提供的一切美味,吃饱后就躺在草地上,什么都不想,享受阳光和自由的空气,他们是草原的主宰,他们有的是尊严。不过当严寒来临时,他们必须学会抗拒暴风雪的寒冷,学会在厚厚的雪堆下面寻找猎物,时常忍受饥饿的痛苦,随时担心自己冻饿而死。狼的生活可谓一半是海水,一半是火焰。
狗的生活恰恰相反,平时狗只能吃主人剩下的残羹冷炙,被主人吆喝着到处忙活,没有自由,没有尊严,只有摇尾乞怜,狗的生活是有保证的,虽然从来吃不到什么美味,但是冬天到来时也不担心挨饿受冻,有主人的屁护,狗们感恩戴德,发誓下一辈子依旧为主人效忠,即便主人肆意的打骂狗们,狗们也多半不敢吭一声,因为听话和驯服是狗们的标志。委曲求全是狗们的标签,为了稳定的饭碗,为了自己老时有一份固定的口粮,一切都认了!
如果把现实生活中的人们进行比较,估计我们大多都是过着狗的生活,稳定安逸,但是永远吃不饱,想离开主人家的狗窝,但是缺乏破釜沉舟的勇气!
我感到现实中的年轻人的职业选择大多是做打工狗,而不是做创业狼。可能很多朋友会说,刚出校门的学生,哪里有资本和经验去创业呀?最好的选择就是去公司打工几年,储备点经验和资金,然后几年后有机会的话再自己创业。
其实这样的想法证明是很错误的,一个大学生单位工作几年后,不但赚不到创业所需要的钱,更是无法学到创业的经验与技能。打工生涯学到的东西对创业基本上是没有用的,因为两者的角度不同,思考方式不同,得到的经验体会也不同,只能这么说,打工几年后你唯一获得提高的是打工的技术技能,而创业最不需要的就是技术技能了。
更可怕的是,打工几年后,年轻人普遍会丧失创业的激情,丧失初生牛犊不怕虎的勇气,越来越沉湎于单位之中难以自拔,后来创业的念头只能永远的留在心底,成为永久的遗憾。等到年龄到了40多被老板辞退的时候,才后悔20年前为什么不出来自己创业呀!
那么做创业狼的要求究竟高不高?
我的答案是:只要有做创业狼的理念,哪怕口袋里只有100元,照旧可以创业成功!
人家早一辈的温州人出来做生意口袋有几个钱?不是靠换鸡蛋换铁锅赚的第一笔钱嘛。你口袋里只有100元,至少可以在街边摆个地摊,冬天卖点袜子手套什么的,夏天卖点菠萝什么的,资金充足一点后可以搞个烧烤之类的,反正,钱再少,也能走上创业的道路,关键看你想不想做创业狼?
打工人生与创业人生一定是不一样的。
时间长了,打工者的性格与创业者的性格会有越来越大的差别。
我们扪心自问,打工时间长的朋友时不时觉得更加患得患失,害怕外面陌生的世界,害怕失业的危险,心灵变得越来越敏感和脆弱。心态不仅逐渐的疲惫和懒惰,整个人也没有了锐气和精神,只好安慰自己知足长乐,淡漠名利。但是生活变得越来越平庸,家庭的经济负担越来越沉重,房子和孩子教育日渐成为自己脖子上的经济绳索,勒的越来越紧,透不过气来,只好调整自己的心态,让自己逐渐适应城市小爬虫的定位,自己本来就是庸人,庸人何必自扰之,发财是人家的事情,咱没有那命。
最恐惧的第一件事情莫过于听到公司效益不好,要裁员的消息,最要紧的事情和领导搞好关系,坚持学习恭维逢迎拍马屁,入乡随俗嘛。思想麻木了,只好随大流,毕竟饭碗在领导或老板的手心里面,想让你滚蛋,就得滚蛋。
最恐惧的第二件事情,是看到自己年龄的日渐增长,可是自己的工作技能却没有获得任何提高,虽然靠着资历老工资也越来越多,可是看着那些新进来的年轻大学生,生龙活虎的干活,却只要那么一点的工资,老板的敲打在耳边响起,看人家年轻人吃的少干的多,你们这些老革命越老越不行了。难怪,打工生涯的结果是越老越贬值,尤其到了40-50年龄段,简直是事业最悲惨的阶段,时刻濒临深渊,如同趟地雷阵,动辄下岗失业。
有人说过去10年是蓝领工人下岗的高峰期,未来10-20年将是白领工人下岗的高峰期,你一位自己曾经读个大学就是精英了?社会不断进步,你的知识结构,身体素质,职业理念早就不如人家刚毕业的大学生了。老板是现实的,肯定率先在遇到危机时裁掉那些40-50年龄段的白领工人。
所以说你现在有个稳定的工作,你觉得安全,其实等与在你身边按了颗定时****,等到10多年后,它会爆炸,你那时失业的痛苦与代价恐怕要比现在残忍100倍。
其实表面看创业面临的现实风险比打工高很多,可是从长久看,打工带来的风险更高。
创业的风险是失去近几年的预期打工收入,甚至破产后还得赔进去自己借的一部份钱,但是毕竟年轻,能够屡败屡战,从失败中汲取养分和经验,经商水平与能力一次比一次高,逐渐融入经商人士的群体后,眼界和经验日积月累,总有一个量变到质变的突破,只要真正的跨入了生意门,将来的事业基本上一片坦途。钱也越赚越多,财富积累越来越多,自身的价值也能得到最大的体现。
相反,打工生涯持续下来,近几年确实平安无事,可是你其实在不断的贬值和缩水,而不是越来越强健。打工的时间越长,你会越来越心虚,越来越胆怯,10几年后,稍有不慎,就可能被炒掉鱿鱼,失业下岗,你看看那个风险大呢?
年轻炙热的心,蹋上人生的征途,其实没有你想像的那么的简单,
我们有什么,什么都没有,为有年轻,一个澎湃激情的心,激情一时是不行的,
弱肉强十的的社会,没的一技子长是不行的。只是社会的渣子,和乞丐有什么区别,
思路决定出路,行动决定结果。
绝大多数人习惯做语言的巨人,行动的矮子。
越是智商高的人越容易陷入这个悖论中,难以自拔。
看来上帝是公平的,赋予人智慧的同时,往往剥夺他的勇敢。
所以世界上享有精彩人生的人总是少数。
我们来描述一下那些继续打工者的心态。
他们嘴巴上说自己一直都在耐心等待,等真正的机会。智者深思熟虑,三思而后行。他们一直在等条件成熟,哪怕花开花又落,可是等到现在,时机也没有等到,条件也没有成熟,现实生活的质量还是没有得到改观。
记得希腊有一首很悲观的民歌:“日神阿波罗是个勇士,他能够一拳打倒凶猛的敌人,但他无法扭转自己的命运。普罗米修斯是个智慧的神,他能够瞒着宙斯把火种偷了出来,教那些可怜的人们看到光亮,而他自己却被鹫鹰啄着心肝,这是命运跟他开的玩笑!”这就是人们认为自己的力量无法战胜自己命运、改变现实的例子。
为别人打零工才得以糊口的打工朋友们不是不想改变现实生活,也有紧迫感,也很想改变自身的“贫穷”面貌,但是总有恐惧感,因为从来没有独立把握自己命运的经历和经验,就像一个从来没有用过电脑的人,生怕按错开关和按钮把电脑烧坏了、一用力就把键盘敲坏了,或者一上网就会遭遇病毒一样。事情其实并没有那么可怕,对于恐惧电脑的人来说,最重要的就是插上电源,再依次开机就好了。
当然我们打工者在职场上总是对工作本身负责、对企业对老板负责,所以要等条件成熟,而实际上促使这些条件具备往往会消耗很多精力,拖延很多时间,有时还没有等到条件成熟,周边的环境已经发生了变化,旧的条件还没有达到,新的问题又冒出来了,结果还是无所适从,最终导致不了了之。所以,对于打工者来说,最重要的就是要明白必须先行动在思考。
注:文章出于分享目的,绝对没有排斥打工者的意思,创业和打工同样重要!
4月21日全国哀悼日,将去除网站全站所有站点色彩(变灰),悼念遇难同胞,愿死者安息。
金山逍遥网旗下站点众多,虽然官网都有统一的页头、页尾,但是,还有一部分站点(例如用户中心、注册充值页面、游戏客户端内嵌网站、活动专题页等)页头、页尾不相同。但是,所有站点采用的都是Nginx服务器,95%以上的站点都经过Nginx负载均衡服务器,因此只需要在Nginx负载均衡服务器上,利用sub_filter指令在输出的HTML中增加一行:
就可以实现在IE及IE内核浏览器下,所有网站变灰色。步骤如下:
1、重新编译Nginx,增加http_sub_module模块:
2、在nginx.conf配置文件的http {...}大括号内增加以下两行:
保存后,重新加载配置文件:
3、如果某些带有Flash的页面仍显示彩色,或浏览器上下滚动条拖动时Flash FLV播放器变花(例如剑网3、剑侠世界官网分流页),将Flash改为JS输出(本例为SWFObject):
这样,整个页面,包括Flash播放器中的视频就都变灰色了。
来源于回忆未来的博客:http://blog.s135.com/post/441/#entrymore
金山逍遥网旗下站点众多,虽然官网都有统一的页头、页尾,但是,还有一部分站点(例如用户中心、注册充值页面、游戏客户端内嵌网站、活动专题页等)页头、页尾不相同。但是,所有站点采用的都是Nginx服务器,95%以上的站点都经过Nginx负载均衡服务器,因此只需要在Nginx负载均衡服务器上,利用sub_filter指令在输出的HTML中增加一行:
<style type="text/css">html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }</style>
就可以实现在IE及IE内核浏览器下,所有网站变灰色。步骤如下:
1、重新编译Nginx,增加http_sub_module模块:
wget http://nginx.org/download/nginx-0.8.35.tar.gz
tar zxvf nginx-0.8.35.tar.gz
cd nginx-0.8.35
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module
make && make install
pkill -9 nginx
/usr/local/webserver/nginx/sbin/nginx
tar zxvf nginx-0.8.35.tar.gz
cd nginx-0.8.35
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module
make && make install
pkill -9 nginx
/usr/local/webserver/nginx/sbin/nginx
2、在nginx.conf配置文件的http {...}大括号内增加以下两行:
sub_filter '</head>' '<style type="text/css">html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }</style></head>';
sub_filter_once on;
sub_filter_once on;
保存后,重新加载配置文件:
/usr/local/webserver/nginx/sbin/nginx -t
/usr/local/webserver/nginx/sbin/nginx -s reload
/usr/local/webserver/nginx/sbin/nginx -s reload
3、如果某些带有Flash的页面仍显示彩色,或浏览器上下滚动条拖动时Flash FLV播放器变花(例如剑网3、剑侠世界官网分流页),将Flash改为JS输出(本例为SWFObject):
<script type="text/javascript" src="http://v.xoyo.com/site/v.xoyo.com/web/js/swf.js"></script>
<div id="video_content"></div>
<script type="text/javascript">
<!--
var video_player_so = new SWFObject("http://api.v.xoyo.com/external/player.swf?autostart=true&config=http://api.v.xoyo.com/external/video-542.swf", "sotester", "439", "246", "7");
video_player_so.addParam("wmode", "opaque");
video_player_so.addParam("allowfullscreen","true");
video_player_so.addParam("allowscriptaccess","always");
video_player_so.write("video_content");
//-->
</script>
<div id="video_content"></div>
<script type="text/javascript">
<!--
var video_player_so = new SWFObject("http://api.v.xoyo.com/external/player.swf?autostart=true&config=http://api.v.xoyo.com/external/video-542.swf", "sotester", "439", "246", "7");
video_player_so.addParam("wmode", "opaque");
video_player_so.addParam("allowfullscreen","true");
video_player_so.addParam("allowscriptaccess","always");
video_player_so.write("video_content");
//-->
</script>
这样,整个页面,包括Flash播放器中的视频就都变灰色了。
来源于回忆未来的博客:http://blog.s135.com/post/441/#entrymore
SNS网站同学网今日对外宣布,正式任命颜莹为同学网CEO,原同学网CEO朱明华因个人原因离职。颜莹曾就职于Tano Capital中国基金,该基金也是同学网的投资方。
根据同学网的官方公告,同学网董事会认为颜莹有丰富的大型团队管理经验,不仅是互联网投资领域的专家,对移动社交网络等方面也有深入理解。公告表示,同学网原CEO朱华明因个人原因离职,寻求其他发展机会。
不过这一变动被业内人士解读为创业团队与投资方意见不合、创始人被迫离职的又一案例。同学网并未对此做出回应,朱华明在与新浪科技连线中确认离职,但不方面对此事做出评论,而未来计划暂不方便透露,而是将先休息一段事件。
同学网(Tongxue.com)的前身是花名册(FaceRen.com),2007年3月由在美留学的郭磊与朱华明将其带入中国市场,希望建立一个在同学关系基础上的国际化互动社区。今年2月同学网宣布获得来自Tano China Private Equity Fund I(TCPEFI)等多家风险投资商600万美元的投资。
新任CEO颜莹接受新浪连线时认为,同学网已经成长为业内不可忽视的力量,"我已经做好准备,并且深信我有能力将同学网带入一个新的发展阶段。"
同学网官方资料显示,颜莹拥有美国加州大学伯克利分校公共政策硕士(MPP)、美国杜克大学工商管理硕士(MBA)。曾任职于中国人民共和国外交部,IDG创业投资基金,Tano Capital中国基金。
根据同学网的官方公告,同学网董事会认为颜莹有丰富的大型团队管理经验,不仅是互联网投资领域的专家,对移动社交网络等方面也有深入理解。公告表示,同学网原CEO朱华明因个人原因离职,寻求其他发展机会。
不过这一变动被业内人士解读为创业团队与投资方意见不合、创始人被迫离职的又一案例。同学网并未对此做出回应,朱华明在与新浪科技连线中确认离职,但不方面对此事做出评论,而未来计划暂不方便透露,而是将先休息一段事件。
同学网(Tongxue.com)的前身是花名册(FaceRen.com),2007年3月由在美留学的郭磊与朱华明将其带入中国市场,希望建立一个在同学关系基础上的国际化互动社区。今年2月同学网宣布获得来自Tano China Private Equity Fund I(TCPEFI)等多家风险投资商600万美元的投资。
新任CEO颜莹接受新浪连线时认为,同学网已经成长为业内不可忽视的力量,"我已经做好准备,并且深信我有能力将同学网带入一个新的发展阶段。"
同学网官方资料显示,颜莹拥有美国加州大学伯克利分校公共政策硕士(MPP)、美国杜克大学工商管理硕士(MBA)。曾任职于中国人民共和国外交部,IDG创业投资基金,Tano Capital中国基金。
舍得,在佛学中如是解释:“舍得”者,实无所舍,亦无所得,是谓“舍得”。佛家认为,万事万物皆在“舍得”之中成就自身。舍得其实不仅是一种佛学智慧,更是一种生活哲学,亦是发展之道。舍得,是一种理智,是一种豁达,一种超凡脱俗的大智慧。生活中,舍得名,放得下才能拿得起;舍得利,输得起才能赢得起;舍得已,弯得下才能站得高;事业发展中莫不是如此。
让我来告诉你,目前最好的SNS程序是Dolphin Smart Community Builder,这个程序由BoonEx开发,BoonEx拥有9年的社区程序开发经验,是SNS程序的鼻祖。
自Dolphin 7开发以来,致力于移动社区的研发,现已经开发出适应于苹果手机的应用软件。未来将支持Google Android操作系统、symbian操作系统、以及Winodws Phone操作系统。BoonEx的社区程序搭建的网站无疑是设计最全面、功能最强大的社区。
我们来详细介绍Dolphind的几大功能:
Dolphin 7已经为我们开发了35个模块,准确的说34个对您有用,Facebook connect是连接FaceBook API的登录方式,用户可以通过在FaceBook注册的帐户直接登录您的社区。遗憾的是这个网站已经不能在中国大陆访问。
小编近日测试了还在翻译中的Dolphin 7中文版,通过访问演示站点,让我眼前一亮的UI程序界面,无疑超过了目前所有的中国产品,让我们不禁感叹BoonEx有深厚美工功底。程序安装非常顺利,我在这就不详细介绍如何安装的问题了。在我们删除了install安装文件后,即刻进入了程序前台。在Dolphin 7里我们看到了一个重大的不同,在程序最底端出现了一个类似Windows任务栏的东西,这是非常人性化的设计,可以迅速进入自己的信箱收发站内邮件,浏览购物车内为付款的商品,查看最近浏览你页面的会员,查看在线的好友,切换默认语系,已经进入功能的快捷方式。Dolphin 7可以在线录制您的视频与好友分享,或者上传电脑里的视频文件,通过分享一键与站外好友通过Email分享。Dolphin 7的功能非常全面,为我们提供诸多应用。阅读全文
自Dolphin 7开发以来,致力于移动社区的研发,现已经开发出适应于苹果手机的应用软件。未来将支持Google Android操作系统、symbian操作系统、以及Winodws Phone操作系统。BoonEx的社区程序搭建的网站无疑是设计最全面、功能最强大的社区。
我们来详细介绍Dolphind的几大功能:
Dolphin 7已经为我们开发了35个模块,准确的说34个对您有用,Facebook connect是连接FaceBook API的登录方式,用户可以通过在FaceBook注册的帐户直接登录您的社区。遗憾的是这个网站已经不能在中国大陆访问。
小编近日测试了还在翻译中的Dolphin 7中文版,通过访问演示站点,让我眼前一亮的UI程序界面,无疑超过了目前所有的中国产品,让我们不禁感叹BoonEx有深厚美工功底。程序安装非常顺利,我在这就不详细介绍如何安装的问题了。在我们删除了install安装文件后,即刻进入了程序前台。在Dolphin 7里我们看到了一个重大的不同,在程序最底端出现了一个类似Windows任务栏的东西,这是非常人性化的设计,可以迅速进入自己的信箱收发站内邮件,浏览购物车内为付款的商品,查看最近浏览你页面的会员,查看在线的好友,切换默认语系,已经进入功能的快捷方式。Dolphin 7可以在线录制您的视频与好友分享,或者上传电脑里的视频文件,通过分享一键与站外好友通过Email分享。Dolphin 7的功能非常全面,为我们提供诸多应用。阅读全文
男人好色,女人也好色。大街上偶遇帅哥,我一定厚颜无耻看个饱。女友说,这么爱,干脆娶一个回家。我白她一眼:“切,娶个帅哥回家,我自虐呀?”
帅哥和漂亮女人一样,从小就是生活圈子里的焦点。帅哥是被女人宠坏了的男人,他们习惯了女人为他们争风,为他们掐架。老公若是长得太帅,一天到晚被别人的女人惦记可不是件省心的事。而且,男人长得帅便不甘心为一棵树放弃整个森林,老公自己要出轨,女人纵有千般柔情也只能干瞪眼。
真的要嫁呀,就得嫁给看着恶心,用着舒心,搁家里放心的三心牌丑男人。
丑男人多温柔。因为长得丑,所以丑男人讨好老婆总从温柔入手,体贴,顾家,买菜做饭带孩子。丑男人有了钱,一定不会先给自己买衣服,长得丑也就没有帅哥那样膨胀的臭美之心。
丑男人懂得珍惜。老婆容貌比他胜一筹,丑男人便会心存感激,把她奉为珍宝一般。因为深知自己外形欠佳,哪天若是出局成为单身,想要再找到漂亮的老婆就太困难了,所以,丑男人懂得珍惜眼前人,不会念念不忘下一个。
丑男人有内涵。丑男因为先天不如人,后天多半会更加努力,埋头钻研。不定哪一天就成了老总,专家,回过头他还要感谢你慧眼识英雄,是你的爱给了他勇气。你就捂着嘴偷偷乐吧。
丑男人坚强。丑男人长期饱受摧残,早已炼就一颗坚忍不拔的心。家这个小船,难免会有风雨飘摇,此时,大可躲在他的怀里做小鸟依人状。
丑男人幽默。丑男人没有漂亮的脸蛋让女人赏心悦目,便在语言上取悦女人。幽默往往是他们的拿手好戏,常令人笑逐颜开,如沐春风。和这样的男人生活在一起,可谓笑口常开。
为了后半辈子的幸福着想,我正在物色丑男人。
帅哥和漂亮女人一样,从小就是生活圈子里的焦点。帅哥是被女人宠坏了的男人,他们习惯了女人为他们争风,为他们掐架。老公若是长得太帅,一天到晚被别人的女人惦记可不是件省心的事。而且,男人长得帅便不甘心为一棵树放弃整个森林,老公自己要出轨,女人纵有千般柔情也只能干瞪眼。
真的要嫁呀,就得嫁给看着恶心,用着舒心,搁家里放心的三心牌丑男人。
丑男人多温柔。因为长得丑,所以丑男人讨好老婆总从温柔入手,体贴,顾家,买菜做饭带孩子。丑男人有了钱,一定不会先给自己买衣服,长得丑也就没有帅哥那样膨胀的臭美之心。
丑男人懂得珍惜。老婆容貌比他胜一筹,丑男人便会心存感激,把她奉为珍宝一般。因为深知自己外形欠佳,哪天若是出局成为单身,想要再找到漂亮的老婆就太困难了,所以,丑男人懂得珍惜眼前人,不会念念不忘下一个。
丑男人有内涵。丑男因为先天不如人,后天多半会更加努力,埋头钻研。不定哪一天就成了老总,专家,回过头他还要感谢你慧眼识英雄,是你的爱给了他勇气。你就捂着嘴偷偷乐吧。
丑男人坚强。丑男人长期饱受摧残,早已炼就一颗坚忍不拔的心。家这个小船,难免会有风雨飘摇,此时,大可躲在他的怀里做小鸟依人状。
丑男人幽默。丑男人没有漂亮的脸蛋让女人赏心悦目,便在语言上取悦女人。幽默往往是他们的拿手好戏,常令人笑逐颜开,如沐春风。和这样的男人生活在一起,可谓笑口常开。
为了后半辈子的幸福着想,我正在物色丑男人。