Skip to content


复制Dev2Dev

Dev2dev.us建立之后,首先要解决的就是丰富内容,原来dev2dev的中文内容就是目标。幸好有互联网备份,我们有机会将以前的内容找回。

我在Dev2dev.us论坛建立了一个用户old-dev2dev,用他的名义将原本dev2dev网站的内容抓取并发布到了论坛中,并且根据内容发表在不同的板块。大家如果希望参考以前dev2dev的内容,可以这里根据用户名搜索,看看有没有你需要的。不过,大家一定要包涵,很多图片已经找不到了,如果有问题,可以在论坛里提出来,我们一起解决。

另外论坛的arnoldski同学,将当年的一些研讨会的资料也整理了一些发布到了网站(12)。

Posted in WebLogic.

发不了邮件,我晕

有朋友反映接受不到Dev2dev论坛上注册邮件,经过检查果然是。我从discuz7升级到7.2,问题依旧。邮件系统没有问题,因为测试邮件发送正常。我又怀疑是不是发送的内容有问题,现在网络环境这么差,但后来一想也不是,gmail在国外啊,没有GFW。

Discuz论坛上不少人有类似的问题,全是些没用的回复,大多是抄来抄去,连楼主的问题都没有看清。没办法,只好去调试代码了,试着对比测试邮件发送和注册邮件发送的区别,最后发现了一点线索。

如果没有指定发送者而去调用sendmail,就不会发送成功,搞不懂include/sendmail.inc.php的这段代码干了啥:

$email_from = $email_from == ” ? ‘=?’.$charset.’?B?’.base64_encode($bbname)."?= <$adminemail>" : (preg_match(‘/^(.+?) \<(.+?)\>$/’,$email_from, $from) ? ‘=?’.$charset.’?B?’.base64_encode($from[1])."?= <$from[2]>" : $email_from);

我直接到include/global.func.php修改了sendmail函数:

function sendmail($email_to, $email_subject, $email_message, $email_from = ‘myadmin@mydomain.com‘)

直接把管理员邮箱添加上了。总算是好了,我也不多想了,请discuz告诉我是怎么回事吧。

Posted in life.

据说转发这个过些日子百度会给钱

以下文字转载自一个现已不存在的地址:http://is.gd/6bEeB;发文时间是2010年1月13日下午1:20分左右,作者时百度的首席设计师孙云丰:

google宣称要退出中国,所证明的,恰恰不是市面上的那些g粉所宣称的那样,google是个人权斗士,而刚好反了过来,正好证明google是个市侩分子。

google 的首席法律顾问的调调让我感到恶心。因经济利益退出,就直白白的说好了,把自己涂脂抹粉一番,还煞有介事的提到google被中国人攻击,中国异议分子的 Gmail信箱被攻击,把这些事情作为退出中国的铺垫,这种论调是侮辱中国普通老百姓的智商,但还真有可能迎合那帮目空一切,但从未到过中国、对中国没有 丝毫了解,却又喜欢对中国说三道四的西方人的假想。

只提一个假设,如果谷歌占据了中国80%的搜索市场份额,google的高管,还会这么高调的宣称要do no evil,从中国退出吗?

整个事情给我的唯一感受,就是恶心。

科普一点:

信息不对称是造成社会不平等最主要的原因之一。而对普通百姓最为关键的信息,并非中南海秘闻,而是最为常规的经济、文化、科技等领域信息。尽可能的为普通老百姓对这些领域的信息提供便捷,并消弭信息占有的不对称,这是搜索引擎存在的最大社会政治意义之一。

从这个角度而言,尽可能的设法为百姓提供便捷的信息获取技术服务,提供切实的价值,而不是挂羊头卖狗肉的宣称自己do no evil和政府撕破脸皮搞壮烈,才是一种真切的负责态度。找台阶下可以,但不要拿一个高管制国家的民众感情来做台阶,这是极其不道德的。

政治环境短期内是无法改变的。在中国,每个企业或者个人,都必须戴着镣铐跳舞。其实在别国一样,只是程度之别。但这是现实。在有限的条件下,尽可能的提供自己勉力而为的一份子,才是一个真切的做企业、做人态度。

在我博客上乱喷的兄弟,甚至还有搞笑的喷我five毛党的,都回家好好的念点书,再回来喷吧。希望看得见点水平的,而不是除了咒死爹死娘就不知道说啥的。 80年代的愤青,可不是现在这副衰样儿。

————–

以上是作为一个曾经的忠实google用户而说的,和百度无关。市面上沾沾自喜于了解一点google的产品技术细节将google奉为道德楷模而自封G 粉的兄弟,请勿跟帖瞎喷,你们根本不懂什么叫搜索引擎,什么叫自由人权。

————–

