作者归档:Jacob Nie

 mac快捷键介绍

今天在苹果店学会了一招,看下面这张图,其中最复杂的就是“关闭所有窗口”的命令,对应windows里面的alt+shift+command+w

另外,定位浏览器地址栏的快捷键是command+l,切换输入法的快捷键是command+space;ctrl + space可以调出Splotlight,可以在里面查找自己需要的应用程序

当然还有两指,三指,四指,五指的操作,退出程序的快捷键是command+q

全屏快捷键:ctrl + command + f;ctrl的符号是^

Use of undefined constant OCI_COMMIT_ON_SUCCESS – assumed ‘OCI_COMMIT_ON_SUCCESS’

安装完wampServer,然后勾选了oci8.dll,codeigniter还是不能启动,报错Use of undefined constant OCI_COMMIT_ON_SUCCESS – assumed ‘OCI_COMMIT_ON_SUCCESS’,如下图

image

使用oci_connect方法的时候会报找不到这个方法的错误

image

在默认环境变量里面能找到如下dll

image

有如下解决方法(三选一)

  1. 下载并Oracle客户端,Oracle会自动在path里面加入D:\app\niehonglei\product\11.2.0\client_1\bin;
  2. 下载instantclient,然后在path里面把instantclient路径加进去;
  3. 下载instantclient,将其中的dll拷贝到C:\Windows\System32目录里面;

coreseek安装小结

1、按官方的标准安装,我的系统是CentOS(64位),默认安装了Python 2.6.6,如果没有安装还需要先安装Python 2.6.6,版本不要错;官方安装地址:http://www.coreseek.cn/products-install/install_on_bsd_linux/ 安装时注意在./config的时候加上对python的支持,因为我们要使用的是Oracle数据源

clipboard

相关代码:

$ cd csft-3.2.14
$ ./configure –prefix=/usr/local/coreseek  –without-unixodbc –with-mmseg –with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ –with-mmseg-libs=/usr/local/mmseg3/lib/ –with-python
$ make && make install

2、安装cx_Oracle:下载cx_Oracle-5.1.2-11g-py26-1.x86_64.rpm

执行安装包
rpm -ivh cx_Oracle-5.1.2-11g-py26-1.x86_64.rpm

3、下载安装instantclient-basic-linux.x64-11.2.0.3.0.zip,我下载的是zip包,当然我认为也可以下载rpm包,而且不需要自己配置会更合适一些

