2012年12月29日星期六

CentOS 6.2修改DNS

修改DNS如果只是修改/etc/resolv.conf,再进行service network restart,会发现原来修改过的内容又回去了。所以只配置这里是不能够修改DNS的。

找到你目前正在使用的网上,一般是eth0


  1. vim /etc/sysconfig/network-scripts/ifcfg-eth0

  2. 修改里面的DNS1和DNS2为自己的DNS指向

  3. service network restart



这样做,resolve.conf就会自动修改了;如果还没有修改,则查一下是不是自己刚才找的网卡不对,另外再检查一下其他网卡的设置,找出可能的网上再修改一下;

另外我觉得,使用ifconfig修改ip地址也不是一个持久的做法,重启机器后也就不见了,所以最保险的办法还是修改ifcfg脚本,然后重启服务

2012年12月27日星期四

病了

生病应该是预料之中的事情,本来周末想装备ocp的事情,也许还有更重要的事情。周站的时候突然觉得全身必冷,可能真病了我想,虽然我还是特别注重自己的生命,但多种情素淤积于心终有爆发的一天……

从搜索ORA-21561对比博客写作方法

前段时间做全文检索的时候,需要使用到python连接oracle数据库,测试机上已经没有什么问题,但部署到服务器的时候产生了一个错误ORA-21561,于是我进行了艰苦的搜索工作……

当然,谷歌会以中文的为主,基本上,如果中文也有答案的话且不是特定查询(指查facebook, cnn这种比较明确的查询),基本上第一条都是中文,查询ORA-21561,得出第一条结果地址是http://www.itpub.net/thread-865749-1-1.html;再看我认为比较负责任的外国博客的答案:http://chaos667.tumblr.com/post/20006357466/ora-21561-and-oracle-instant-client-11-2;对比两者,因为itpub是以论坛的形式发出来的,所以提问者只要自己的问题能解决就可以了,不考虑过多的描述;但也给我们造成了极大的困惑,其描述如下:
今天遇到个奇怪的问题,用SQLPLUS登陆数据库的时候,总提示我:ORA-21561: OID generation failed ,然后就通知我密码不对,但我用PL/SQL是可以进到数据库里,查了半天,竟然是/etc/hosts文件里有配置ip地址和机器名,由于机器名被改,这里也一定要改掉机器名!特发此贴,以资共享!

当然,作为已经解决问题的人,我来看这段话也并没有什么难以理解的地方。但当时我确不理解,可能是限于自己的学识有限,我不能明白hosts和机器名的关系,因为我一直使用windows,我知道 127.0.0.1 可以使用localhost代替,也可以设置其他的名称指向其他的地址,如我们谷歌就是使用hosts代理。按我的理解,hosts只有两列,第一列是ip,第二列就类似于域名一样的东西。现在我们从ORA-21561得出的问题是我连接数据库服务器有问题,由于我的连接串是这样写的:'yzjs/111111@192.168.1.3/genome',其中并没有涉及到需要hosts解析的地方,即使有解析出问题也应该是当我将ip地址用机器名的时候才出现问题,而那时也应该是要填写对方的机器名和ip到我机器的hosts里面。况且,我也不明白他说要把我机器名加入到hosts具体应该怎么样操作,所以想到这里,我只能将这条给忽略了,而接下来我看到大量都是这样的回答,几乎找不到第二种,直到我看到上述的英文网站;

这个英文博客网站的说明很清楚,你照我的1,2,3,4来做一遍,这个步骤写的非常详细,即使一个不懂电脑的人也会按照这样的流程做一遍,按照这样的说法做了一遍,结果成功了!而又让我了解到了,原来hosts可以有三列,第三列是主机的别名,局域网内使用,而我的问题就出在第三个参数的设置上,由于网络管理员将安装完的机器修改了主机名,但在hosts里的别名却不会更新,造成本机的机器名和hosts的别名不一致,传递过去的信息不一致被而被退回了!而这篇文章从如果查机器名到如何个性hosts都做了详细的说明,其实要做到这样才能成为永久被保存的项

 

2012年12月26日星期三

CentOS 6.2图形界面和命令行调整方法

经常用到需要将图形界面调整到命令行界面的时候,对于大部分linux系统来说,只需要修改以下配置


  1. vi /etc/inittab

  2. 找到id:5:initdefault:

  3. 将其中的5改成3,保存退出

  4. reboot



重启后即可进入命令行,如果想再次进入图形界面可以使用


  • startx



如果后悔了,想每次都进入图形界面则:




  1. vi /etc/inittab

  2. 找到id:3:initdefault:

  3. 将其中的3改成5,保存退出

  4. reboot




另外查看当前release的版本,如:我当前是CentOS,但我不知道具体的版本号可以用以下命令


  • lsb_release -a

  • cat /etc/redhat-release



想查看我linux内核的版本以及我系统版本是32位系统还是64位系统,可以使用以下命令


  • uname -a



以下命令有待验证:


  • ctrl+alt+1 …… ctrl+alt+6一共六个控制台可以切换,由于我安装虚拟机,ctrl + alt跟虚拟软件有冲突,所以没实验成功


2012年12月10日星期一

机房记录

专业机房很少去,到目前为止才去过两家,一家电信,一家就是这家,地址:泰谷路77号

第一家的时候感觉比较严格,进去都要安全锁的,但是有一个问题就是管理人员跟机房之间就没有什么安全的东西了,而第二家,也就是下面这家,机房管理人员跟真正的机房是完全隔开的,其实就是在两个楼里面;这样的好处是大家减少了辐射,但不好的地方是要去处理一些事情都要跑到里面才能处理。这家的机房还有更搞笑是的有很多铁丝网,好像分属于不同的主机托管单位;整体感觉里面太挤了,相比前一家调试起来不方便;另外这家单位办公环境也真不怎么样,到处都给人一种乱的感觉,但具体到让你指出哪里乱了,你也不能很好的指出来,总体来说机房的环境比办公环境要好很多(除了噪声和辐射)

IMG_0268

机栕看起来整齐

 

IMG_0267

铁丝网真不知道是用来做什么的

及时的问题

正当我困于某些事情的时候,有些事情可以逃避一下,你就会把这个原本会给你造成困扰的问题优化看待。

“便宜没好货”应用于我的VPS来说是再合适不过的,不过现在还有客服能够帮解决问题已经是很不容易的一件事情了。到时候所有的客服都不再理你的时候,服务器里面的东西真就都成了他们的了……

问题是这样的:已经有过三次这样的情况发生,当我打开我的网站想看看自己成果的时候,出来的总是phpinfo(),然后里面显示的服务器信息是windows nt,第一次出现这种情况的时候,我在想是不是我的服务器被别人给替换掉了,因为那里离要我续费已经不远了,难道是提前关闭?我联系了客服,他们过了好久才解决,其实并不是他们通知我的,他们通知与否我也不知道了,只是突然间我发现自己的博客又可以访问了,我想他们已经调整好了。而这一次我只当它是一次偶然事故,以后基本也不会发生了,也就没再追问是什么问题。

第二次,也就是上周五,又出现了这种情况,我也不怎么担心,因为我知道这次又是把ip给搞错了,但这次也最令人气愤;因为是比较晚的 时候,第一个客服说他不太会解决,让我第二天再来反映这个情况。我当然想越快解决越好,就让他给我转了其他的客服;中间大概转了三次客服,有一个特别牛叉,说自己很忙,让我赶快说问题,最后还很不耐烦的说我不告诉他ip地址他没办法解决,但事实是我一开始跟他说话就把用户名和ip都告诉他了;知道这一情况后,虽然我们通过QQ聊天,但我知道他脸上肯定是挂不住了,然后就发狠说少跟我来一套什么的……我也没明白他到底什么意思就直接把我踢到了第一个客服的那里;最后的结果我只好联系他们在淘宝的客服协助解决问题,大概过了20分钟问题解决了,但问题是这件事情怎么发生的以及以后还会不会发生都没有做出任何承诺,我一再追问也没人理我。

第三次,也就是刚刚发生,由于最后两次发生的时间实在太近,所以告诉我很不舒服的感觉,但这次的客服态度倒是没有问题,但解决完以后仍然没有任何回音,我对于以后是否还会发生这样的问题不敢想象

 

2012年11月29日星期四

OCA证书

很惊奇会先下来OCA的证书,突然收到ORACLE发来的一封邮件,说让我下载OCA证书。但我的目标是OCP,所以目前还不清楚这张证书是否需要申请他们发送过来,我彩打了一下,跟真的证书差不多,然后再这里保存个备份吧
文件名:oca证书.pdf, 访问地址:http://www.kuaipan.cn/file/id_27168653149473662.htm

2012年11月22日星期四

忙了一上午,得了三等奖,不值

刚结束读书交流的活动,本着交流的目的去的,事先的考虑也只是一种交流,但到最后去演变成了一个演讲,还请了一些所谓的“评委”,听一些不知所云的讲话,真是一种折磨……

如果只是一个交流活动,即使没有啥奖品也会大家也都能开心的体会到下一步要读什么书,有哪些人生的感悟在里面。但这次的读书明显是有针对性的,要跟我们的十八大,跟上海的精神结合起来,然后再脱稿以主持的的心情“读”出来;不知道下面听的人又做何感想?是给讲给人听,还是做给人看?是让人在交流中升华还是在听您的宣传?

如果读书活动最后却变成了宣传活动将是十分可悲的一件事情。

辛苦做了PPT,虽然内容不怎么样,找模板还是花了很长时间,留下来做个纪念吧

一句顶一万句

2012年11月18日星期日

openshift推荐

  1. 地址:https://openshift.redhat.com/app/
  2. 使用方式,git,连php,还有node.js,python, java等资源可以使用
  3. 最大的好处是可以使用独立域名,速度也还不错
  4. 可以安装wordpress,已经有人实验成功
  5. 可以访问mysql,但现在还没有找到使用的方法

2012年11月2日星期五

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, '*' );

2012年10月21日星期日

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就不需要再手动更新了

2012年10月19日星期五

wordpress弹出图片插件