btw,评论关闭。要喷到twitter上喷吧。我的地盘不欢迎。

Posted in life.

玩玩GoldenGate

前一段跟着Quest的朋友学习了一些SharePlex的东西,最近Oracle则在大力推广另一个类似的产品GoldenGate,手头的资料不多,只有一份官方文档和一份所谓的培训教材PPT,不过可操作性不强,上手有点难,后来看了这篇文章,才终于把基本的同步实现了。不过这位作者显然已经研究不少时间的GG,所以很多命令并没有写明,这里我把它补充一下吧。

1,数据库准备

1.1 检查SUPPLEMENTAL_LOG

和SharePlex一样,GG要求打开SUPPLEMENTAL_LOG,通过如下SQL可以查看:

SQL>select SUPPLEMENTAL_LOG_DATA_MIN from v$database;

如果没有开启,则执行如下语句打开SUPPLEMENTAL_LOG:

SQL>alter database add supplemental log data;

1.2 建立测试用户

ggs和ggt分别为源数据用户和目标用户。

create user ggs identified by ggs default tablespace users;
grant connect,resource to ggs;
create user ggt identified by ggt default tablespace users;
grant connect,resource to ggt;

建立GG使用的用户gg。

create user gg identified by gg default tablespace users;
grant dba to gg;

2. 下载安装GoldenGate

需要到http://edelivery.oracle.com/下载对应版本的GoldenGate,我不太明白的是为什么这个GG的Product Pack是Oracle Fusion Middleware,另外,我是在RHEL5.0上做的实验,所以Platform我选择了Linux x86,下载文件大约27M。

为了简单,我直接使用操作系统的oracle用户安装GG。建立目录/home/oracle/ggs,把下载的文件unzip,然后存放到这个目录后执行:

tar -xvof ggs_redhatAS50_x86_ora11g_32bit_v10.4.0.19_002.tar

这样,/home/oracle/ggs就是我们的GG的目录了。这时候我们进入ggs目录,执行ggsci可能会报找不到库的错误,那是我们还没有配置LIB,对于我这个系统,我在.bash_profile里增加了如下几句:

LD_LIBRARY_PATH=/home/oracle/ggs:/u01/app/oracle/product/11.1.0/db_1/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH

PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/home/oracle/ggs; export PATH

运行’.  .bash_profile’,或者重新登入oracle,再执行ggsci,就可以进入ggsci的管理界面,可以运行GG的命令了。这时,首先要做的就是建立GG的工作目录,我们运行:

CREATE SUBDIRS

(这一步最好在cd到/home/oracle/ggs,然后运行ggsci后执行,别的地方建立的环境有问题,我还是初学,应该有配置的方法,暂时不懂)

运行完毕,就生成了许多目录,这是GG配置文件,日志等文件的存放目录。

3. 配置最简单的实验

本次测试模拟的情况是:为了把ggs模式下的表中的数据变化同步到ggt模式的相关表中。本次配置不在源端缓存数据,直接把extract进程抓取的数据存储在目标端数据库服务器上,然后目标端数据库服务器的Replicat进程把队列中的数据投递到目标数据库中。相关配置命令和参数如下:

添加相关进程:

ADD EXTRACT ext1 TRANLOG, BEGIN NOW

ADD rmttrail /home/oracle/ggs/dirdat/r1  extract ext1

ADD replicat rep1 EXTTRAIL /home/oracle/ggs/dirdat/r1, nodbcheckpoint

运行edit param mgr,然后保存文件内容如下:

port 7809

运行edit param ext1 ,然后保存文件内容如下:

extract ext1
userid gg,password gg
rmthost 127.0.0.1, mgrport 7809
rmttrail /home/oracle/ggs/dirdat/r1
dynamicresolution
table ggs.*;

运行edit param rep1,然后保存文件内容如下:

replicat rep1
userid gg,password gg
assumetargetdefs
map ggs.*, target ggt.*;

然后启动必要的进程:

start mgr
start ext1
start rep1

这时可以运行info all来查看是否所有的进程都是正常运行:

GGSCI>  info all

Program  Status  Group  Lag  Time Since Chkpt

MANAGER  RUNNING
EXTRACT  RUNNING  EXT1  00:00:00  00:00:07
REPLICAT  RUNNING  REP1  00:00:00  00:00:08

4. 测试同步

使用sqlplus执行SQL语句:

create table ggs.tb1 (a number, CONSTRAINT pk1 PRIMARY KEY  (a))  ;

create table ggt.tb1 (a number, CONSTRAINT pk1 PRIMARY KEY  (a))  ;

然后运行:

insert into ggs.tb1 values (1);
commit;

看看是否同步到了ggt.tb1了?

Posted in oracle. Tagged with , , .