4、打开~下的.bash_profile,添加下面两句(如果下载的rpm包,则不需要做如下操作

增加以下两行代码
LD_LIBRARY_PATH=/root/instantclient_11_2;
export LD_LIBRARY_PATH

5、在python下测试import cx_Oracle,如没有报错,则说明python连接oracle已经没有错误了

6、配置csft的config文件/root/coreseek-3.2.14/testpack/etc/csft_demo_python_pyoracle.conf

文件如下:
python
{
path = /root/coreseek-3.2.14/testpack/etc/pysource
path = /root/coreseek-3.2.14/testpack/etc/pysource/csft_demo_pyoracle
}
#源定义
source python_oracle
{
type = python
name = csft_demo_pyoracle.MainSource
}
#index定义
index python_oracle
{
source            = python_oracle
path            = /root/coreseek-3.2.14/testpack/var/data/python_oracle
docinfo            = extern
mlock            = 0
morphology        = none
min_word_len        = 1
html_strip                = 0
#中文分词配置,详情请查看:
http://www.coreseek.cn/products-install/coreseek_mmseg/
    charset_dictpath = /usr/local/mmseg3/etc/
charset_type        = zh_cn.utf-8
}
#全局index定义
indexer
{
mem_limit            = 128M
}
#searchd服务定义
searchd
{
listen                  =   9312
read_timeout        = 5
max_children        = 30
max_matches            = 1000
seamless_rotate        = 0
preopen_indexes        = 0
unlink_old            = 1
pid_file = /root/coreseek-3.2.14/testpack/var/log/searchd_python_oracle.pid
log = /root/coreseek-3.2.14/testpack/var/log/searchd_python_oracle.log
query_log = /root/coreseek-3.2.14/testpack/var/log/query_python_oracle.log
}

7、设置/root/coreseek-3.2.14/testpack/etc/pysource/csft_demo_pyoracle/__init__.py,

文件内容如下
# -*- coding:utf-8 -*-

from os import path
import os
os.environ[‘NLS_LANG’] = ‘SIMPLIFIED CHINESE_CHINA.UTF8’
import sys
import cx_Oracle

class MainSource(object):
def __init__(self, conf):
self.conf =  conf
self.idx = 0
self.data = []
self.conn = None
self.cur = None

    def GetScheme(self):  #获取结构,docid、文本、整数
return [
(‘id’ , {‘docid’:True, } ),
(‘title’, { ‘type’:’text’} ),
(‘abstract’, { ‘type’:’text’} ),
(‘search_type’, {‘type’:’integer’} ),
]
def GetFieldOrder(self): #字段的优先顺序
return [(‘title’, ‘abstract’)]

def Connected(self):   #如果是数据库,则在此处做数据库连接
if self.conn==None:
self.conn = cx_Oracle.connect(‘yzjs/a123456@10.166.166.222/genome’)
self.cur = self.conn.cursor()
sql = ‘SELECT t.id as id, t.title, t.abstract, t.search_type as search_type from V_SPHINX_INDEX t where t.title is not null and t.abstract is not null’
self.cur.execute(sql)
for rows in self.cur:
item = []
item.append(rows[0])
item.append(rows[1])
item.append(rows[2].read())
item.append(rows[3])
self.data.append(item)
pass

    def NextDocument(self):   #取得每一个文档记录的调用
if self.idx < len(self.data):
item = self.data[self.idx]
self.docid = self.id = item[0] #’docid’:True
self.title = item[1]#.decode(“GBK”).encode(“UTF-8”)
self.abstract = item[2]#.decode(“GBK”).encode(“UTF-8”)
self.search_type = item[3]
self.idx += 1
return True
else:
return False

if __name__ == “__main__”:    #直接访问演示部分
conf = {}
source = MainSource(conf)
source.Connected()
while source.NextDocument():
print “id=%d, subject=%s” % (source.id, source.abstract)#.decode(“UTF-8”))
pass
#eof

8、然后根据下面三段脚本,可以方便索引,启动,热索引数据

索引
/usr/local/coreseek/bin/indexer -c /root/coreseek-3.2.14/testpack/etc/csft_demo_python_pyoracle.conf –all
启动
/usr/local/coreseek/bin/searchd -c /root/coreseek-3.2.14/testpack/etc/csft_demo_python_pyoracle.conf
停止
/usr/local/coreseek/bin/searchd -c /root/coreseek-3.2.14/testpack/etc/csft_demo_python_pyoracle.conf –stop
重编译
/usr/local/coreseek/bin/indexer -c  /root/coreseek-3.2.14/testpack/etc/csft_demo_python_pyoracle.conf –all –rotate

 

9、引入sphinxapi.php,写如下代码测试

$cl = new SphinxClient ();
$cl -> SetServer ( ‘192.168.42.148’, 9312);
$cl -> SetConnectTimeout ( 3 );
$cl -> SetArrayResult ( true );
$cl -> SetMatchMode ( SPH_MATCH_ANY);
$data[‘res’] = $res = $cl -> Query ( $keyword, ‘*’ );

xmapp proftpd新建用户

很简单的事情让我找了好长时间,

1、修改iptable,开放21端口vi /etc/sysconfig/iptables,重启iptables服务,/etc/init.d/iptables restart

image

2、使用/opt/lampp/etc/proftpd.conf中的UserPassword字段定义用户名和密码,密码可以到http://www.kxs.net/support/htaccess_pw.html生成,然后拷贝到这里;其实上面的注释已经写的很清楚了,默认密码是lampp,如果想自己设置密码的话也可以使用lampp security

image

image

4、重启lampp,/opt/lampp/lampp restart

5、使用这个账户登录

image

这样更新wordpress就不需要再手动更新了

wordpress弹出图片插件

主题更新后,将下面的代码粘贴到header.php的head的最后,更改弹出图片的效果

<script type=’text/javascript’ src=’https://www.niehonglei.info/wp-includes/js/jquery.popImage/jquery.popImage.mini.js’></script>
<script type=”text/javascript”>

jQuery(function(){
jQuery(“#primary a img”).parent().popImage();
});
</script>

大明山

10月2号

9点从上海南站出发,到达第一个服务区(练塘服务区)集合,大家都很准时,十点钟左右开始从服务区出发,共四辆车19个成员,大概11.15的时候到达杭州绕城高速,这里就明显堵了好多,本来打算到大明山再吃饭,由于堵车就改到临安县城吃饭了,其实上海到大明山方向,临安出口要比临安服务区早20公里左右。找了一圈,看到了一个钱王大酒店,于是就把车停在了那个地方,本来打算进去吃饭的,但最终只是进去上了个厕所,去了对面土家菜吃了一顿

大约下午2点左右的时候出发去大明山。由于是山路,交会的时候有点堵车,到大明山集合的时间大约15.30左右,乘车上到山半腰,有些人坐索道,有些人爬上来,大概一个半小时,然后去山顶看日落。下山找住的地方,在大明山的千亩草甸,但这里没有对外开放,只能在别人都下山了以后,让保安帮我们把铁网打开,进去是一片平原,但一片荒芜,基本上是没有路的。走了一段时间就能看到一户人家,打着住宿吃饭的牌子。这里正是我们要住的地方,此地不通电,只能发电,晚上吃饭就在这里。往往不抱希望的地方越能给你带来惊喜,来之前说这里的条件很差,到地方一看也确实是这个样子,但晚饭做的比较好吃,除了我们,里面只有零散的几个要搭帐篷的人。晚饭吃过后就是看小木屋了,比我想像的要好很多,只是晚上的山上特别的冷,于是又多要了一床被子,铺了三床才算好一些。

IMG_0136

大明山看日落

IMG_0144

千亩草甸住宿和吃饭的地方

IMG_0155

我们晚上住的小木屋

10月3号

第二天四点多钟的时候就有人喊着去看日出了,每次都是开始的时候好积极,但最终的结果并不好,这次也差不多是这个样子,开始我们并没有计划好要到哪个山顶去看,最近的有一个,但听说观日出的地方另有其地,于是本着探险的精神出发了,经过了近两个小时的跋涉,才算找到一个勉强可以看日出的小亭子,看了看被云遮住的日光不免又有些失落,回来的时候快了好多,因为大家急着赶七点半的早餐,粥加鸡蛋,另外还有昨天晚上没吃完的两个菜。收拾完东西吃完早饭就开始了下山的路程。因为上面的景点并不怎么多,还有一个栈道没走,栈道的平均高度都在千米以上,还是很有挑战性的。不过话又说回来,如果不畏高的话在上面其实没多大区别的,你上去唯一要问的问题就是你相信这个栈道吗,相信就上,不相信就不上,比起地面其危险系数还是高出了不少。绕着走一圈大约要一个小时的样子。到了对面的大明湖,就找到了另一条下山的路。这条路比起我们上山的路还是好了不少,前半段都是柏油路,只到了后半程才像个山路,花费大约一个小时的样子到达坐索道的地方,然后乘公交返回停车厂。

DSC09249

早上等日出,像是会出来的样子吗?

IMG_0169

平均千米高度的栈道

下午的人时间还充裕,打算到临安吃中饭,中间在临安休息区休息了约二十分钟的样子。吃过中饭已经近两点钟了,又说开车去青山湖一下,其实就是正好路过,顺道看了一下湖水,但不到五分钟的时间就离开了。本来想上高速到杭州的,但交警说路上出了车祸,高速给封闭了,我们就只好走地面了。到了城区,我们还要穿越整个城区然后再到下沙住酒店,但问题是这时的杭州简直拥堵异常,走了好长时间还不能挪动一点,看了看路线,选择不走地面改高架,但也花费将近两个小时才到。晚上跟朋友吃了饭就睡了,住宿条件还不错,宽大且干净,但晚上还是没怎么睡好,可能时间还没调整过来的原因吧。本来第二天安排去看涨潮的,看到新闻上说海宁看潮的人很多,并贴出了相关视频,真是人山人海,而且还有一定的危险性,我们里面一小孩没来过杭州,就决定大家一起去西湖,吃早饭,逛西湖。

10月4号

第二天7点就退房出发了,找了一个收费停车的位置,然后找可以吃饭的地方,不知道最后是谁决定要去岳庙对面的肯德基,而我们当时在断桥附近。后面就一路走,一个小时左右,九点多钟才算到达,大清早吃这些东西总觉得不太舒服。用完餐就在苏堤上逛了一下,然后再次转白堤去断桥的方向。路上真是“游人如织,强烈见识了共和国的人口状况”。整个下来又接近了中午的时间,一路上都在讨论要去哪里吃东西,好像我们是饿死鬼生的一样。讨论的最终结果是去最近的“花中城”政府店吃饭,这里看上去是一个豪华的酒店,但有经验的朋友说这里吃饭并不贵,我在大众点评上看到评价也还不错,关键是人少,能停车,离西湖也非常的近,现在才觉得我们刚才十块一小时的停车费花的有点可惜。

环境不错,真想不到这是在旅游的时候吃的一顿便饭,简直像是在参加谁的婚礼一样。本来想订包房的,但听说包房不能要特价菜就放弃了,但最终我们也没有点特价菜,只不过大厅也不是很吵,就将就在此用餐了。价格还可以,人均80左右的样子,吃完饭又聊了会天就准备开车回上海。出发的时间大约是14.30,到达嘉兴服务区的时候休息了一下,里面人真是多啊,看来不在大的休息区停车是比较明智的选择。然后到上海的时间17点左右。我们从上海南站坐车回家,马上到站

DSC09402

像参加婚礼一样的酒店

总结了一下这次的花费,人均500块多一些的样子,过路费为我们省了不少钱。车费算下来才人均一百块,绕了那么远路,还是蛮划算的。

codeigniter mysql php相关总结

开发lcwy这个项目,项目地址:http://lcwy.tohours.com,学习了不少php相关知识,做了如下总结:

  1. <?php require_once(“application/views/script/split_page.php”);?> 引用相关php文件
  2. 先$sql = $sql.” order by t.insert_time desc”; 后$sql = $sql.” limit “.$offset.”,”.$limit;
  3. mysql的 $offset 从0开始
  4. $this -> input -> cookie();可以取得相应的cookie
  5. foreach($_POST as $key => $value) 数组的遍历方法
  6. 查询方法 $this -> db -> where(array(“condition” => “value”)) -> order_by() -> get(“table_name”) -> result(); 取得对象的数组
  7. 也可使用 -> row()方法取得第一行的数据 (替换-> get() –> result())
  8. 也可使用 -> count_all_results()计算数据的条数,而不得到数据 (替换-> get() –> result())
  9. sql查询方法 $this -> db -> query($sql, $param) -> result();后面能接的方法与上面相同
  10. 更新方法$this -> db -> where(“id”, $id) -> update(“user”,$user);
  11. 字符串替换方法 str_replace(“world”,”earth”,”Hello world!”); //Hello earth!
  12. 正则替换方法 preg_replace(“/^[0-9]{4}/”, “”, $year); 其中正则也是以/开头和结尾
  13. 计算数据长度使用count(数组名称)
  14. 数字转字符 字符转数字函数 echo chr(65);echo ord(“B”);
  15. echo strpos(“Hello world!”,”wo”)
  16. 输出$this -> output -> set_output(encode_json($json));
  17. explode(“,”, $ids); split功能
  18. $data[“clear_time”] = null;//将数据库时间置空
  19. date_default_timezone_set(‘PRC’);在使用time时预先设置

激活office2010出现“Failed to inject memory”错误

使用Office 2010 Toolkit 2.2.3激活office2010的时候,出现Failed to inject memory!错误,原因是前期使用KM激活过office 2010,然后默认启动了KMService,所以要做的就是打开“开始”菜单,搜索“服务”,找到KMService,将其先停用再禁用,如下图

 

KMService

跑步记录

离上一次发誓要跑步已经很远了,但记录一直保留在nike的官方网站上,这次又开始了跑步,且今天一天就是10公里,还是蛮令我吃惊的,但这样的情况我怕不能持续下去。

IMG_0183

昨天开始想起来其实我有条件跑步的,但前期不知道什么原因放弃了,于是昨天又下载了软件去测试了一下。卫星的定位还是不准,我也懒的计较。昨天跑了5公里,可能效果不是太大,后来“全家”吃了份面,里面基本上什么也没有,今天开始设定10公里还有点犹豫,想是不是能完成任务,其实到最后的时候还在想,要不最后两圈就不要跑了,因为当时还没吃饭,而上班的时间又快到了,但后来还是走了下来,其实也就20分钟,如果这天不能坚持下来的话,明天可能就要再次调整计划了。

其实早在今天早上就应该起床跑步,竟然把时间定错了,把六点钟起床改成了七点钟起床了。由于没有去跑步,所以今天到单位的时间特别早,而且还有时间去食堂买点早饭吃,所以中午去跑步的时候也并没感觉到饿