主题更新后,将下面的代码粘贴到header.php的head的最后,更改弹出图片的效果
<script type='text/javascript' src='http://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>

2012年10月17日星期三

大明山

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时预先设置


2012年10月11日星期四

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

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

 

KMService

2012年10月9日星期二

跑步记录

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

IMG_0183

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

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

2012年10月8日星期一

优酷去广告

随着赢利压力,现在的视频提供商提供的显示的广告时间越来越长,挑战着用户忍耐的极限。以前新闻不放广告,而电影或电视剧也只是最多放15秒广告,尚可忍受。现在的情况突变,每个视频都有广告,连一段不到一分钟的新闻也要放10到15秒广告,最长的更大45秒,不过像优酷这样的互联网公司是没有极限的,如果没有明显的反馈,他还要进一步挑战用户的忍耐极限,不过我已经忍不下去了。

最新可用的屏蔽广告的方法,使用chrome或firefox安装OpenGG.Clean.Player,chrome安装方法如下:

  1. 下载脚本,脚本地址:http://tohours.com/download/120679.user.js 这个脚本是经过我修改过的,把其中的浮动提示栏也去掉了,装上跟你直接使用优酷没有任何区别

  2. 在地址栏输入:chrome://chrome/extensions/ 确保进入扩展程序,选中开发者模式,将下载的js拖动到此页面,点击添加按钮


image

其实此中的原理也比较简单,我们以前使用过很多方法,比如修改hosts,后来优酷学聪明了,凡是修改hosts的都会弹出一个黑屏的提示页面,一样要等待蛮长时间。后来有人就出主意禁用youku的cookie,禁用播放器的cookie,但随着youku的升级,这些方法基本上都失效了。现在的这种方法是将优酷的播放器还原到另外的一个版本,所以你会看到在刚打开优酷播放的时候会有一个替换播放器的操作

2012年9月25日星期二

VBA处理数据

excel有很强大的数据统计功能,就连我数据库初始化数据都先转成excel形式,然后再ctrl + c, ctrl + v 贴进去,使用起来真是很方便。关于excel的书也非常的多,其中的大砖头也不少

但如果对excel不太熟悉的话,也会面对一些问题时束手无策。今天就遇到这样的一种情况,要合并数据,但合并的条件是以第一列的ID为准,也就是说第二列的数据会比较少。数据量比较大,10W以上,不可能纯手工。开始我想到导致数据库,再用程序处理,但后来一想这样做还要我去帮他处理剩下的数据,也不方便,于是就想用vba试试。其实VB是2004年学的,早就还给老师了

以下是写的代码,比较挫,边查边写

Sub export()
    Sheets("Sheet1").Select
    Dim cell_an, cell_bn, cell_a, cell_b
    cell_an = 1
    cell_bn = 1
    While Worksheets(1).Cells(cell_an, 1).Value <> ""
        cell_a = Worksheets(1).Cells(cell_an, 1).Value
        cell_b = Worksheets(1).Cells(cell_bn, 2).Value
       
        Worksheets(2).Cells(cell_an, 1).Value = cell_a
        If cell_a < cell_b Or cell_a > cell_b Then
            Worksheets(2).Cells(cell_an, 2).Value = 0
            Worksheets(2).Cells(cell_an, 3).Value = 0
            Worksheets(2).Cells(cell_an, 4).FormulaR1C1 = "=ABS(RC[-2]-RC[-1])"
            cell_an = cell_an + 1
        ElseIf cell_a = cell_b Then
            Worksheets(2).Cells(cell_an, 2).Value = Worksheets(1).Cells(cell_bn, 3).Value
            Worksheets(2).Cells(cell_an, 3).Value = Worksheets(1).Cells(cell_bn, 5).Value
            Worksheets(2).Cells(cell_an, 4).FormulaR1C1 = "=ABS(RC[-2]-RC[-1])"
            cell_an = cell_an + 1
            cell_bn = cell_bn + 1
        End If
       
    Wend
End Sub

2012年9月11日星期二

git 同步整个工程时出错

git向bitbucket进行https同步时,如果工程比较大,会出现如下错误:

git  result=22, HTTP code = 502

出现错误的原因是由于本地http缓存太小的缘故,所以要重新设置一下参数,可执行如下命令。

git config http.postBuffer 5242880000
通过以下命令查询
git config --get http.postBuffer

如果直接使用git config http.postBuffer 则将postBuffer变量就置为空了,现在具体这个值太大了会不会对我们有影响,网上的资料也非常的少,只有一个stackoverflow有一两个这方面的讨论,地址是:http://stackoverflow.com/questions/2702731/git-fails-when-pushing-commit-to-github

2012年9月10日星期一

Sublime Text 2和Eclipse快捷键总结(windows 7下测试通过)

 

使用快捷键可以节省很多时间,也能使开发显得更高端,以下我就Sublime Text 2常用且实用快捷键总结如下,当然,使用最多的ctrl + p 和ctrl + shift + p就不介绍了。
ctrl + shift + d 复制一行
ctrl + shift + 上下方向 交换上下行
ctrl + shift + k 删除一行
ctrl + x 剪切一行
ctrl + b 压缩js代码 (需要装YUI Compress包)

ctrl + k l 变小写
ctrl + k u变大写
ctrl + 回车 在下方插入一行
ctrl + shift + 回车 在上方插入一行
ctrl + alt + backspace 删除空白行

当然,除了使用Sublime做大部分编码外,由于工作需要,目前还能放弃elcipse,下面也就其快捷键操作方式总结如下:
ctrl + shift + r 打开想要的文件
ctrl + shift + t 打开声明的变量
ctrl + shift + 回车 上面加一行
ctrl + shift + x 变大写
ctrl + shift + y 变小写
ctrl + alt + 下方向(或上方向) 复制选中的行
ctrl + alt + j 向下合并行
ctrl + 回车 下面加一行
ctrl + t 打开继承

alt + 上方向(或下方向) 交换上下行
alt + . 将sysout补全
alt + / 恢复提示
alt + shift + r 重命名
alt + shift + m 抽取本地方法
alt + shift + j 给函数添加doc注释

ctrl + . 跳转到下一个错误或警告
ctrl + , 跳转到上一个错误或警告
ctrl + 2 L 快速定义局部变量

2012年7月24日星期二

apache 设置目录访问权限

本次使用的服务器环境是CentOS 6.2

需要明确的问题:

1、我们的apache服务在/etc/init.d/httpd中启动
2、我们的配置文件在/etc/httpd/conf/http.conf中
3、我们的网站目录在/var/www/html

 

一、配置http.conf

使用vim打开http.conf,找到

<Directory "/var/www/html">
        ...
        AllowOverride None
        ...
</Directory>

将AllowOverride None改为AllowOverride AuthConfig,然后:wq保存退出

二、配置.htaccess

使用vim新建文件.htaccess:vim /var/www/html/.htaccess,输入以下内容,然后保存退出

AuthName "need login"
AuthType Basic
AuthUserFile /var/www/html/.htpasswd
require valid-user

三、创建用户与密码

使用htpasswd命令创建用户名和密码文件

htpasswd -c /var/www/html/.htpasswd user

 

四、重启服务

service httpd restart 或者 /etc/init.d/httpd restart

 

然后访问看到要求输入用户名密码的登录框

image

2012年6月26日星期二

如何使用正则配对查找html中的标签

找了好久,以下的可以使用:

/<script[^>]*>.*?<\/script>/ig

基于javascript的正则,如果使用其他标签可以将其中的”script”进行替换。

有几点需要说明的

1、*?表示非贪心模式,如果是贪心模式下,则会将div中的内容也会替换进去。

<script type=”text/javascritp”>
//code1 at here...
</script>

<div>some other tag</div>

<script type=”text/javascritp”>
//code2 at here...
</script>

2、”<\/script>”中的”\“不可少,不然也会出现错误,当然在js中,/是正则的分界符,但在notepad++中,这个符号也不可少,不知道,虽然正则书上只对以下字符规定了转义要求:

$()*+.?[\^{|

2012年6月21日星期四

js 实现首行缩进

在html的样式控制里面,一直没有什么好的方法实现段落的首行缩进,下面是我使用正则实现段落首行缩进的代码:

html = " " + html;
html = html.replace(/<br[^>]*>/ig, "<br /> ");

很简单,只要将文中的br或都p前面增加两个中文全角空白字符就行了。

css的text-indent可以实现p中同样的效果,但在br中却不能实现缩进,而且在IE6下显示也有些问题,如果对于浏览器兼容性不高的话,可以选择这种方式,否则的话,上面增加两个全角空白是比较好的一种方式

2012年6月19日星期二

总结的方式需要更详尽

我很少把一些东西写的很规律,因为我觉得这样做没有必要,我只需要自己能看懂自己写的东西就好了。这是一个错误的想法,至少写在博客上的东西不能这样的草率。

1、两种类型的写作:草稿型与正式型。草稿型的写作可以写在任何你自己能看到的地方,可以以任何形式来记录你想记录下来的知识与内容,只要你过后能够看的懂就可以了。草稿型没有任何的格式限制,它所要做的就是让你快速记录下来一些灵感,然后在后期总结并扩展你所得到的灵感。正式型,是对草稿型的补充,因为只有草稿型,你的知识内容还是杂乱无章的,也可能到处记录你的创意而不去总结它,如果那样的话,不用多长时间你就会忘记你记录的是什么内容,或许你还要为你记录的符号而迷惑不解,这个时候,我们要定期把我们草稿型的记录总结一下,看应该有那些创意点与知识点,哪些是需要扩展的,然后总结出步骤扩展出来,形成正式型的文档。这个时候就不能是马虎行事了,也不能够写只有自己才能懂的文字,只有自己才能懂的图片,而是需要你在完全忘记它以后也能通过这种记录的形式重新学习与接受。

2、我经常把草稿型的写作方式带入到博客。可以看出,我前期写的一些经验,虽然也都在自己的机器上成功创建,但没有相应的回退步骤,又不愿意再重新试验一下,只好马马虎虎的算过关,截几个自己未必看的懂的图形来充数罢了。这种情况大概只能算是草稿型创作,因为一个新人看到我的博客不能再根据所要求的步骤把我完成的内容重现,而很多地方我又没有更加详细的记录,只是一带而过,或许是我不知道,或许是我太熟悉,但不管怎么样,没有指出这其中的细节都是不对的。

3、正式型创作方式能激发自己的学习热情。我们完成一项新任务的时候,最盼望的是不要出现什么问题,其实要想真正的学到一些东西,出问题是必须经过的一个过程。如,我们在学习jqueryui的时候,看到别人给的示例已经能够达到我们的要求,于是我们直接把代码拷贝到我们自己的上面,对里面方法的参数也不求甚解,只知道这是一种能够实现这种类型样式的特定方法。于是下次我们想换个形式,把里面显示的英文变成中文的时候 ,我们还是需要再重新学习一遍这种控件的作用方法,当然在紧急的时候我们当然要这么干,但过后我们可以好好总结一下,下次使用的时候只需要翻看一下自己的正式型笔记就能很快的完成我们需要做的事情。在学习的过程中,由于我们记录时有很多问题需要写清楚,就逼着你去想这个东西到底是用来做什么的,修改它的参数后会出现什么样的效果,热情进一步的被打开,非常有利于我们的学习

这种东西记录下来以后,不但但能够为自己以后的学习与工作方便,更重要的是方便一些也在同样学习这些知识与内容的人,我已经开始了博客记录的征程,这是一个从无到有的过程,我当然也能把这个过程做的更好,达到一个从有到优的转变

2012年5月25日星期五

hosts的问题

昨天困扰了我很久,为什么在我的win7上可以下载googlecode数据,而在MacOS上总是卡在git clone上。今天又尝试了在CentOS上做git clone,结果跟MacOS上是一样的效果。

于是我尝试了在这两台虚拟设备上访问googlecode,结果是可以访问的,我就不知道哪里出了问题。开始的时候我还以为是MacOS自带的git不好用,于是我又下载了一个最新的版本安装了一下,但结果依旧。直到今天在CentOS上又出现同样的事情,让我有些警觉

我尝试着去连git的ref head,结果不能打开,于是我大概知道了是什么原因,还是由于我win机器里面的google hosts会自动更新,而两个虚拟机却不能共享我这台机器的hosts造成的。于是把win的hosts文件拷贝两份给两台机器,一切解决。

但今天又出现了一个问题,我已经完成iphone demo的开发,想装在自己的iphone上,但根据网上生成ipa的方法,我始终差一步,就是不能被xcode搜索到我的机器。我不知道是不是由于我的MacOS在虚拟机中的缘故,其实说实话我们做IOS开发被Apple设置了重重障碍,不得不花费更大的精力在这种与开发无关的事情上,劳民伤财啊

2012年5月22日星期二

安装MacOS X

1、需要的软件:

  • VMPlayer4.0.1
  • 引导工具darwin.iso
  • MacOS系统LeoSnow.iso

一般MacOS只有LeoSnow.dmg格式的安装程序,这样虚拟软件可能会出现认不出来系统光驱,如果是LeoSnow.dmg,那么还需要一款转换软件UltraISO.exe

2、接下来的流程请参照http://blog.csdn.net/zz457887107/article/details/6410411,注意,在建好虚拟机时,一定将guestOS改成darwin,如下图

b_large_D6Ja_1b750008f61a5c15

b_large_heyZ_1b750008f6775c15

3、这样启动时应该没什么问题了,我遇到的最大的难题是darwin已经引导,但就是找不到光驱的问题,一次次的弹出让重新确认,最后得到的原因是不认dmg格式,一定要转成iso格式才成。如果进入darwin菜单,选择h的话,会提示找不到引导文件,这个操作本身就是错的,因为你硬盘里面根本就没东西,这时候一定要按c能引导进去才能安装,其他一切都是白扯。反正我只遇到了格式不正确的问题,不知道还会不会出现其他问题

4、设置分辨率:

  • 打开终端,输入 sudo -s,取得root权限;
  • 输入 vi /Library/Preferences/SystemConfiguration/com.apple.Boot.plist,打开该文件;
    在<key>Timeout</key>
    <string>10</string>
    的下面添加如下两行:
    <key>Graphics Mode</key>
    <string>1680*1050*32@60</string>
    红色为分辨率,黄色为刷新率
  • 然后保存,退出
  • 重起。

5、安装切换输入法,这里有两点说明,一是如何打开终端:应用程序->实用工具->终端,终端有很多用处,很多命令跟lunux很像

image

第二就是如果设置输入法,系统偏好设置->语言与文本->输入源,就可以设置输入法了。切换输入法的方法是用win + backspace,其实这时的win键就跟apple的comman键是一样的功能了

image

2012年5月19日星期六

系统之争

今天遇到两件事情,勾起了我对系统的思考。一件是看到一篇文章,linux和windows之争的相关文章,主要是强调windows下能干的有意义的事情linux下都能完成,而linux下能做的事情在windows下未必能完成。作者也承认了游戏不是linux的长项,但他说游戏有更成熟的替代器,如PSP等专门的游戏设备比windows下的游戏体验性要好上很多;第二件事情是思考iphone下的开发,iphone的开发环境需要在mac os下进行,这使得我目前比较难办,要么买一台mac的设备,这是比较保险的一种做法,要么尝试虚拟机安装mac os,或者在x86机器上直接安装mac os。但这几种做法都存在着一个问题,我为了iphone的开发真的就要从自己熟悉的windows系统转到mac os上去吗?

确实挺难办的,所以才成就了VMWare和VMPlayer这样的软件,因为很多时候我们都需要多个系统,有时候仅仅是满足我们一方面的要求而已。我非常赞成并支持linux下编程的做法,所有的程序或配置都能用文本的形式描述出来,而不需要复杂的ide,因为IDE毕竟需要一个庞大系统的支撑,切换成另外一个系统就不是那么简单的一件事情了。刚看完linux下处理问题的优势,就让我遇到了IOS开发的难题,真是不得不说这是一个极大的讽刺,每个系统公司都想让自己的系统占为用户的主导,这就导致了用户选择上的障碍,开发上的障碍,我为了开发.NET程序不得不装一个windows系统,我为了开发IOS程序,不得不装一个MAC OS;为了他们,我不得不在linux, windows, mac os三者之间做出选择,或者三者皆用,但这样要耗费掉我们多少精力啊

虽然虚拟软件可以解决一部分的问题,但并不能解决全部的问题,一些系统升级带来了开发不兼容的问题迟早会出现,到时候还是不得不再寻找一些这样的设备来完成自己的任务

2012年5月9日星期三

c#对sqlserver中uniqueidentifier类型数据的as string 值为空白的问题

从数据库取数据我们习惯用以下代码:

string title = rows[0]["title"] as string;

当取的数据是uniqueidentifier类型,如id,则我们得到的数据就会为空白,可用如下方法解决:

string id = rows[0]["id"].ToString();

这个问题困扰了我近半小时,我也一直坚信uniqueidentifier是另外一种类型的string,但好像其遵循一定的规律,如果不符合这个规律也会报错,所以我不太喜欢使用它来作为ID,但困于旧代码的限制,目前只好这样做

2012年5月8日星期二

git-svn协同工作

现在工作中已经离不了版本控制了,而作为两种目前比较流行的版本控制软件,SVN和GIT各有各的优势。SVN中小单位使用比较广泛,GIT作为分步式的版本控制更加能体现版本控制的独立性。在以往的工作中,我总是把它们分开来使用,因为现在不缺少git和svn的服务器,googlecode对两种版本控制都做了很好的支持。

但由于历史的原因,我还不能完全切换到GIT上工作,目前我们的项目大部分使用VISUAL SVN作为服务端,代码托管到WINDOWS服务器。在此之前我主要使用SVN客户端进行工作,但缺点显而易见,由于我们的SVN服务器是局域网,所以回家以后就不能再连到服务器,做的一些工作想做一个暂时性的保存是不可能的,如果能够整合GIT和SVN的各自优势,则就不会出现这些问题了。

而今天,最新版本的mysysgit和其外壳tortoisegit 已经完美支持git-svn和中文了,下面我说一下操作的步骤:

1、用git bash执行
git svn clone  https://svn-path/git

这句是针对visual svn的,因为大部分都是https协议的,又没有证书,如果不先用命令行你就没有办法选择和输入用户名密码,选择永久接受,并输入用户名密码,获取版本库

image

2、尽情使用git add, git commit ,git status, git log,然后git svn dcommit就可以了,期间你可以使用任何换基操作,最好不要跟原来的冲突,整合后再提交你的修改

3、tortoise git 的show log和diff相当好用,比命令行更加直观化,其blame可以让你看到整个文件的一生,让人有种时光穿梭的感觉

到此我才知道git提供换基与变基操作的真实含义,无论你在本地提交多少次,只要在dcommit前把这些合并一下,svn版本库里面就不会出现你合并前的操作记录,给别人看起来也更加清爽。

另外两个比较有用的设置,git bash虽然好用,但每次都要进行路径切换。可将git目录下的bin目录设置到path中,在工程目录按住shift右击,“在此处打开命令窗口”,就可以进行git操作了,如果ls会出现中文乱码,就直接用dir好了,这个保证不会有问题,使用git的相关命令也没问题,甚至你可以在任何地方使用vim编辑器了,多么酷的一个功能啊!

2012年5月7日星期一

struts标签include页面不能显示

使用struts2标签<s:include value=”bottom.jsp” />始终不能显示,但上面的<s:include value=”top.jsp” />能够正常显示,让我查了好久,原来是在bottom.jsp使用了一个标签,但语法错了,将value写成了vlaue,所以不能正常加载

这个错误浪费了我至少30分钟时间

2012年4月30日星期一

乐子

有时候人要去找点乐子,不同的人所能得到乐子的方式可能不太相同。大部分女人可以去逛街,她们觉得只逛不买也是一种享受。而男人就被定义为买任何东西都有自己的目标,大部分时候我们也是这样的一个状态。有些人的乐子可能是单独一个人看看书,上上网,这些乐子并不花费太多的东西,对自己正常的生活也不会产生太大的影响,被我们定义为正常取乐的方式。但有些人,已经有了很多钱,读书的时间逐渐减少,对上网也没有什么兴趣,于是就要去找一些大乐子,比如去开车刺激一下,就出来了所谓的“欺实马”的出现。有些人对车也已经提不起兴趣来了,于是就去吸毒,因为这是他们没有尝试过的,所以这也是一个乐子点。

没错,他们本身没有什么错,因为人活着,除了忙以外就要找点乐子。对于一个刚刚开始上网的人来说,上网对他是很有吸引力的,那么上网就是他自己的乐子。对于一个刚学会开车的人来说,开车是很有吸引力的,开车就成为他的乐子。对于一个刚开始接触某种游戏的人来说,玩游戏就是他的乐子。而这些都不具备的人,以自己喜欢的方式买自己喜欢的东西也是乐子的一部分,前提是要量力而行,不然就会影响到自己的正常生活。

一种乐子是随着时间的推移而逐渐消失的,所以我们今天可能对开车感兴趣,过几天就会对吸毒感兴趣了。而乐子也随着经济地位的提高而逐渐提高的,就像有个日本人,去了一次太空,回到地球上就再也找不到活着的意义了。因为他把自己终极梦想都完成了,人生不过如此,所以也没有再活着的必要了,他再也不能找到一个能刺激到他神经的乐子了,于是就选择了自尽的方式。

幸好,我还那个经济实力用掉自己所有的乐子,我没钱买房,就保留了对房子的向往;没钱买车,就保留了对车的向往;经济实力不足,就保留了对毒品的“向往”。但短暂的休息时间也会出现找不到乐子的时候,出现一种真空的时代,这个时间我会去看一些购物网站,目前的计划都是只看不买,这样才不会对自己的经济产生一定的影响,而影响我追求更大的乐子。但很多时候,更想买回一堆自己并不太用的着的小东西,也许这样才能弥补一下自己只看不买的状态

其实考虑下来,我花钱的大头还真是在电子产品和衣服上面,多少人不是呢

2012年4月28日星期六

convention-plugin struts2 零配置

相对于是其他语言来说,java的轮子实在太多了,好用的不好用的一股脑的全部上来。能用的不能用了,只要你用在了你的项目里面,就说明你牛B。struts + spring + hibernate虽然已经成为现在java开发的主流,但我却一点也不敢苟同,其学习成本高,开发效率低下,开发出来的东西速度没保证,安全性也不能得到明示提高,实在搞不明白,因为一个小功能,其他语言一天能搞定的事情,要花一周的时间拱框架,再花一周的时间开发,开发出来的功能经过测试性能又达不到!

我们现在关注的地方应该有所转变了,我认为主要有两点需要提高,中间跳来跳去的环节都免了吧:

1、提高安全性,无论数据库注入的安全性,还是XSS跨站的安全性,在开发中应该让我们多注意这些方面的东西。

2、提高用户使用的舒适度,UI的提升也是必不可少的一个环节。

也许很多人会说,没框架不能协同,没框架不能很好完成大型项目开发,但我觉得,只要有一套良好的代码规范,并且所有开发人员都按照这个规范去做,无论用什么语言,开发多么大型的项目,所得到的结果都是良好的。为了代码的安全性与可回溯性,版本控制软件也必不可少。

今天接后一同事的项目,要在这个项目上改造成另外一个项目,并提供给别人使用,SSH框架,理论上来说整个开发过程应该还是比较熟悉的,唯一不知道的是他使用了convention-plugin实现struts的零配置,0配置就代码你使用默认配置,这就导致了我在配置文件里面找不到他页面跳转的路径。当然,查看他的jsp主目录很快就能看出其中的规律,但不知道他的默认配置写到那个地方还是让我心里有点不舒服。

于是google了一下其默认路径WEB-INF/content才知道,原来这是convention-plugin的功能,其配置当然在其jar包里,对开发人员是透明的,当然你也可以在struts.xml里面修改其默认配置。

2012年4月26日星期四

git跟金山快盘实现私人代码协同开发

使用github和googlecode都有一个问题,如果你不愿意为些付费的话,就只能把自己的代码公开。有没有一种即免费又可以使用git进行协同开发的工具呢,经过探索与技术的进步,金山快盘已经具备了这个实力

1、安装git客户端和Tortoise Git(更好支持中文)

2、安装金山快盘客户端,最好新建一个账户仅用于同步代码使用,或者新建一个目录同步代码

3、在金山快盘建项目目录,将使用

image

4、勾选Make it Bare,点击OK就建好了一个空的仓库image

5、将项目目录推送到快盘目录(要自定义快盘目录,并选用英文名称)

这样就可以实现本地代码与快盘上的bare库的同步了,现在快盘对碎小文件的同步速度也有了大大的提高,所以基本不用担心速度问题。

接下来该讲一下怎么样协同操作

1、将这个项目目录共享给快盘好友

image

 

2、填写你好友的快盘账号,赋予可编辑权限,点击应用就可以了

image

3、通过你好友的快盘,查找到共享的这个目录,并使用git clone到本地,这样就实现了两的同步

同样,加人的操作都是通过快盘来实现的。这样就完成了多人协同开发的问题。

这里有一个问题,快盘并不像github 或googlecode那样可以判断多人同时提交的问题,如果快盘出现同步提交时会出现后者覆盖前者的问题,所以在一个人提交完成未同步完成时,另外一个人千万不要同步代码,不然可能会出现不可预料的问题。

不管怎么说,这样就实现了不花钱托管私有代码的目的,而且还能通过简单的操作实现多人协同开发,不得不说是开发人员的一大福音啊

2012年4月17日星期二

互联网公司的赚钱方式

广告赚钱是大部分互联网公司赚钱的一种方式,纵观现在的手机或PC上的软件,大部分国产的应用软件都是免费的,又免费,又要保证一定的质量,必须想出一种赚钱的方式,那么广告或者点击付费的模式就成了一种选择。

作为一个软件开发人员,特别喜欢自定义的东西,最不能忍受的是我的行为给某些公司带来了流量,广告影响了我的使用,我可能因此而不再使用它。而这种放弃的过程是很快的。但现在想想,这样的做法何尝不是一种冲动呢?有些东西真的做的还不错,但由于它有广告赚钱的目的,我就唯恐避之不及,每当有人提起它的时候就离的远远的,好像如果使用它我将自矮三分一样。

现在明白了,好的东西我们就使用,如果能够让你用着舒心,并且还能够给别人带来利润,双赢的结果何乐而不为呢?很多时候我们都被这种恶意商给搞坏了,一定不能让任何一个人得到我的钱,其实真的没有这个必要。就做个假设来说,如果五笔输入法说以后使用要按月收费,怕我还是要使用这款输入法的,因为它在我生活中起了很大的作用,无它就不能这么顺利的写出文章,写出代码,写出测试报告等。

当然,赚钱也要看时机和场合,不是所有的地方都适合值钱去体验一些东西的,也并不是所有的人愿意去付费体验你的东西,所以还要综合考虑一下购买人的经济实力,考虑一下群体性,制定出多套不同的方案来供人们选择,这样才能持续长久的发展,才有动力再创新,再提供新的更好的服务以吸引更多的,良性循环

2012年4月16日星期一

使用googlecode代替静态页面托管平台

googlecode是我常用的代码托管平台之一,由于后来git的出现,而googlecode当时不支持git托管,所以转向了github。但大概一年前,googlecode 支持了git,不过大陆访问不方便,于是也就没有及时转换,直到近期,再次发现git已经可以从大陆正常使用了,所以把部分静态的文件托管到了googlecode。

如果你的代码致力于开放,或者你的代码不需要特别的加密,或者你想共享自己的设计,那么你就可以把自己的设计或页面上传到这里来,这里提供了一个外链的窗口,可以及时给别人演示与共享。

很简单,在http://code.google.com/下方找到Create a new project,然后填写必要的信息,选择托管的方式,推荐使用Git,点击下方的image,就完成了项目的新建。

image

在项目的主页面http://项目名称.googlecode.com,点击Source,这里提供了获取和提交的方式,所以,只需要按照上述方式,通过git把代码拉下来,然后存放文件,提交就可以了。

image

那如果访问自己提交的文件呢?可以在Source->Browse里面找到,点击某个文件,然后View raw file就可以查看到了。其实地址是有规律的,就是http://项目名称.googlecode.com/git/+内部路径就可以了,这样就可以方便管理自己的静态文件了。

完成一件事再做另外一件事

是完成一件事再做另外一件事,还是几件事同时并行,这要视情况来定的。但如果几件事并行,但每件事情都没有完成,就会使人心烦意乱,不愿意做下面的事情。我们应该给自己定一个计划,多长时间完成一件事,把这件事情结实的完成,会让你有成就感,不会觉得是在浪费光阴。

读书也一样,不是说一味的买书就能说明你比较爱读书,虽然两者有一些关系,但不是必然。我可能只是喜欢发现新书,但不怎么深入,大部分书都是粗略的看一下,没怎么详细研究,也有少部分会深入看下去。当然这跟书的精彩程度也有一定的关系。但回顾一下我办公桌上的几本书,能全部看完的没有多少,大部分都是随意翻了一下,少数还从来没翻过,但我还是会去各种书店看有没有合适的新书,然后某段或某句话被看中,再买下来,囤积起来,不再看它,如此循环。

看完一本书再看另外一本书,虽然这样的要求有点不尽情理,不可能要求某个人在某个时间只读一本书,也不能要求某个人捧着自己不喜欢的书从头读到尾,也许这是在浪费时间,但如果能够把自己喜欢的书深入研究下去,积累到自己的知识库中,到后来你会发现这样做比较有“成就感”,也不会出现书到用时方恨少的尴尬局面了。

顺利通过大路考试

由于一些事情,大路并没有及时去训练,跟一同学说的一样,只有在考试的当天,才马马虎虎的学了一上午。

有些事情如果做了100%的努力,就不用怕结果,从这里我可以得出,这次大路虽然没有100%,但也有80、90的样子,于是即使结果是不通过我也比较坦然,但自己心里也不想等一个月才能拿到驾照。

大路考试并没我们想像的那么可怕,也不像教练宣传的那样低的通过率,其实他们也只是想再多得到一些钱罢了,既然这样,我也只好满足他们的要求,我的目标是通过,即使花一些额外的钱。考试并不是一件令人紧张的事,但等待的时间却是一件令人痛苦的事情,还不如进去就直接上车考试呢。

我被安排在了一车的第三个考试(一车四个人参加考试),我自己感觉比较幸运,因为不是第一个,可以看一下这个考官的评分风格与要求,不是最后一个,不需要记住最好停车时的繁杂步骤。前面两个一个通过一个被关掉,但在我的眼里,前面两个开的都不怎么样。所以到我的时候心里已经不再有任何紧张了,稳一点应该能够通过。但让我没料到的情况出现了,第一遍竟然没有通过!先掉头,然后右转,我都按照教练上午教的内容做了,但结果还是不合格,原因是旁边有一块“停车让行”的牌子我没有看到,在右转的时候没有停车。那是一块我们学习中根本没有碰到的牌子啊,那条考试的路我们训练的时候也没走过,没天理了,竟然是这个样子的。

经过第一轮的不合格,后面我更加谨慎了,怕旁边再有一块训练时没见过的牌子,反正我时刻注意着右边的牌子,速度也放慢了不少。中间经过一个减速让行的牌子的时候,我下意识的踩了一下刹车,车速没明显减慢,但就是这个意思了。后面没有太多的难度,靠边停车的时候我滑行的距离太长了,也被他提示了一下。最后80分通过,我不知道我那20分被扣在了哪些地方,但通过了就好。

最后一车四个人,通过了三个,说明这个考官还是比较好说话的。另外一个不通过的人,考官也详细说明了失误的原因,总结了经验,并说再来训练一个月吧,为人比较和气。

2012年3月30日星期五

U盾

由于网络安全问题,今天我第一次申请了U盾。在我的印象里盾应该是有一定重量,很坚实的一个东西,但今天拿到工商银行的“盾”以后,才知道他即没有重量也不坚实!

考虑到近期密码泄露比较严重,我已经有想法把网络支付的渠道都给堵死了,这样资金安全才有保障。现在的账号密码泄露一般不再是单纯的数据被盗,而是整个数据库都被泄露。但是更严重的是,这些数据库所使用的竟然是明码,而并非我们所认的MD5加密,调查结果让我们震惊。在U盾申请的近两个月的时间里,我并没有去使用它,当然其丑陋的外观是一方面,而另一方面则是在我拉win7 + ie9的机器上不能安装其软件,每次都是弹出js框,告知什么组件错误。虽然写过太多这样的alert框,但对于Active x控件还真没什么研究。于是只好打电话给他们的客服,被告知是由于我不是以管理员身份运行的IE,竟然不是管理员身份?我按照他们的说法又做了一遍,结果还是一样不能使用。就这样灰心丧气了好几周的时间,再加上他的便携程度实在不敢让人恭维,那么大一个竟然还带一根线,跟我想像的完全不一样,这样一个“大块头”的东西,重量竟然跟一张纸一样,好像一碰就要碎掉了。后来打听下来其他银行的U盾又好看又便宜,有些还不要钱,安装方便,真把我气的啊,我怎么会想起来去工商银行呢?

再后来,还是要借助别人的机器把程序安装到U盾里面,才能使用,又给别人汇了一元人民币试了一下,还算好用。但整个过程已经持续了近三个月的时间

2012年3月28日星期三

工作中不可缺少的工具

每个人每个时期都有自己喜欢的工具,以前的我可能不知道这些工具的作用,以后的我也可能不再喜欢再用它们,但今天它们在我的生活在扮演着重要的角色,是我吃饭的家伙:

1、先说说操作系统,目前我机器上共有两种操作系统windows(winxp win7 win8) 和linux(CentOS)。当然windows对我的影响最大,因为我绝大部分工具都是在它的上面完成的,而且现在的主要操作系统还是win7,虽然也是用的五块一张的盗版,但对微软的致敬之情溢于言表。windows上有各种我们熟悉的软件和应用,构成了我们互联网的生活。

image

2、代码编写软件Notepad++,这是我最喜欢的一款代码编写软件,现在的我已经将java,php,c#.net转变成了文本文件,可能在执行效率上有一些差异,但对于我代码的管理和编写无疑是一个福音。我不需要因为要写现行.net代码再安装个近3G的VisuStidio,也不需要因为要写两行java代码安装近1G的MyEclipse并配置各种复杂的功能,一切由于Notepad++而简单,简单的打开一个代码文件,编写两行,迅速调试并完成,高效率!

Notepad  -logo-icon

3、版本控制软件TortoiseSVN,TortoiseGit,目前基本上处于两者共用的书面,svn的便利性在于大家使用范围比较广,服务端搭建比较方便。而git在于其分布式的灵活性,再加上代码托管平台GitHub和GoogleCode,一切变得那么的完美,当然我们不能忘记元老SourceForge以及其贡献。

image

4、图像处理软件Photoshop,我使用的也是当前盗版的软件,他强大的处理图片的功能是设计师的最佳搭档,我使用它主要用来处理一些日常的图片剪切功能罢了。

image5、输入工具QQ五笔:它是除了操作系统之外最令我不舍的一款软件,当然不一定是QQ五笔,但其本身有自己特色,其快捷截图功能让我从搜狗五笔转到了QQ五笔。我们使用的也许只是简单的输入功能,但对于这样一款每天都要使用的软件还是有必要认真挑选一下的。

images

6、email信箱:gmail,qqmail,现在即时通信软件已经不是我联络客户的主要工具,而比此更重要的是电子信箱,目前我使用比较多的是gmail和qqmail,我把它们分成不同的功能,一个收一些私人信件,一个收一些国内的一些邮件,而qqmail对gmail的模仿也越来越像,不时还加入一些个性化的东西,也渐渐令我不舍

images (1)

7、虚拟软件VM Player,找到的一款非常好用的虚拟软件。现在我们的个人PC机已经足够强劲,有时候并不能发挥其全部作用,所以拿它装一些新奇的系统,或者某些软件不适合装在一个操作系统上,这样就可以虚拟出一个系统来完成想要完成的工作,最后删除也方便。如果宿主系统出现问题需要重新安装时,对虚拟机也不会产生任何影响,这样就把问题最小化。

boot

2012年3月19日星期一

驾照考试

我已经很久没有因为一件事情而过度兴奋过了,如果有,上次也要数到几年前吧。315的那天,我们按时去参加倒桩和小路的考试,说考前不紧张那是假的,但依据我的实力也犯不着过度紧张,所以我有预感今天一定能够通过,而这也是我今天的终极目标,无论是否要多花一些钱与否。 但出于对教练辛苦的“回报”,我不得不预算额外的六百块完成今天的考试。

进入考场的等待考区,我才知道跟我预想的还有很多差别,我们的教练也不像他们吹嘘的那样无所不能。今天我们有六个考试的人,都需要他们“照顾”,而他们一次只能负责一个人的一个项目,而我们每个人都有两个项目,最少需要12次才能完成,此外还可能有些人一次不能通过的情况。但更令我担心的是我们从早上七点多钟排队,近九点钟的时候我们几个人的项目一个都还没做,这就是说我们已经基本没有希望上午完成考试了。我们都是只请了半天假的人,因为一天假会记录到请假的范围内,半天只要说一声就可以了。

过了九点钟才陆陆续续的把我们这些人叫进去考试,我的位置不算太好,第五个才被叫到,前几个倒桩下来的反映还不错,里面挺简单的,只要“服从命令听指挥”就行了,到我的时候也就不那么紧张了,因为在平时的时候我比他们几个开的都要好,即使这次边上没有人指挥我也能凭自己的本事通过。叫到我的名字,我走了进去,拿出早已准备好的居住证,站到他们指定的位置拍照,然后再候考,房间里面有大概五六个人,因为有五个场地可用,所以我大概只需要等五分钟左右的样子就可以了。等待的时间是漫长的,没想到我运气真的那么背,前面几个都走了只剩下我一个了还没叫到我。后面又陆陆续续的来了几个人,始终保证房间里面有六个人左右。终于,带我们进来的人叫了我的名字,也跟前几个人一样,把我叫到另一个小房间里,叮嘱了一下,让我用我的手机先拨通他的电话,并告诉我是一号库位,我就直接奔车而去。

虽然前面有一次模拟来过这里,但找一号库位还是花了我一点时间。时到车里,发动,倒车,电话里会不时有他的提示,我不清楚他从那里看到我目前的位置,但我选择让他们来帮我就要完全相信他所说的话,于是只好照做,不然两下操作不一样到时可就真的过不了了…无论过程多么的令我不满意,结果都是我通过了,挂空档,拉手刹。回到拍照的地方就被一个人给拦住了,问我叫什么名字,什么成绩,然后拿了成绩单让我交给另一个拍照的窗口。按我的理解现在我应该回到最外面的候考大厅跟前面几个汇合,然后等待最后一个参加倒桩考试。但现在没有人提示我这么做,而有人提示我那么做,于是我只好按照提示的去做,把成绩单交到另外一个窗口,再拍照,抽取考试单,然后让我去考小路!竟然没有人再帮我了?

进入考场的时候,他们又收了我的手机,我的天,这到底是怎么回事呢?坐上车的那一刻我已经跟自己说,小路怕是要靠自己了。不一会,带我们进来的那个人急匆匆的来到我的车前,问我为什么自己跑到这里来,我跟他说是有个人指挥我到这边的,然后他问我小路抽考的内容是什么,天啦,我怎么会知道我抽到的是什么内容,当时我非常的紧张,不是因为要考试,而是因为那样一个场面,那样一种心情,他说我刚才抽到的单子在哪里,我怎么知道在哪里,我掏遍了身上的口袋,就是找不到刚才抽到的单子,越急越没用。他说算了,问我手机在哪里,我说被他们收掉了,他表现出了极大的失望,我肯定他认为我这个人没救了。他跑到打单子的地方查出了我考试的科目,又把我手机要了回来,拨通了他的手机,问我单边桥怎么样,我说不行,他说不行也得自己考了。

于是我就开始了,侧方停车还是他指挥的,跟倒桩一样,虽然过程我不满意,但还是通过了。坡道他只说了停车的方法,跟我们教练平时教的一样,加上我平时练的也比较熟练,所以这一关轻松度过。但从侧方到坡道的过程中被前一辆车给堵了一会,加上侧方我们两个意见不是太统一,耽误了一些时间,电话里就听到对方说要加快速度,不然时间可能来不及。于是我在去单边桥的路上问我是否可以抄近路,没有得到回答,我只好按正常的道路很行驶,尽量加快速度。到单边桥的时候,出现提示,考试通过单边桥。按我们考试的“协议”,这里应该有人帮我们掌握方向盘的,但不知道他们没准备好还是其他原因,这里并没有人。我按照平时的学习,加上自己的理解,第二个单边桥尽量靠近内侧(练习时常从外侧掉下来),但在规定的时间内竟然没有要上的意思,我想这下完了,还好还有一次机会,再走一段,竟然稳稳的上了,平稳通过,车里的语音播报考试合格,我兴奋的叫了起来! 出来以后我告诉他们,他们都还不怎么相信,我误打误撞的通过了小路,成为我们中第一个双通过的人。

打电话给我们教练,找到自己的包,准备上班,当时刚过11点,他们还在等待最后一个倒桩的人通过。后来我了解到,他们上午并没有人去考小路,下午才统一给安排的小路。我觉得可能是上午监考的人比较多,没有人可以进入,下午才能安排人,所以把他们都安排去吃中饭了。但最后还有一个叫吴忠的人没有通过,两次侧方都没通过, 陈律师抽了龙门,而陆抽了大饼

2012年3月14日星期三

恶心的单位,丑陋的嘴脸

本来这些天没什么好写的,不成想今天的调研竟然给我送来的素材。其实这个单位我已经去过一次,第一印象就极为不好:第一个是里面的建筑结构十分的压抑;可能是由于房子比较旧的原因吧,里面不但冷冷清清,不知道的还以为我们又回到了大学的教室呢。第二是里面的人都十分的滑头!不是自己的事情一点不做,是自己的事情也要推七分,做三分,这已经是求爷爷告奶奶的结果了,所以上次的几个问题拖了几个月一个也没给解决,这次我还需要再去一次。第三是里面都是男人,这不是最主要的,每个人的办公桌上都是乱的一塌糊涂,你进去都不知道该坐哪,该找谁!

本来已经有心理准备了,但可能是我准备的还是不够充分,里面的一个极品男突破了我的心里底线。刚进去,上次接待我们的王老师(看着怎么真的像在学校啊)就把我带到对面的一个副主任的办公室,同样这家伙的办公室也好不到那去。刚开始说话就是一副不关我事的嘴脸,踢皮球一样把一些问题又踢给了我。我在想,你一个技术部门买台服务器难道还需要我给你太多建议吗?后面接着聊项目的事情,很明显,作为一个技术部门的人,他对技术的了解是比王老师要多的多的,但这家伙一个劲的不往正题上说,只说我们机房是没什么,没什么,接入我们机房需要很多很多的花销什么的,总之一句话,这不是我的事,跟我什么关系,干嘛放在我这里,还摆出一副领导的架势,看,我给你提供了几条意见,提示一下你们。王老师提到了要拨经费给他们来购买服务器,这家伙马上就来了精神,又是推荐windows又是推荐linux,又是可以找电信,又是可以办备案,总之你给钱,什么事都能给你办,完全不像前面说的那样趾高气昂,也收敛了那种丑恶领导的嘴脸。最后来建议把数字图书也做下来,这样可以再买硬件,他可以再从中捞一笔罢了。

临走的时候我都想恶心的吐他一口口水

2012年3月8日星期四

平板电脑

在我买iphone之前,最想买的并不是手机,而是ipad,只是由于身边每个人都在劝阻我才作罢。当时在国内还没有上市,水货市场的价格也比较高,大约要5000块左右。因为我当时还在用诺基亚,其实最困扰我的问题是看书,怎么样在地铁里看书更方便一些,显然我的小屏手机已经不太适合我,而iphone4和ipad都没有在大陆上市,所以就想买一个ipad来完成自己看书的愿望。

但显然听朋友的劝阻是正确的,因为在不久后,ipad登陆国内市场,价格是更有冲击力的3600左右。如果我花5000元买掉的话,可能现在要后悔了。尽管没买,但后来还一直留意着平板的发展,直到今天ipad3发布,windows8横空出世,我才渐渐发现我们都在模糊着平板与PC之间的区别。而如果此时还没有一个平板的话,显然就是比较落伍的人了,而我手上只有一个kindle fire可以拿出来充当一下平板。

不可否认,ipad在各种应用的炫丽、实用上都比竞争对手高一个等级。软件种类也可谓丰富多彩,给人的诱惑还是不小的,虽然我现在手上有了kindle fire,但还不得不承认,它们之间的差距不仅仅是价格上的,实实在在的存在功能和性能上的差异。软件种类上也不是一个层次的。

但差也有差的好处,他7吋屏让我们携带起来更方便。没有3G,没有摄像,没有MIC,都能让你更专注于阅读,当然我现在还真正开始把它用于阅读,大部分时候我还拿他看美剧,打发无聊时间。其实地铁上的时间不仅无聊,而且有时候还是一种煎熬,所以我从来不能缺少打发时间的武器,书,杂志,报纸,手机,平板,哪个都行,即使有时候这些都没带或者都不便于拿出来的时候,观察周围的人也成为了一种生活的态度。还要回到kindle fire上面来,如果能够在国内顺利访问到amazon的话,且你有那么多钱的话,你可以直接从上面找一些电子书来看,不过都是英文的。如果你再有些钱的话,可以上面下载歌曲,电影。这些也要在你有高速网络支撑的情况下,如果像我们现在单位的这种网速,怕再好的服务也没办法提供。

今天ipad3(暂且让我们这样叫他)推出,给出了更高的性能,还算平民化的价格,替代PC的趋势都让人有兴趣入手一台来玩玩。前段时间我也在考虑是否更换一台手机,智能机的寿命两年已经算是比较长了,一直在关注galaxy note,但后来由于经济原因不能成行,现在感觉自己还是庆幸的,任何电子产品都是消费器,买过来不可能会增值,这点要看清楚。

最后,今天是“38”,所有的女性同事已经提前放假回家了,祝节日快乐

2012年3月7日星期三

最远距离的旅行

这次三亚的旅行是目前为止我最远距离的旅游,也是花费最贵的一次旅行吧。

2月29日早上8:30从家里出发到五角场,然后跟其他同事一起打车到浦东机场,时间大约是9:45,安检,候机,一切顺利。这应该是第三次坐飞机,头两次都因为是初次,所以在起飞和降落的时候会感到耳朵里压力很大,所以每次都用双手把耳朵捂住。而这一次已经没有了上次的感觉,整个过程也没再使用张开嘴或者捂住耳朵的操作。乘坐飞机安检结束的时间是离飞机起飞前40分钟,开始的时候我一直不理解为什么要这么做,这次我也特别注意了一下从安检到乘机所需要的时间:飞机起飞前15分钟就不允许再登机了,所以通过安检到登机口必须在25分钟完成,我大概计算了一下,如果顺利,安检排队再通过安检大概需要10分钟左右的时间,而一般从安检口到登机口还需要10分钟左右的时间,加起来也就是需要20分钟的时间,再加上登机前15分钟不允许再进入,所以安全的安检时间应该在35分钟以上。这样说来航空公司40分钟的时间安排还是合理的。

IMG_0155

候机室

从候机厅到飞机上的这段路程是超乎我的想象的,因为在我的印象里“浦东国际机场”是个大机场,不可能就用一个“筒子”把人输送到飞机上去吧,而且上面还有大大的广告,某某银行等。飞机的跑道也是出乎我的想象的,具体没能来得及下去细看,但大部分地方都是黄色的土地,跟我想象的混凝土完全是两样的。

IMG_0157

筒子输送我们进飞机

进入飞机后,飞机并不能立马起飞,实际上,飞机何时能起飞还要看指挥员的“心情”。第一次飞去哈尔滨的时候就遇到等待半小时还不让起飞的现象。但这一次起飞时间异常的准时,起初的时候别人告诉我,飞机是先要让牵引车拉到指定的跑道,然后再加速起飞的,但从我目前所抓到的两张照片来看是看不到牵引车的,而且在飞机滑行的时候,我特别注意观察了另的飞机,也都没看到牵引车的出现,所以我觉得现在的飞机是不是已经比较先进了,不需要牵引车而自己在地面上行驶了呢。


2012年3月5日 09:23:07

上面是在旅行期间写的日志,不过由于晚上还要打牌,就没有继续写下去了。航站楼到飞机起飞跑道还有一段距离,第一次的时候飞机一走动就觉得马上要起飞了,正襟危坐,但飞机的速度一直提不上去,这时的噪音也比较小,后来知道原来这是起飞的前奏——开往跑道。飞机起飞时噪音是非常大的,启动的加速度也是非常快的,你有一种被人从后面拉住的感觉。当飞机离地的一瞬间,你就会有一种腾空的感觉,然后下面的东西慢慢变小,你就慢慢升高……上海的天气不好,所以不一会就到云层了,整个飞机也就会在云里穿梭。到达平流层后,也就看不到地面的景色了

IMG_0158

去三亚的东航飞机上

想象上来看,飞机是在空中飞行,应该是很平稳的。实际情况大部分时候也是这个样子,但这不是绝对的。飞机遇到气流会出现颠簸,有时候比汽车的程度还厉害,所以第一次坐飞机的人遇到这种情况都比较害怕,万一掉下去该怎么办呢?另外一个令我比较意外的是,民用飞机上是不配备降落伞的,后来我问了一下经常坐飞机的人,才知道,民航飞机如果失事了,基本上不是允许跳伞的,因为跳伞还是一个技术活,不可能每个旅客都能在短时间教会,如果不清楚跳伞的基本操作的话,跳伞无疑不是速死罢了。如果你正赶上吃饭的时间,飞机上会有一顿饭吃,如果没赶上吃饭时间,也会有一次点心给你吃,只不过好差不太一样罢了。由于不让带液体(包括水)所以飞机上的饮料是长时供应的,即使他们不主动推车来为你服务,你也是可以找到他们索取的。剩下的时间就需要你自己打发了,在每个座位上都有音乐播放器,不知道我说的对不对,但我没能使用,因为无论我怎么调都不出声音,最后还是把自己的手机打开,看里面已经下好的美剧了。

飞机上是不允许开手机的,即使飞行模式也是不可以,但国外研究已经发现,手机对飞机的影响并不太大。所以我一般会在飞机起飞后允许使用电子产品的时候把手机开到飞行模式来使用,因为这时候跟itouch没有什么区别了。

飞机的速度降低了上海到三亚的距离感,坐火车需要37个小时,而飞机不到3个小时就到了。整个飞行过程中地面的景色一点都看不到,全是白云反射过来的阳光,非常刺眼。在降落的时候,希望是个好的天气,但三亚第一天的天气令我们失望了,也是一个多云天,在飞过云层下面的时候也是看不到地面的。三亚的凤凰机场真是简单,比浦东的还要简单,其实后来总结下来,所有的机场都没那么复杂,一大片空地作为跑道就可以了,至于旅客怎么上下都已经成了简单的事情,可以是一个筒子,也可以是一辆梯车加大巴,总之跟机票的价格总是不相协调。刚下飞机,三亚的天气也没有想象的热,后来发现那是因为我们在机场大厅里有空调的原因。

坐上去市区的大巴,听着导游的讲解,看着周边的椰子树,一切都告诉我们,我们已经来到南方了。到酒店放好行李,我们到的第一站是酒店旁边的“鹿回头公园”,这是我们到三亚的第一个景点,也比较放松,因为不是爬上去的,而是坐车上去的。记得我去“观音山”的时候可是一路走上去的,这两种对比是明显的。在山顶上可以看到整个三亚市,可以看到那里最贵的房子20W一平海岸房。

IMG_0162

我们的导游

IMG_0160

机场周边的椰子树

IMG_0167

20W一平的商品房


2012年3月5日 15:43:55

晚上吃饭是在“爱晚亭”吃的,读书的时候学校对面就有一个叫“爱晚亭”的小饭馆,到市中心见到了高档的“爱晚亭”,今天这里又出来一个,是不是同一家呢?餐具上的提示证实了我的想法,跟陆家嘴的是一家店。来海南的一个目的就是吃了,这次这们也不例外,海鲜是一定要点的。但我这个人对海鲜不是特别感冒,在我的印象里,吃海鲜跟吃馒头是一个样子的,有时候还不如馒头好吃,所以再多的海鲜让我吃也无疑是浪费。也早就听说三亚的店里面比较宰客,但这里是导游推荐的,也就不再担心被宰的事情了。我不爱吃海鲜,对它的种类和一些名字记的也就不太清楚,基本上一半一半吧。有人说蟹是臭的,我反正一只也没吃,就吃一些家常菜和米饭,椰子饭是我觉得最好吃的食物之一,我们那一桌上的基本上都被我给吃了。吃完之后就直接回酒店了,“因为是第一天,也比较累,所以没安排夜生活”——其实这句话一直说到最后一天。由于吃的比较多,加上我们基本已经约定晚上打牌,于是第一天的三国杀早早的就开始了。大约12点的时候,就剩下4个人再玩了,觉得不玩点惩罚措施有点没意思,于是就定了输一次一张票子的规定,而这个规定继续了3个晚上,每天基本都是从11——12点钟开始的。

第二天8点起床,但我7点就早早起床了,不是不想再睡了,是因为实在睡不着了。晚上我们玩到2点多才各自回房,而我去洗洗澡基本上快要3点钟了。早就听说我室友有打呼噜的习惯,我也没当真,觉得有些呼噜还是可以忍受的。我高估了我的忍受能力,或者说我低估了我室友打呼噜的能力。他刚睡下就呼声四起,但声音还比较小,节奏还比较有规律,再过了10分钟,呼声就惊天动地了。再后来一会出现呼吸暂停,一会出现呼声震天,忽大忽小且没有规律,这时候就像你在边上睡觉,有一台机器发出或高或低的噪声,让你无法入睡。到快凌晨5点的时候,我才睡了不到半个小时,没办法,只好开机上网。被室友给发现了,说让我睡会,他先上会网。于是我可以安稳睡了两个小时到上午7点钟。他实在撑不住了,呼声又响起来了。

7点起床后当然是早餐时间,我比较喜欢吃这种酒店的早上自助餐,我觉得比让去吃什么海鲜要实惠多了。这里早餐的种类还是很多的,中式,西式,面点,饭类,肉,蔬菜应有尽有,水果,色拉,咖啡,果汁。最重要的是,这里还有一个非常良好的就餐环境——这里靠近海边,坐在餐厅外的座位上可以享受早晨的阳光,欣赏南方的绿化,旁边还有一个游泳池,晨风习习,绝对是进餐的最佳选择,为此早起一到两个小时绝不为过。

IMG_0200

酒店的自助餐厅

第二天的第一站是去亚龙湾,这也是三亚最有名的地方,当然这里的沙滩和海水也是最好的地方之一。但这里的娱乐设施在这个旅游淡季也比较少,只有潜水一项活动,而这项自费活动大家好像都没有兴趣(其实后面我才知道,大家对所有的自费项目好像都没什么兴趣)。如果不潜水的话,就只有去海里游泳了,因为我再想不出一个大太阳在沙滩上走来走去有什么好玩的地方,由于我就选择了下海。这是我第一次下海,给我的感觉还是棒极了。海水有点咸,在海水里一直就觉得有一坨盐在我拉喉咙里塞着一样。海里面游泳不比游泳池,里面有一定的波浪,会让影响你游泳的水平。但沙滩,海水还是让我兴奋了好一阵子。这应该是我真正意义上的第一次下海。

IMG_0203

亚龙湾


2012年3月7日 13:15:10

海水的温度适宜,如果有个游泳圈,躺在上面晒太阳是一件非常惬意的事情。暖暖的阳光照在身上,像飘浮在死海上一样的感觉,看着周边的比基尼美女,享受啊太阳

半天的时光是非常容易过的,不一会就到了要集体的时间,我也只是简单在沙滩上晒了晒太阳,被他们埋了起来,然后就匆匆去冲了一下淡水澡,集合去吃饭了。

下午是去“热带天堂”,一开始还想不起名字了,还是问了去过的同事才记起来的。这里主要特色是葛优和舒淇拍了“非诚勿扰2”,其中之一是试婚的地方,其中之二是索桥。

IMG_0206

热带天堂的“鸟巢”

IMG_0208

热带天堂索桥

鸟巢是那里的酒店,如果没有在那里住的话是不让过去的,我们也只好在远处看了一下,拍了一些照片。而索桥是可以收费通过的,这里有一个比较“坑爹”的事情,你在走到最后的时候会有人帮你拍照,当时你并不知道会有什么事情,以为他们只是用来记录一下有哪些游客来过这里呢。但你再走一段时间就会发现,你的照片已经被人做成拍挂件,照片放在了另外一个必经之地,如果要取这些东西,每样10块钱,生财之道啊。我只是觉得我的照片拍的水平太烂了,不好意思一直挂在那里就把照片拿了出来,没想到被收了10块钱,挂件就没再管他了。索桥只是山中央的一个景点,我们还要坐车去山顶。这里的上山的车也特别有意思,速度还算比较快(没导游说的那么夸张)但有一个习惯,可能是“世代”传下来的,下山的人一般会在两车飞速碰面的时候大叫来吓上山的人。一般来说,第一次始终会被吓到的,我们下山的时候延续了这个传统,结果我的嗓子哑了半天……山顶叫啥我也不清楚,但可以远看三亚的景色,后来我总结了个规律,哪座山上基本都看到三亚的全景,因为三亚太小了;在山顶的时候我接了一个电话,再一回头,他们竟然把我给“丢”了,他们竟然“丢人”了!

IMG_0211

热带天堂的山顶

IMG_0215_副本

从山顶远看三亚岛屿

下山回来时间还比较富裕,其实如果我们不是坐车上去可能就会不一样了,根据我们的行程,一起去免税商店看看,因为我从来没出过国,就没有机会接触过免税的商店,于是就有一些好奇心,到底能便宜多少钱?不过结果是令我失望的,因为里面的东西基本都是我不需要的,只有一些特产还可以考虑买一些,像什么化妆品了什么的,跟我好像没什么关系,在里面逛了两圈,最大的收获是收集了我们这里所有女士买的化装器。

IMG_0217

三亚免费商店

这天晚上的晚餐是海鲜大餐,其实跟我说了我也不知道,拿给我看也不认得,吃了也不清楚吃的是啥,如此说来还不如给我来米饭咸菜呢。大家都吃的很高兴,但我总觉得今天没吃到什么东西,晚上的时候又吃了一些零食才算作罢。当然在三亚不吃海鲜确实是一件不可想象的事情,但我反倒觉得要吃一样东西不一定要从当地去吃,比如,味千拉面在日本没人要吃的,重庆鸡公堡在重庆却找不到几家。所以我们吃海鲜不一定在旅游的时节去海边,反倒可以去一些中小城市,那里来的更加实惠些。

晚上的活动还是打牌,因为没有其他方面的活动安排,我们早早的就坐好了位置。但今天开始的时候并没有打三国杀,而是打扑克。基本上在10点以后才开始三国杀,当然还是老规矩,输一次一张票子,不过当天下来我还是基本上不输不赢。

第三天还是9点钟集合,这天的项目只有一个——蜈支洲岛,这个岛从地图上看可有点名不副实,因为它有一部分跟陆地连接,不能算是真正意义上的岛,只能算作半岛罢了。也不知道这里还是不是属于三亚市,但离我们住的酒店还是挺远的,如果中间不出什么问题需要40分钟左右的车程,但我们中间加了一次油,一个小时后才到。经过了昨天一天的大太阳,今天的天气可说不上怎么好。其实在起床的时候还能看到美丽的阳光,但到现在就被厚厚的云层给遮盖了。

image

蜈支洲岛地理位置

尽管这个岛跟大陆相连,但要想从近处上岛还是要从轮船的,轮船跟车正好相反,越靠近头部的地方晃动的越厉害,所以如果有晕船的经历的人最好选择船尾。虽然我已经坐过几次轮船了,尽管那仅限于过黄浦江,但也已经很长时间没有坐过了。可能是出于想挑战一下自己会不会晕船,我选择了坐在轮船的最前面,当然我们的速度不够快,底上已经被人给占满了,不然坐在上面吹吹海风还是很舒服的。这天的波浪还不算大,中间有几次跳动已经让我的心脏有了感觉,我想如果波浪再大一些的话,我可能就会出现晕船的症状了。

可能是由于天气不好,我们到岛上后看了一下沙滩,给人的印象也不是太好,第一个就是小,比亚龙湾小多了,比我们住的大东海也小。第二个是上面的海子杂质太多,不适合光脚在上面玩。本来带好了下水的工具,但看到大家的积极性不高,最终也没能成行。今天带来了排球,这是昨天他们去亚龙湾的经验,一定要带好玩的工具,所以棋牌类游戏带了不少。事实也证明,这些东西没白带,我们上午的主要活动就是沙滩排球,因为没有专业选手,所以对抗没有那么激烈,但一两个小时下来还是让人挺累的。中午12点到岛上的中餐厅去吃午餐,当时是团餐,由于上午大家运动比较大,大家都饿了,所以也没感觉出来好吃不好吃,把所有的东西都吃完了。下午的时间本来有个地方有温泉的,只不过是自费项目,大家都不太愿意自掏腰包,当然还有一个原因是这里的景色我们还没有全部看过来呢。下午的时间就比较随意了,很多人拿看自己的单反到各自留下自己的靓影,标明一下到此一游,我们还是继续我们的行业,去个西餐厅打牌。本来说还要打沙排的,但由于刚吃过饭,中午的时候又比较热就没了兴趣。但找个打算的地方还是费了好些时间,有些人同意就随地而坐,开始打算,但有些女士不同意,觉得地上的虫子太多,这也可以理解,但我们的位置确实不好,那里的树荫简直不能称为树荫。于是经过商量还是找了一家西餐厅,点了两壶茶,吹着海风打牌了,那也叫一个爽啊。到了下午2:30快集合的时间,我们决定再去玩一会沙排,但天不随人愿,已经有人在玩了,我们不可能跟别人抢网。而且我们剩下不到半个小时了,也没有必要等他们玩完再继续了,本想只好作罢,但有人提议随意传两个球,于是大家围成一个圈又玩了一会。

IMG_0256

蜈支洲岛上见到的蜥蜴

由于昨天的晚餐过于丰盛,预算花了不少,所以今天晚上的晚餐只好一切从简。点菜的时候我也坐在旁边,鼓动方点了几个我特别爱吃但又不算太贵的菜,外加一个金银馒头,把大家的肚子填饱。我对这餐的评价是在三亚吃的最舒服的一餐,前期都是我喜欢吃的一些家常菜,而且都比较下饭,后期是一些粗粮加我的金银馒头,整体安排是相当合理的,只不过最后的金银馒头上的时机不对,饭后水果都吃完了才把它们端上来,差一点害我自己把它们全部都吃掉。但对于这一餐,有一部分是没有尽兴的,于是商量着晚上怎么宵夜。就我当时的肚子而言对这个话题明显不感兴趣,而我最主要的是怎么样找个能够消食的地方活动一下,不然吃完就睡肚子吃不消的。

由于吃饭的地方离酒店不太远,我们就没有乘坐大巴,而是几个人一起走回去的。回到大东海的时候,天还有些亮,于是去沙滩看一下,这是我入住酒店以来第一次到这里的沙滩来看看。由于光线不是太好,我没感觉到这里的沙滩跟亚龙湾的差了多少。我们最主要的目的还是要找一个能够消食的地方,看到了那里也有沙滩排球的网,可能是临时性的。后来我们想我们远没有必要一大早起床去别的沙滩上去玩,因为这里打算,打球,游泳都能完成,度假住这样的酒店已经足够了。但毕竟是集体活动,我们不能左右什么,所以也只好跟大家一起去了。回酒店的时候我们走了边门,然后去这家酒店的游泳池看了一下,没多少人,还有篮球架,于是我们决定晚上到这里来打水球。回去换身衣服就出来

打水球是我们这次行程的一个重要活动,不过由于参与的人比较少,所以竞争也不是那么激烈。但小吴跟小红的表现绝对让大家捧腹。不得不佩服小吴在运动过程中很卖力,小红的投篮技术很准。到9点半钟的时候,我们由于小吴运动过于激烈造成手脚抽筋才作罢。这天是酒店的最后一个晚上,所以还是蛮珍惜的,我们的活动还是三国杀,只不过开始的比较晚,不知不觉已经到凌晨2:30了;由于第二天还要早起去水果市场买一些东西准备带回去,所以就睡觉了。

第二天一早起来吃早饭,上午九点钟是定的出发时间,但也是我们当天飞机的网上值机时间。我在下面等他们的时候,试着通过手机进行网上值机。结果还是比较顺利的,我成为整个航班的第一个值机的人,这也是在预料之内的。我们三波人就分别打车去水果市场,其实我基本上什么都没概念的,要买什么水果,怎么买,跟着他们就是这点好,他们买什么我买什么,很多时候还能让他们帮我挑一两样水果,其实我本来不需要去的,只要让别人帮我带一份就好了。去了就要忍受大太阳。买椰子是中间的一个小插曲,到最后的时候我还没买椰子的概念,但看到姜拿着两个很好看的椰子,便问他那里买的,他手指了一下,我顺着他手指的方向去问了摊主,果然价格是一样的,只不过长的不一样,因为姜买的那两个外表是十分光滑的,但这里的椰子都是还没有剥皮的。我还以为是他们还没剥皮的原因,于是就让他给我挑了两个,然后再削成姜的那个样子。但摊主怎么削都成不了那个样子,而且两个都已经打开了,想不买实在有点说不过去。所以我就买下了那两个长的比较丑的椰子。后来不甘心,又去另外一个地方买了两个长的漂亮的,两个丑的直接在这里吃掉,这是我的计划。

回到酒店已经10:30左右了,我的东西还没收拾,11:30就要退房了,所以这一个小时我都在收拾东西,因为无论我怎么放,我的水果都不可能全部塞到箱子里面。最好只能做了妥协,把厚一点的衣服穿上,再把一些水果拿在手上才解决了这个问题。11:30分我们下楼退房,我找下面的厨师帮我把那个丑的椰子打开,那里的厨师非常的客气,帮我打开了不说还免费送了我一个吸管(他自己那里没有,又从别的店里借的)上车吃中饭,就酒店不远的地方,又是团餐。由于早餐吃了还不久,而且早餐是自助的,大家吃的又比较多,于是这顿团餐大家都没什么兴趣。不过我也早就预料到,晚上的饭也肯定不会太晚,因为我们是20:10的飞机,大概会在17:00钟吃晚饭,于是就随便吃了一些。

我们的最后一站是天涯海角,这个天气真给力,阳光明媚。其实老天还算是蛮照顾我们的,四天的时间里有两天是大好天气,就当天的云多一些,第三天的阳光也还算可以。有些来过“天涯海角”的人都说这里其实没什么好玩的,所以我对这里也没抱多大希望。但往往希望越大失望越大,而希望越小,给你的惊奇越多。虽然今天已经换了比较厚的衣服,但还是档不住我对“天涯海角”的赞扬——蓝天碧水。唯一的缺点是离机场比较近,时不时就会有一个大飞机出现在头顶上,并伴随着轰鸣声。

IMG_0293

天涯海角的“永结同心”石

IMG_0290

天涯石

IMG_0282

天涯海角看海

当然,我们有近四个小时的游玩时间,所以转了一圈后,我们又开始了我们的老项目——三国杀。玩的时间过的总是很快,本来以为4个小时有好长时间,但也是转眼就到。下午4:00钟的时候集合,出景区的时候中间经过一些商店,热闹非凡,东西虽然是假的,但价格也便宜不少。就拿冷饮来说,景区里面都是统一价10块,而这里就会有3块,5块的出现,所以说这里价格不公道还是有点替他们鸣不平的。

晚饭又开始了,这次又是团餐,大家都觉得就餐时间过早,加上饭店说饭菜还没做出来,我们就接着打牌,一边打牌一边吃饭,时间还很宽裕,因为这里到机房的距离也就20分钟的车程,现在只有16:40分左右。虽然说大家都觉得吃饭的时间比较接近,但由于中午实在吃不下什么,这会的饭菜变得格外的想,每个盘子都非常干净。我们财务出现了另我们吃饭的一幕,把服务员撤下去的空盘子又要了上来,把仅剩的几个菜叶拨到了自己的碗里,我们瞬间石化!

登机一切顺利,待机还要一段时间,我拿出自己的电脑来给手机充电,因为飞机上无聊的时候还要用它来看电影。另外的又开始打牌,我们真是打牌之旅啊!

这次飞机是上航的,空姐都不算漂亮,但都蛮高,皮肤不好。飞机餐也要相当的简单,只有一次饮料供应。但我每天早上都太早起床,不知不觉的睡着了——也是第一次在飞机上睡着。时间真快,11:00准时到达上海虹桥机场,突然从夏天转换成上海多雨的冬天……