谁是无耻混蛋?

只要是昆汀的电影,我一定会另眼相看,即使面对大段无聊的独白,我也能静静的看到独白的结束。有些人评价《无耻混蛋》是一部烂片,对于感受不到那种韵味的人来说,的确如此,但对我来说这就是风格。

和以前一样,每个人都很疯狂,一群充满仇恨“无耻混蛋”,像当年印第安人那样对待敌人,割下每个敌人的头皮,决不留情。暴力血腥,没有丝毫的掩饰。对于偶尔放过的纳粹,则在他的额头留下永远的纳粹记号,因为你现在是纳粹,那你永远是纳粹。

这部电影让我想起了上次我在Blog中提到的《朗读者》,女主角汉娜在二战时是一个尽职尽责的女兵,在一次撤离中锁住了大火燃烧的大门,烧死了许多战俘,但是她的辩解是“这是我的工作”。很多在那次战争中为虎作伥的人都有这样的借口,但是我们知道,如果没有他们,就没有法西斯。

在无耻混蛋面前,没有饶恕!记得美国剧集《天使在人间》中的犹太拉比说过:“基督教的核心是忏悔,而犹太教则是清白。”所以,对于那些叫做无耻混蛋的犹太人来说,纳粹的忏悔是没有用的了,必须得到惩罚,即使你像君特哥斯拉那样,几乎没有做什么,战争就结束了。

这是一部昆汀的电影,大多数时间里都是那种嚣张调侃的音乐,唯一的例外就是下面这一段:

image

犹太女孩和纳粹英雄打死了对方,真实的残酷,当纳粹英雄在被击中呻吟时,我还以为会对犹太女孩说些什么,没想到却是子弹。真的仇恨,不是爱情能够战胜的。女孩儿在考虑杀死所有的人时,对这个喜欢自己,自己还有些好感的德国人,没有丝毫的犹豫。无论如何,这一段很美,最后,女孩眼中的不是眼泪,是坦然,是仇恨的解脱,但也有没看到烧掉这一切的遗憾—Burn it down!

记住,即使你所做的只是工作,你也可能要为此付出代价,忏悔没有用,你能清白吗?

Posted in movie.

备案,怎么备?

涛哥不是说过不折腾吗?为什么偏偏互联网这么折腾?尽管早就知道风生很紧,但直到事情落到自己头上,才感到原来如此恶心。

先是Subversion中文站被停了,原因是有论坛,好吧!我搬,我明白,网上任何能发表言论的地方都是你的敌人。至于备案,我以前很守法,早早就乖乖的把所有的网站进行了备案,只要你不再找我麻烦,我就当不会再骂你了。

可事情没那么简单。原来放在Dreamhost上的本Blog要搬家了,我理所当然的想去修改域名指向,却发现不让我修改,原因是没有备案。去看看当年备案的邮箱,赫然发现备案被撤销的邮件,理由是主体资格不符合。呵呵,这不是逼我吗?你要是逼太紧,大家真的没得玩了。跟开公司的朋友说了一下,他帮我去备案了,这时另一个朋友提醒我,直接设置域名的nameserver就好了。因为我要搬家到bluehost,所以界面里我把nameserver设置为ns1.bluehost.com和ns2.bluehost.com,竟然可以?不过,不是每个国内的域名服务商都这么敷衍,有些很负责任的服务商连修改nameserver的功能也停了。

我也不指望rocksun.cn能用多长时间了,当年图便宜,买了5年,看来是熬不到结束了,域名费就当是喂狗了,只是别侮辱了狗,前几天去喂的那些狗真乖啊,用狗官作为官的修饰词实在是侮辱了狗。啥也不说了,只恨自己投胎不慎。

Posted in life. Tagged with .

做了个新网站

最烦垃圾网站了,就是那种到处自动抓取网页成为自己内容的网站,他们的SEO做的很好,为了优化,可以删除其中任何有意义的链接。不过花了几天时间,我也搞了一个抓内容的网站:http://www.kard001.com 。这个信用卡优惠网站的信息都来自各大银行信用卡中心,我做的只是一个抓取的动作,通过订阅相应的银行,你就可以在每天浏览blog时获取最新的信用卡优惠信息。

拜Godaddy所赐,用了0.99美元注册了这个域名,让我也没有感到很破费。

Posted in life. Tagged with .

可惜,看清的太晚

从小到大,一直想做一个成功者,所以总是试图摆脱任何不积极的思想,尽量做到不抱怨,甚至连别人的抱怨都予以屏蔽,可是,该到来的还是会到来,只是发现自己看清的太晚。

