leadscloud

Google SEO|外贸营销推广

在wp-includes/query.php的2180行,添加 $q[‘s’] = str_replace(array( ‘+’, ‘%20’, ‘-‘ ), array( ‘ ‘, ‘ ‘ , ‘ ‘), $q[‘s’]);

1, Download Sphinx search engine from Sphinx

1
2
3
wget http://www.sphinxsearch.com/downloads/sphinx-0.9.8.tar.gz

tar xzvf sphinx-0.9.8.tar.gz

2, Install MySQL mysql-devel

1
yum install mysql-devel

3, Configure Sphinx

1
2
3
4
cd sphinx-0.9.8
./configure --prefix /home/sphinx/sphinxsearch --with-mysql
make
make install

4, Create a configuration file

1
2
cd /home/sphinx/sphinxsearch/etc
cp sphinx.conf.dist sphinx.conf

5, Edit sphix.conf

vi sphinx.conf

Configuration file sphinx.conf for wordpress

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
source mywhiteboard
{
type = mysql
sql_host = localhost
sql_user = mywhiteboard
sql_pass = a1b2c3z4y5x6
sql_db = ivdb
sql_port = 3306
sql_query = SELECT id, post_title, post_content FROM wp_posts
sql_query_info = SELECT * FROM wp_posts WHERE id =$id
}

index mywhiteboard
{
source = mywhiteboard
path = /home/sphinx/sphinxsearch/var/data/mywhiteboard
docinfo = extern
mlock = 0
morphology = stem_en
enable_star=1

stopwords = /home/sphinx/sphinxsearch/var/data/stopwords.txt
min_word_len = 3
charset_type = sbcs
min_prefix_len = 0
min_infix_len = 3
html_strip = 1
html_remove_elements = style, script
}

indexer
{
mem_limit = 256M
}
searchd
{
port = 3312
log = /home/sphinx/sphinxsearch/var/log/searchd.log
query_log = /home/sphinx/sphinxsearch/var/log/query.log
read_timeout = 5
max_children = 30
pid_file = /home/sphinx/sphinxsearch/var/log/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
}

6, make a directory for indexes

mkdir /home/sphinx/sphinxsearch/var/data/mywhiteboard

7,  Start indexer:

home/sphinx/sphinxsearch/bin/indexer --config  /home/sphinx/sphinxsearch/etc/sphinx.conf --all

Sphinx 0.9.8-release (r1371)
Copyright (c) 2001-2008, Andrew Aksyonoff

using config file '/home/sphinx/sphinxsearch/etc/sphinx.conf'...
indexing index 'mywhiteboard'...
collected 1104407 docs, 1938.9 MB
sorted 6551.8 Mhits, 98.5% donedone
total 1104407 docs, 1938867135 bytes
total 5126.826 sec, 378180.78 bytes/sec, 215.42 docs/sec

8, To test if it is working:

1
/home/sphinx/sphinxsearch/bin/search  --config /home/sphinx/sphinxsearch/etc/sphinx.conf insulin
....
20\. document=9345, weight=3
    id=9345
....
words:
1\. 'insulin': 30601 documents, 109926 hits
1
2
3
4
5
6
7
8
9
10
ls -la
/home/sphinx/sphinxsearch/var/data/mywhiteboard
drwxr-xr-x 3 root root 4096 Oct 21 16:20 .
drwxr-xr-x 4 root root 4096 Sep 11 20:08 ..
-rw-r--r-- 1 root root 0 Oct 21 15:32 mywhiteboard.spa
-rw-r--r-- 1 root root 14925566596 Oct 21 16:20 mywhiteboard.spd
-rw-r--r-- 1 root root 237 Oct 21 16:20 mywhiteboard.sph
-rw-r--r-- 1 root root 57254921 Oct 21 16:20 mywhiteboard.spi
-rw-r--r-- 1 root root 0 Oct 21 15:32 mywhiteboard.spm
-rw-r--r-- 1 root root 22721504506 Oct 21 16:20 mywhiteboard.spp

wordpress-sphinx-search 插件的安装教程