首先,要多读书,读正确的书。《1984》一定要看,结合跨省追踪案例阅读效果更好。再可以看看《美丽新世界》,考虑一下这是不是人类的终极目标?还有别的出路吗?可以看看《论美国的民主》,就会发现原来民主并不是天上掉下来的,至于这一套民主的玩意怎么发挥作用的,可以看看《民主的细节》。

还有一些现实题材的图书,例如毛泽东私人医生的回忆录,还有毛泽东,鲜为人知的故事,可以看看伟大领袖的另一面。我们新中国的另一面,可以看看墓碑,另外新疆和西藏民族问题,我们可以看看王力雄的两本著作。这些图书是不是不真实啊?也许吧,至少你学会了去判断。这些书名太不和谐了,如果写明,可能就被墙了,为了更好地展示本文,就不提了,聪明的人会自己找。

接着还有一些电影。可以看看《窃听风暴》,当年柏林墙还在的时候,东德人民聊天都不安全。还有精彩的《斗牛》,本以为能通过审批就不怎么好看了,没想到还真不错。了解一下我们的邻居红色高棉,关于S21的纪录片会很精彩。赵亮导演的纪录片《上访》也可以看了,只是没有中文字幕,你若是会法语,或者听的懂一些方言,到也能看。

唉,到底人为什么而活?

Posted in life. Tagged with , .

人总想与众不同

说这个挺无聊的,不过这些年一直遇到这类问题,人们总想表现出很专业,但是太专业了就感觉不专业了。

“MySQL”这个词,写起来只要注意了大小写就可以了,M作为my的首字母大写,SQL作为首字母缩略词也应该大写。至于发音,内行人都知道SQL可以读为“sequel”,比原本的“Ess Que Ell”省力多了。不过MySQL一直认定自己的官方发音是“My Ess Que Ell”,自从我看过官方说明,我便一直遵循这个标准的,不过常常被人认为连个SQL都不会读。

另一个非主流的读音是“linux”,很多人人把那个u,直接读成了[ju:],这可能大家以为linux来自于UNIX,自然发音也有相近之处。而实际上它的发音更加类似于 ['linʌks],这篇文章有发音的录音,大家可以参考。当然,因为Linus本来是瑞典人,瑞典语的发音和英语也不相同,大家只能找一种比较接近的发音。

流行的东西自然有其流行的原因。记得当年Blog这东西刚进中国的时候,一直没有一个正式的中文名,有人翻译做网志,台湾人叫部落格,而博客中国的方兴东则大张旗鼓的将其翻译为“博客”,被许多Blog先驱鄙视,认为他们的Blog不是你方兴东的“博客”,博客贬低了Blog的内涵,以至于发起了一场“我不是博客”运动。不管“博客”之争是否事关利益,但最后的结果是blog成为小众,而博客则成为正式的名称。所以,每当我想别人介绍“我的Blog”时,他们都会一脸茫然,然后我只好很不情愿的说出“博客”两个字,仿佛因为这两个字,大家变得一样俗了。

Posted in life. Tagged with , , , , .

装tuxedo遇到问题了

因为工作需要,在我的RHEL 5.3上需要安装一个tuxedo,开始想安装8.1,因为这个版本用的还是很多,可是发生错误,到metalink里面查了一下,说是需要安装较旧的开发库,这可有点罗嗦了,便转而安装10gR3。

在linux中建立好tuxedo用户后,便直接通过运行sh tuxedo10gR3_32_Linux_01_x86.bin安装,没想到到了输入tlisten密码时键盘无法键入任何字符,可能是图形界面的问题吧(也许应该试试xwindows)?无奈下,只好用输入sh tuxedo10gR3_32_Linux_01_x86.bin -i console,通过命令行的方式安装,倒也没有麻烦多少,顺利安装完成。

接着通过simpapp来验证安装过程,根据simpapp中的README修改了.bash_profile和ubbsimple,编译客户端服务器和配置文件后,运行tmboot -y发现类似下面的错误:

110004.clicsx!BBL.25771.1.0: GP_CAT:1356: ERROR: pifreg: can not open registry database
110004.clicsx!BBL.25771.1.0: LIBSEC_CAT:22: ERROR: Unable to realize the _ec_sec_map_proof interface implementation native/security/
map_proof. Error code (-4003)
110004.clicsx!BBL.25771.1.0: LIBTUX_CAT:6275: ERROR: Unable to initialize public key subsystem (-3003)

这个文档中提到是配置路径的问题,我看了眼都花了,也没有看到错误,便到了安装目录查看,发现前几次通过图形界面安装tuxedo时,在其他目录产生了一些文件,不知道是不是有干扰,于是决定删除tuxedo重装,没想到确实是这个问题,重装后运行成功。这个错误在google里只发现一个链接,看来不应该是一个容易出现的问题。

Posted in tuxedo. Tagged with , , .