http://www.ivinco.com/software/wordpress-sphinx-search-tutorial/

多亏日子还有难过和失落,感激了生命必须放弃或选择,让我们在一场场身不由己里努力进化成更好的自己。

我们增加一个自定义字段:user_only,如果这个值不为零,这这篇日志或者页面是只能给注册用户浏览,然后通过 the_content 来控制内容显示,这样就能简单的并且灵活设置具体到哪篇文章或者页面是只能注册用户浏览。详细代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
/*
Plugin Name: User only
Plugin URI: http://fairyfish.net/m/post-for-user-only/
Description:通过给 user_only 这个自定义字段设置为 true 来设置当前文章仅限于会员浏览。
Author: Denis
Version: 1.0
Author URI: http://wpjam.com
*/
add_filter('the_content', 'post_user_only');
function post_user_only($text){
global $post;

$user_only = get_post_meta($post->ID, 'user_only', true);
if($user_only){
global $user_ID;
if(!$user_ID){
$redirect = get_permalink($post->ID);
$text = '该内容仅限于会员浏览,请<a href="'.wp_login_url($redirect).'">登录</a>!';
}
}
return $text;
}
?>

把上面带复制成一个PHP文件上传到插件目录,激活即可。

原文件地址:http://fairyfish.net/m/post-for-user-only/

Search and Replace(搜索和替换)是一个允许你搜索和替换数据库中任意文本的 WordPress 插件。

注意:

但是这个插件同样也在存在着风险,因为它是直接使用 SQL 进行文本替换,它直接操作修改了数据库,并且这样的修改时不可撤销的,所以不建议 WordPress 初级用户使用这个插件,对于 WordPress 有一定熟悉的用户,建议使用这个插件进行操作之前,对数据库进行备份,这样万一出错还有修正的机会。

Search and Replace 是直接使用 MySQL 的 Replace 进行替换操作的,所以这个插件是大小写敏感的,并且不支持使用正则表达式进行文本替换,所以这是这个插件小小的一个缺憾,但是它完整的界面和易用性,保证了它能够完成了我们大部分的批量文本修改替换工作,并且这个插件只在后台使用,所以使用之后我们可以直接关闭它,完全不会占用任何系统资源。

相关资源:

插件作者:http://fairyfish.net/2010/05/31/search-and-replace/

wordpress下载地址:http://wordpress.org/extend/plugins/search-and-replace/

相关文章:http://www.love4026.org/313338/find-and-replace-in-wordpress-using-mysql/

wordpress有时需要批量替换某个关键词。通过插件可以实现,但也可以通过mysql快速替换,不仅可以替换文章内容,还包括文章标题等。

方法:

1. 使用PHPMYADMIN进入数据库管理, 搜索errorkeywords, 你就可以看到哪些表里面包含了这个字段.
2. 点击SQL, 执行SQL语句:

UPDATE ‘表名’ SET ‘字段’ = REPLACE(’字段’,’待替换内容’,’替换值’);

示例:

1
update wp_posts set post_content=replace(post_content,'errorkeywords','keywords')

WordPress数据库里面几个重点替换的表和字段:

表wp_posts里面的post_content (文章内容)
表wp_posts里面的pinged (ping内容)
表wp_posts里面的guid (WordPress默认链接结构)
表wp_comments里面的comment_author_url (留言作者URL地址 )

当然, 上面几个是最重要的.还有其它字段, 你根据搜索结果自己查找.

国外博客最近公布了关于wordpress主题的一个0day,这些主题都使用了timthumb.php这个文件,该文件用于处理图片的显示效果等,原文地址可以参见:http://sebug.net/vuldb/ssvid-20811 。这里具体分析下漏洞的成因,其实在国外这篇文章也有分析,只是不是很清晰.

PHP 与 Wordpress 介绍 Appdir

PHP

WordPress

漏洞成因

大家可以首先打开这个链接,版本控制,可以看到:

r143 ,stronger website domain checks (don’t allow http://wordpress.com.hacker.com/)

作者在这里标明了已经修复了这个漏洞,那么我们就对比下r143和r142两个版本的区别。

对比分析这两个版本,发现结果如下:

1
2
3
4
5
6
7
8
foreach ($allowedSites as $site) {
if (strpos (strtolower ($url_info['host']), $site) !== false) {
$isAllowedSite = true;
}
foreach ($allowedSites as $site) {
if (strpos (strtolower ($url_info['host'] . ‘/’), $site) !== false) {
$isAllowedSite = true;
}

多了一个’/‘,在匹配的时候限制了白名单域名只能在地址的最后面,这样就限制了可以在任意的域名前面加上白名单的域名,举个例子来说,我们假如有域名xyz.com,那么我们可以随便添加二、三级域名。先看看timthumb限制了哪些域名。

1
2
3
4
5
6
7
8
9
// external domains that are allowed to be displayed on your website
$allowedSites = array (
‘flickr.com’,
‘picasa.com’,
‘blogger.com’,
‘wordpress.com’,
‘img.youtube.com’,
‘upload.wikimedia.org’,
);

这样的话我们就可以添加blogger.com.xyz.com,成功绕过白名单的检测。看到这里我不禁想到我上次分析的百度贴吧flash过滤机制研究,也存在一定的问题,因此在匹配或者是搜索的时候需要特别注意。

利用

如果大家看了原文的留言,别人给出了利用方法(不过我没域名测试),这里我们还是对源码进行一下分析。

首先是引入url的地方:

1
2
3
4
5
// sort out image source
$src = get_request (‘src’, ”);
if ($src == ” || strlen ($src) &lt;= 3) {
display_error (‘no image specified’);
}

get_request函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
*
* @param [HTML_REMOVED] $property
* @param [HTML_REMOVED] $default
* @return [HTML_REMOVED]
*/
function get_request ($property, $default = 0) {
if (isset ($_GET[$property])) {
return $_GET[$property];
} else {
return $default;
}
}

然后是文件检查:

1
2
3
4
5
6
7
8
9
10
11
// clean params before use
$src = clean_source ($src);
// get mime type of src
$mime_type = mime_type ($src);
// used for external websites only
$external_data_string = ”;
// generic file handle for reading and writing to files
$fh = ”;
// check to see if this image is in the cache already
// if already cached then display the image and die
check_cache ($mime_type);

其中cleansource函数中调用checkexternal函数实现了写文件操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
**
*
* @global array $allowedSites
* @param string $src
* @return string
*/
function check_external ($src) {
global $allowedSites;
// work out file details
$fileDetails = pathinfo ($src);
$filename = ‘external_’ . md5 ($src); //注意这个地方是文件生成后的文件名
$local_filepath = DIRECTORY_CACHE . ‘/’ . $filename . ‘.’ . strtolower ($fileDetails['extension']);
// only do this stuff the file doesn’t already exist
if (!file_exists ($local_filepath)) {
if (strpos (strtolower ($src), ‘http://’) !== false || strpos (strtolower ($src), ‘https://’) !== false) {
if (!validate_url ($src)) {
display_error (‘invalid url’);
}
$url_info = parse_url ($src);
// convert youtube video urls
// need to tidy up the code
if ($url_info['host'] == ‘www.youtube.com’ || $url_info['host'] == ‘youtube.com’) {
parse_str ($url_info['query']);
if (isset ($v)) {
$src = ‘http://img.youtube.com/vi/’ . $v . ‘/0.jpg’;
$url_info['host'] = ‘img.youtube.com’;
}
}
// check allowed sites (if required)
if (ALLOW_EXTERNAL) {
$isAllowedSite = true;
} else {
$isAllowedSite = false; //注意这个地方是重点
foreach ($allowedSites as $site) {
if (strpos (strtolower ($url_info['host']), $site) !== false) {
$isAllowedSite = true;
}
}
}
// if allowed //判断正确了就直接写文件了。
if ($isAllowedSite) {
if (function_exists (‘curl_init’)) {
global $fh;
$fh = fopen ($local_filepath, ‘w’);
$ch = curl_init ($src);
curl_setopt ($ch, CURLOPT_TIMEOUT, CURL_TIMEOUT);
curl_setopt ($ch, CURLOPT_USERAGENT, ‘Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0′);
curl_setopt ($ch, CURLOPT_URL, $src);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_FILE, $fh);
curl_setopt ($ch, CURLOPT_WRITEFUNCTION, ‘curl_write’);
// error so die
if (curl_exec ($ch) === FALSE) {
unlink ($local_filepath);
touch ($local_filepath);
display_error (‘error reading file ‘ . $src . ‘ from remote host: ‘ . curl_error ($ch));
}
curl_close ($ch);
fclose ($fh);
} else {
if (!$img = file_get_contents ($src)) {
display_error (‘remote file for ‘ . $src . ‘ can not be accessed. It is likely that the file’);
}
if (file_put_contents ($local_filepath, $img) == FALSE) {
display_error (‘error writing temporary file’);
}
}
if (!file_exists ($local_filepath)) {
display_error (‘local file for ‘ . $src . ‘ can not be created’);
}
$src = $local_filepath;
} else {
display_error (‘remote host “‘ . $url_info['host'] . ‘” not allowed’);
}
}
} else {
$src = $local_filepath;
}
return $src;
}

修复

作者已经修复了漏洞,可以到 http://timthumb.googlecode.com/svn/trunk/timthumb.php 更新你的 timthumb 脚本 。最新版本为 2.8.10

wordpress的一些插件很可能存在漏洞,所以使用的时候请注意。可以到儿查找一些wordpress漏洞方面的问题。

http://sebug.net/appdir/WordPress

里面介绍了wordpress的某些插件引起的安全问题。

在一个阴雨的早上,我坐在桌子旁,开始想如何才能高效的工作。在我成为一个自由职业者之前,我有很长一段时间都很努力工作,但收效甚微。我在 2006 开始接触禅学。我马上意识到:古代的禅宗大师们几百年前早就已经知道现今的程序员应该如何工作。虽然我很讨厌“如何成为一个更好的程序员”之类的文章,但我仍旧想分享一些我的想法。它对我来说起到个提醒的作用,如果你有什么想法,也请留言。

0. 专注 Focus

如果你决定开始工作,请尽力的做好它。不要同一时间做几件事情。一次只做一件事情。如果你多线程工作的话,你不一定会更快。多线程会让你精疲力尽,出错,转换任务时消耗更多的时间。这不是仅限于编程,这是个普遍的法则。

Kodo Sawaki 说过:如果你需要睡觉,去睡吧。当你试图睡觉的时候,不要想着程序,单纯的睡觉。如果你在编程,就专注编程吧,不要做白日梦。如果你很累的话,不能再编程的时候,就睡觉吧。就算是著名的多线程超人 Stephan Uhrenbacher 也决定以后单线程工作。 我也有与 Stephan 类似的经历,最后我写了 Time & Bill,一个追踪时间的工具。目的是想只需要点一个键,就能追踪我的时间。结果很糟糕:我经常在一个任务只专注了几分钟就转移到另外一个任务去了。现在 我好多了。类似于 Pomodoro technique,我计划了一些工作时段,专注于它们。不聊天,不睡觉,不查看 Appstore 里的新游戏。

1. 保持清醒 Keep your mind clean

在编程时,你需要清除你的内存。抛开你脑袋中的其他东西。如果你被其他事情所烦恼,不要让它们影响你。大部分情况下麻烦会自动消失。但如果有很大麻烦的话,你不能遗忘它们,就不要工作。试着清除杂念。当你开始工作的时候,让外部的世界远离你。

邮件列表中有很激动人心的事情吗?不要管它。你之后还有机会看到这则激动人心的事情的。立即关掉能填满你脑袋的应用吧:关掉 Twitter,Facebook,E-mails。你应该将手机静音,放在口袋里。你也许会说这同第一条,专注,很接近,但还有一条,吃饭的时候或者开始工作之前不要使用那些工具。它们会将你与外部世界联系起来,分散你的注意力。

想想:大部分时间当你起床的时候你的脑袋是清醒,毫无杂念的。如果不是这样,做些运动也许有帮助(我会长跑)。如果你感到毫无杂念时,去工作吧,你 能表现得很好。等你不再工作的时候,这时候你可以让你的脑袋充满杂念了。你将会看到一整天辛勤的工作已经被你抛在脑后了,这是多么棒的体验。 Twitter 和 Co 会消耗你大部分的能量。你也许会想:就是一分钟的事情。你错了,其实不止。

你其实已经意识到了吧。

2. 保持初学者的思维 Beginner’s  Mind

还记得你作为一个新兵时候的日子吧。如果你仍旧还是个新人,就记住这个时候吧。你时刻渴望新知。每天都想象自己是一个新人。试着以一个新人的角度来看那些技术。这样你能更好的接受指正,或者不按常规出牌,开陈出新。也可以从一些新人身上学到许多好的想法。

3. 抛开自负 No ego

一些程序员有个大问题:太自我。但我们没有时间来发展自我,我们没有时间成为一个摇滚明星。

是谁决定要做一个程序员的?你吗?不是,那是其他人?可能吧。你能比较到底是苹果好还是香蕉好么?不能。你是个个体。你也不能将你的方方面面和其他个体作比较。你只能作片面的比较。

你有某一点很厉害,你也不能骄傲自满。你 Java 很厉害?很酷。另一个人 Java 的确不如你厉害,但他保龄球比你厉害。Java 比打保龄球更重要么?视情况而定。可能你可以依赖 Java 赚更多钱,但那个人也许因为有一些保龄球球友而享受了许多乐趣。

你可以因为你是个 geek 就沾沾自喜么?太自我的程序员不会虚心向他人学习

Kodo Sawaki 曾经说过:你没有那么重要。

想想这句话吧。

4. 不要想着职业目标 There is no career goal

如果你想得到什么事物,并且不关心你现在的生活,那么你已经输掉了这个游戏。不要想象你之后将会达到什么职业目标。

工作 20 年,成为一个股东合作人?为什么不为了兴趣而努力工作呢?努力工作可以非常有趣。禅说,一日不作,一日不食

我们不需要等到 20 年后才开心。你可以现在就开心,就算你还不是一个股东合作人,你也没有开保时捷。事情会很快就转变的。你会生病,你也可能被炒,你可能自我耗尽(如果你遵循所有的这些规律,我想可能性很低)。

在所有的这些事情发生以前,尽情的努力工作吧,快乐的工作。不要仅仅盯着学校里的成就,不要想着你没有得到的一个职位。

毕竟你终究会达到某个位置。你会有一些珍贵的记忆,也许还会有一个不错的职位,业绩辉煌的 20 年。每一天都是很棒的一天。

如果你觉得在你现在的公司工作不开心,立即离开吧。不要呆在一个剥夺你快乐的公司工作。当然这仅仅可能在富有的国家里可行,人们可以选择离开。但如果你生活在这么好的环境里,就这么去做吧。不要后悔离开,你没有时间可以浪费,你可能明天就死掉。

5. 停止争论 Shut up

如果你没有什么要说的,就不要浪费时间和你同事争吵。这并不是说你懦弱。每天你都要工作,你不需要搞得其他人紧张。想象一下,如果每个人都这么做,那会是多么好的工作环境啊。有时这是不可能的。但尽力尝试这么做吧,你会喜欢的。

如果你不自负的话,便很容易做到不争吵,而是去关注那些你真正想说的事情。不要将“自我”和经验搞混淆了,记住:你是一个新人。如果其他人有好的想法,就去支持他的想法吧。

6. 留心细心意识  Mindfulness. Care. Awareness

是的你在工作。但同时你在呼吸。即使你的工作有困难,你也需要聆听你身体的信号。你应该学习对你身体好的事情,譬如食物。你应该学会照顾好自己,以及留心你所在的环境,毕竟你喝的水将会又流到河里去。因为你仅仅为你自己而活,你独自来到这个世界,也将独自离开。地球没有你照样运转

不要工作在你不喜欢的环境。不要做不拿报酬的工作,这意味着你不会快乐,你不得不离开你的卧床。远离那些让你不开心的事物。不计回报的工作听起来是天方夜谭吗?想想那些在黄金时间里做开源项目的人。如果你在邮件列表中订阅过一些项目,你可能已经知道这是多么热门的事情。如果你并不感到开心,就不要这么做吧。我知道许多人做开源项目,但是他们并不喜欢。用 Time Bill 我追踪过我为开源项目花费的时间,我浪费了太多的时间,尤其是那些我并不喜欢的项目。

有些人认为只有当他们有消遣时间的时候,能在晚上有 xbox 玩,有酒喝才会感到开心。虽然有时享乐是非常不错的,但不代表你一辈子的所有时间都是快乐的。如果你能避免你不喜欢的情况,请尽量避免(就像我上面提到 的),但有时你不得不面对那些你不想做的事情。譬如人手将经理的 Excel 中的数据复制粘贴到 phpmyadmin 中去。这些可能要花上几天,甚是枯燥。你感到极为无聊,但有时你不得不这么做。你不能因为碰到一个枯燥的任务就随意的辞职。禅宗大师们也不会逃避他们的工 作的。他们在 4 点钟起床(有时早些,有时晚些,取决于习俗),开始冥想和工作(他们认为工作也是冥想)。他们会做清扫厕所的工作,或者做园艺,如果是斋饭僧,他们会做 饭。他们会全神贯注的工作。不管他们做什么,他们都会全身心的去做,并且感到快乐知足。因为每时每刻,甚至是打扫厕所,对他们来说都是他们的生活

也就是说:如果你需要复制粘贴 excel,也不要哭诉了。仅仅去做吧。不要浪费你的时间在抱怨上,它们会过去的。试着做个最好的复制粘贴者吧。

如果你得了心脏病死了,人们也许会说:“哦,他工作太长时间了,他经常为我在深夜里无偿工作。”没有人会指引你去另一个世界,最后一步要我们自己走。**你不能转换世界上的任何东西。什么都不行。**所以你需要照顾好自己,每时每刻。如果你死了,就死了,如果你活着,就应该好好的活着。没有时间去浪费了。

在禅学中“心”是个很大的词(在任何一种形式的禅学中都是)。我不可能完全表示清楚它的含义。要明白“心”的不同的含义是很困难的。可能“意识”这 个词对你来说更容易懂些。你需要意识到你做的每一件事情。否则你就是在浪费时间。当然你可以这么做,取决于你自己,如果你喜欢这样的话。

7. 拒绝老板  There is no Boss

是的,老板付你工资,他告诉你需要做什么,他也可以炒掉你。但没有必要放弃掉你自己的生活,为你的工作而生病。最终你的老板不能控制你了,也许你也失控了 – 请不要走上这条路。

回到你的老板:如果你允许的话,他可以让你的生活更加糟。但有解决的方法,如果他要你做你感到不开心的事情,或者违背你原则的事情,坚决说不。会发生什么?最坏的情况,他会炒掉你。那又怎样?如果你生活在西方国家,如果你是个程序员(如果你在读这篇文章,那么你极可能是程序员),你会找到另外一份工作。

我并不是说对类似将 CSV 数据拷贝成 HTML 这样的任务说不。我说的是一个星期工作 80 小时的工作。或者你觉得你的孩子需要更多的关注。或者你被逼要炒掉其他人仅仅因为你老板不喜欢他们。或者你是个顾问,但是需要为一个核电站或是为坦克编写 程序(有些人会说为核电公司工作是多么的好啊 – 但这违背我的原则,而且仅是一个例子),你都可以说不。

8. 有其他爱好  Do something else

程序员不仅是一个程序员。你应该做一些和电脑无关的事情。在业余时间,你可以去航海、钓鱼、潜水、冥想、军事艺术、玩尺八(Shakuhachi,一种乐器)。不管做什么,用掉你剩下的能量吧,就像你工作的时候那么竭尽全力。兴趣爱好不单是兴趣, 它也是你是谁的一种象征。当别人说兴趣不重要时,不要让他得逞。现在我们可以拥有自己的爱好。我录了一些 CD,写了几本科幻书(没有发表过,我需要更多的练习写作)。这些事情都能体验我是什么样的人,最终它们引领我接触到禅学,以及写下这篇博客。最近我在练 习尺八。这些都是我日常生活的一部分。

9. 没有什么东西是不可取代的  There is nothing special

一朵花很美丽,但它仅仅是一朵漂亮的花朵,没有什么更特别的了。它一点也不稀奇。你是一个会编程的生命体,可能你很棒,但也没有什么稀奇的了。你仅仅和我一样是这个星球上存在的一个生命体而已。

你要上厕所,你要吃饭,你要睡觉。很久以后(希望如此)你会死去,你所创造的一切将会随之而去。就算是金字塔很久以后也会消失。你知道建造金字塔的人的名字吗?如果你知道,那么这很重要么?不重要。金字塔在或是不在,都没什么特别的。

同样你写的程序也一样。**银行通过你写的软件赚钱。但当你离开之后,没人会记住你。这不是谁的错,这是时间的规律。**你不需要担忧。如果你相信这一条规律,你会意识到上一个项目是非常有趣的项目。现在仅仅需要继续,专注的去看其他的什么事情。

如果你的公司因为财政原因倒闭了,不要担心。生命还会继续。我们不是真的需要一个 xbox,一辆车或是什么其他的。这个世界上大部分人都生活中水生火热中。他们不在乎 xbox,因为他们对于食物和水更加渴望。

所以,为什么只有你是独一无二的?仅仅因为你很幸运的生活在西方?因为你会编程?不,你没有什么特别的。你应该让你的自我感消失,放松的生活。享受 花朵的香气和颜色吧,当冬天来临时不要过于杯水,春天到来时不要过于高兴。这是自然规律。当别人否认你的程序时也要这么宠辱不惊。因为公司并没有那么重 要。

声明

我不是一个禅师。我仅仅在学习和练习。如果你认为有什么你需要更深入的了解,请教你当地的禅师。当然我可以试着在这个博客上回答,但我只是个初学者。不管怎样,我很乐意看到你们的评论,如果你喜欢这篇文章,或者用这篇文章的链接发条推,我会很高兴的。谢谢阅读

英文原文:Christian Grobmeier     编译:伯乐在线 – 唐小娟

Huddle - WordPress & BuddyPress Community Theme

Live Preview:

http://themeforest.net/item/huddle-wordpress-buddypress-community-theme/full_screen_preview/835549

this is a free dowload. It’s not latest version. i have fix some bugs for this theme.

wordpress BuddyPress 主题免费下载,原价40美元。不过这不是最新版本的,里面有点问题,不过我已修复过了。可以到这个看效果。

http://crusherknowledge.com/

下载地址:

huddle wordpress theme dowload

安装lnmpa后,经常会有502错误。按vpser上的检查问题也无法解决,只好用以下脚本解决问题。顺便说下,我重新安装了VPS,首先更新了我的系统,然后再装lnmpa便极少出现502错误 了,看来再安装的时候还是尽量避免出现问题,否则很容易出现502。 下面是脚本内容,保存为502fix.sh,然后

chmod +x /root/502fix.sh

脚本内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/php
<?
$url = 'http://76.163.25.39';
$cmd = '/etc/init.d/httpd restart';

for($i = 0; $i < 5; $i ++){
$exec = "curl --connect-timeout 3 -I $url 2>/dev/null";
$res = shell_exec($exec);

if(stripos($res,'502 Bad Gateway') !== false){
shell_exec($cmd);
exit();
}
}
?>

记得把IP或网址改为你自己VPS的。
原理就是用curl获取HTTP头,一旦502 就重启apache。

然后添加下定时任务

crontab -e

1
*/1 * * * * /root/502fix.sh

定时内容为,每一分钟检查一次。

0%