公司组织了这个培训课程,聘用专业培训师郑勇先生,为三十名新员工授课。这是我上大学到工作这几年来,听过的最精彩的课,连续听两天还是饶有兴趣,意犹未尽。新东方的课程我没有上过,但是我想,在场面和效用上不会亚于新东方名师的课程。
融入团队包括几个方面:职业意识与企业目标,建立良好职业形象,将任务转化为工作目标及与各层级同事有效沟通。课程最后还有一个并不是这个主题,管理好压力平衡事业与生活。我作为一名技术人员,对此有一点感触。一个很少在和人的交流上下功夫的技术人员,不是一个合格的、合群的技术人员,现在是“后工业时代”,一个完整的任务仅由一个人完成的实例太少了,大多数情况需要团队协作。公司安排培训,其实是花小钱、培训费,省大钱、降低生产成本中的沟通成本。对个人来说,其实真的是对个人的成长非常有利,有些人对这类培训是抵触态度的,那也要具体看是什么培训,是谁讲吧。
如果有空,我会慢慢把课程写下来,既当作温习,也当作警醒。
近日,笔记本(Windows Server 2003 sp1)不能连接网络打印机进行打印,开机提示有一个或多个服务未能启动。打开服务列表一看,Server服务和Computer Browser服务都未能成功进行自动启动,后者依赖于前者并且是使用网络打印机的关键服务之一。试图启动Server服务,提示“错误998 内存分配无法访问”。
google了一下,发现有人提到是svrsrc.dll文件有问题,联想到前几天我在使用360进行系统检查时发现该文件有问题,便修复了一下,谁知是这结果。于是只好去找看看哪里有这个文件的下载。网上能搜到的都是xp sp2的,没敢下下来替换我这台2003的。最后只好把源盘找出来,提取出srvsvc.dll这个文件,虽然版本不是SP1的,不过使用起来一切正常。覆盖掉C:\Windows\system32下的同名文件后一切顺利。下载srvsvc.dll
小技巧:源盘中的dll都是.dl_,使用expand命令解压,如:
expand srvsvc.dl_ srvsvc.dll
即可获得srvsvc.dll文件
近来申办了一张华夏银行信用卡,据说,该行与德意志银行签署长期战略协议,在信用卡方面应用了德意志银行的经验,因此感觉是不错的。另外,它的填表送了一条大浴巾,开卡三个月刷三笔每笔满88元即可获赠一个双人帐篷或者一套工具或者一个旅行包。按照惯例填写了申请表,等了一个多月,拿到了这张金卡,额度1w元。卡面是暗金色,也很简洁,只有简单的浅黄色条纹。上面有银联和MasterCard的标识。背面就和招行的金卡背面差不多了。
开卡的时候才发现,这个小银行只有个400电话,跟招行的800比起来差太多了,打人工座席一直忙。开卡还必须用填的家庭座机电话或者手机拨打。我用手机打的,花了5毛钱开了卡并设置了查询密码。网上银行还登不进去,页面都打不开。晚上8点左右再次尝试打开页面,这次登入成功,遍历了一遍所有的功能,发现这么一项交易通知设定
提示: 交易通知设定可设置您接收交易信息通知的方式和最低通知金额。您可以选择使用或取消以下通知方式,选择使用则将选项框点击为“√”,取消则将选项框点击为空;人民币或美元最低交易金额设置为零,则表示该币种每笔交易都要求通知。此项服务为收费项目,收费标准为每月人民币1.5元/户。
默认是勾着的,而且人民币和美元的交易金额都是0,这意味着,在默认状况下,我每次刷卡都会收到他的通知,并且每月手机账户被扣1.5,真是太恶心了。招行在这方面比华夏大方多了,网上交易和大额刷卡交易都会发短信通知到手机,并且从来不收手机费。
如此,计划在获得刷三笔的奖品后即注销该卡,还是继续做招行的忠实客户吧。
Channelinsider报道,根据一项CareerBulder做的调查,有34%的美国IT工作者表示他们现在的工作让他们的体重增加了10磅以上。
这项研究从2月11日开始收集了7700名IT工作者的资料,除了34%表示他们胖了10磅之外,还有17%表示他们胖了20磅以上。
其中远程服务管理技术的发展是造成这一情形的一大罪魁,现在IT部门的人整天盯着电脑屏幕就可以解决问题了,不再需要跑去服务器和客户那里。IT员工的饮食也很不好,根据调查,41%的IT员工每周至少要上两次馆子,吃一些高卡路里的食物。
不过也不要太怨天尤人,CareerBuilder的另一项调查显示,53%的金融业者和52%的政府工作人员认为现在的工作让他们变胖了……
今天按照计划正常出发去健身,走之前看了一下天气预报,19~31摄氏度,夏天光临北京城。健身结束出来的时候穿着短裤背心就出来了,太阳晒得胳膊疼,看看马路上没什么人,赶紧脱了背心换上来时候穿的长袖T恤,其间,露点+裸体 超过1秒钟。
防晒都该准备好啦。大街上的女孩子大都打着伞,穿得很清凉。我也把短衣裤都准备好。
晚上下班以后,在公司多干了一会儿,因为最近地震很多地方都缺干活的人手。部门经理打电话叫了一个同事回来。大约八点半准备走的时候,看到他急匆匆地赶回来了。我和他开玩笑说明天早晨见,也许,真的就明天早晨见到他出门回家了。
晚上在家上网的时候,看到一些同事做的灾区寻人系统和指示救灾物资缺乏的系统已经上线。
我也在赶我做的一个东西,这周要送测,眼睛很累。
昨天试用了一下google企业套件,起因是购买的这个域名stadin.info,想找一个免费的企业邮箱,用上@stadin.info这样的后缀。sogou之前的免费企业邮局已经不接受新的申请了,我有一个@stadin.info托管在他那,感觉垃圾邮件什么过滤还可以。后来也用过hotmail的企业邮局,用起来倒是满方便的,微软在用户体验方面做得很好。不足的地方在于,它的速度总是不够理想。通过搜索,发现google的企业套件也不错,于是就打算申请试试。
google的企业套件(http://www.google.com/a/)有几种形式的所谓套餐,免费的,也就是我现在申请来用的,是小企业标准版,支持500人以下。申请的时候我填写的100人,我想这我都用不了。申请开始后,填了一些基本的信息,它要求用户最好是域(其实就是将使用的域名)管理员,在后续的操作中,我们可以看到,如果无法配置域名的DNS解析,特别是MX解析,根本就无法使用企业套件。虽然是中文的界面,但是选择中国根本就无法进入下一步操作。所以,我选择了美国,它还要求一个合法的美国电话号码,这个在它提示你输入的电话号码是错误的时候就给举了一个正确的例子,此时修改一下这个例子中最后几位的号码就能通过它的验证了。
再下一步操作是要求更改CNAME或者在主机放置一个html文件以验证你是这个域的合法管理者。我选择修改CNAME,它提供了在各个主要域名注册商修改CNMAE的方法,我看到的默认选择就是godaddy,猜测google已经分析出我这个域名注册于在godaddy,所以把这个帮助信息作为默认提供给我。我很顺利地通过了它的这个验证。
配置邮件服务的时候,需要修改MX记录,google提供了5个MX记录优先级从10-50,我按照要求全部填写完成后,它提示说最多需要48小时通过所有的服务,实际上大约不到半小时,我就可以使用@stadin.info的邮箱发送和接收邮件了。
google企业套件在使用中和gmail、google文档等都完全相同,只是域换成了你自己的域名。对于小企业或者小团体来说真是非常方便。大于500人或者需要20GB邮箱的用户,可以去申请$50/year的企业专业版。google在页面上还表示可以帮助用户注册和管理域名,合作方是eNom,$10/year,google可以自动帮助用户配置该域名的解析。
注:本文草稿完成于2008年5月18日D544列车运行至廊坊前后。
目的是通过主机上的cron,定时抓取RSS,解析,写如Discuz的文章数据库,实现转帖。
本质上这是两个事情,一个是读取RSS,一个是将文章写入Discuz的数据库。因为是测试程序,还有一些问题,读取RSS的部分暂时没有封装。
读取RSS的部分很简单,通过使用DomDocument的loadXML方法,加载一个file_get_contents函数取回来的网络上的XML文档,然后就是解析。错误处理部分没有写,比如如果读取源失败。源码见下。
- < ?php
- $time = time();
- $dom = new DOMDocument();
- $dom->loadXML(file_get_contents('http://rss.sina.com.cn/news/china/focus15.xml'));
- require_once("dzclass.php");
- $dz = new discuz_hack_post();
- $fid = 41;
- foreach($dom->getElementsByTagName("item") as $x)
- {
- $pubDate = strtotime(trim($x->getElementsByTagName("pubDate")->item(0)->nodeValue));
- if(($time-$pubDate)>3600){continue;}
- $title = "[新浪]".trim($x->getElementsByTagName("title")->item(0)->nodeValue);
- $content = trim($x->getElementsByTagName("description")->item(0)->nodeValue);
- $link = $x->getElementsByTagName("link")->item(0)->nodeValue;
- $dz->addpost($fid ,$title ,$content."\n 【原文链接: ".$link."】");
- }
- ?>
其中调用了discuz_hack_post类的addpost方法,用于向某个版块新增一条主题。
这个方法比较简略,根据DZ6.1.0的源代码(newthread.inc.php),我们可以看到,它首先检验了权限,然后向threads表中插入一条数据,这个表记录的是主题,用于主题列表页面显示。插入后获得$tid(thread的id)。REPLACE INTO {$tablepre}subscriptions和REPLACE INTO {$tablepre}mythreads大概是更新个人发文数据,对我来说不是很重要。{$tablepre}posts中记录这个主题的内容,这个SQL附近还包括一些Discuz代码的转换功能。最后还更新了版面文章统计之类的数据。我在下面这段代码中,只简略地更新了存储数据的threads和posts表,并且没有对错误进行处理。
比较关键的是mysql_query(“SET NAMES ‘utf8′”,$this->_db);
在godaddy主机上必须设置MySQL连接采取UTF-8编码,才能正确地传送UTF-8编码的中文字符。
- < ?php
- class discuz_hack_post
- {
- function __construct()
- {
- require_once("../config.inc.php");//包含了数据库连接的参数
- $this->_db = mysql_connect($dbhost, $dbuser,$dbpw);
- mysql_select_db($dbname,$this->_db);
- mysql_query("SET NAMES 'utf8'",$this->_db);
- }
- function addpost($fid ,$title ,$content, $authorid=131, $author="WideBBS")
- {//$fid:板面号;$authorid:发文者的uid;$author:发文者名字
- $sql = "INSERT INTO `cdb_threads` ( `fid`, `iconid`, `typeid`, `readperm`, `price`, `author`, `authorid`, `subject`, `dateline`, `lastpost`, `lastposter`, `views`, `replies`, `displayorder`, `highlight`, `digest`, `rate`, `blog`, `special`, `attachment`, `subscribed`, `moderated`, `closed`, `itemid`, `supe_pushstatus`) VALUES ( $fid, 0, 0, 0, 0, '$author', $authorid, '$title', ".$_SERVER["REQUEST_TIME"].", ".$_SERVER["REQUEST_TIME"].", '$author', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)";
- mysql_query($sql,$this->_db);
- $tid = mysql_insert_id($this->_db);
- $sql = "INSERT INTO `cdb_posts` ( `fid`, `tid`, `first`, `author`, `authorid`, `subject`, `dateline`, `message`, `useip`, `invisible`, `anonymous`, `usesig`, `htmlon`, `bbcodeoff`, `smileyoff`, `parseurloff`, `attachment`, `rate`, `ratetimes`, `status`) VALUES( $fid, $tid,1, '$author', $authorid, '$title', ".$_SERVER["REQUEST_TIME"].", '$content', '127.0.0.1', 0, 0, 1, 0, -1, -1, 0, 0, 0, 0, 0)";
- mysql_query($sql,$this->_db);
- $pid = mysql_insert_id($this->_db);
- }
- }
- ?>
效果参见http://www.widebbs.com/forum-41-1.html。我会对这两个模块继续完善,争取做一个方便易用的通用插件。
引用:http://www.ccvita.com/302.html
1.使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里。这种方法把存储空间降到了接近四分之一(char(15) 的 15 个字节对整形的 4 个字节),计算一个特定的地址是不是在一个区段内页更简单了,而且加快了搜索和排序的速度(虽然有时仅仅是快了一点)。
2.在验证 email 地址的时候使用 checkdnsrr() 函数验证域名是否存在。这个内置函数能够确认指定的域名能够解析成 IP 地址。该函数的PHP 文档的用户评论部分有一个简单的用户自定义函数,这个函数基于 checkdnsrr(),用来验证 email 地址的合法性。对于那些认为自己的 email 地址是 “joeuser@wwwphp.net” 而不是 “joeuser@php.net” 的家伙们,这个方法可以很方便的抓住他们。
3.如果你使用的是 PHP 5 和 MySQL 4.1 或者更高的版本,考虑抛弃 mysql_* 系列函数改用改进版的 mysqli_* 系列函数。一个很好的功能就是你可以使用预处理语句,如果你在维护一个数据库密集型站点,这个功能能够加快查询速度。一些评估分数。
4.学会爱上三元运算符。
5.如果你在项目中感觉到有可复用的部分,在你写下一行代码前先看看 PEAR 中是否已经有了。很多 PHP 程序员都知道 PEAR 是一个很好的资源库,虽然还有很多程序员不知道。这个在线资源库包含了超过 400 个可以复用的程序片段,这些程序片段你可以立即用刀你的程序里。除非说你的项目真的是非常特别的,你总能找到帮你节省时间的 PEAR 包。(参见 PECL)
6.用 highlight_file() 来自动的打印出格式化的很漂亮的源代码。如果你在留言板、IRC 这些地方寻求一个脚本的帮助的话,这个函数用起来非常的顺手。当然了,要小心不要意外的泄露出你的数据库连接信息和密码等。
7.使用 error_reporting(0) 函数来防止用户看到潜在的敏感错误信息。]在理想情况下,发布服务器应该在 php.ini 里完全禁止。但是如果你用的是一个共享的 web 服务器的话,你没有自己的 php.ini 文件,那么这种情况下你最好的选择就是在所有脚本的第一行前加上 error_reporting(0);(或者使用 require_once() 方法)。这就能够在出错的时候完全屏蔽敏感的 SQL 查询语句和路径名。
8.在网数据库中存储很大的字符串之前使用 gzcompress() 和 gzuncompress() 来显式的压缩/解压字符串。这个 PHP 内置函数使用 gzip 算法,可以压缩普通文本达 90%。在我每次要读写 BLOB 类型的字段的时候都使用这些函数。唯一额例外就是当我需要全文检索的时候。
9.通过“引用”传递参数的方法从一个函数中得到多个返回值。就像三元运算符一样,大部分受过正式编程训练的程序员都知道这个技巧。但是那些 HTML 背景大于 Pascal 背景的程序员都或多或少的有过这样的疑问“在仅能使用一次 return 的情况下,从一个函数里返回多个值?”答案就是在变量前加上一个 “&” 符号,通过“引用”传递而非“值”传递。
10.完全理解“魔术引号”和 SQL 注入的危险性。我希望阅读到这里的开发者都已经很对 SQL 注入和了解了。不过我还是把这条列在这里,是因为这个确实有点难以理解。如果你还没有听说过这种说法,那么把今天剩下的时间都用来 Google、阅读吧。
阅读了几个IBM的文档,深刻的体会到这种免责声明是多么晦涩。以下引用自一段代码的免责声明,它的本意是IBM对此文档中的样本代码不负责,但是IBM为了体现它的严谨,从各个角度进行描述,于是就有了这么一大段:
本文包含样本代码。IBM 授予您(”被许可方”)使用这个样本代码的非专有的、版权免费的许可证。然而,该样本代码是以”按现状”的基础提供的,没有任何形式的(不论是明示的,还是默示的)保证,包括对适销性、适用于特定用途或非侵权性的默示保证。IBM 及其许可方不对被许可方由于使用该软件所导致的任何损失负责。任何情况下,无论损失是如何发生的,也不管责任条款怎样,IBM 或其许可方都不对由使用该软件或不能使用该软件所引起的收入的减少、利润的损失或数据的丢失,或者直接的、间接的、特殊的、由此产生的、附带的损失或惩罚性的损失赔偿负责,即使 IBM 已经被明确告知此类损害的可能性,也是如此。
不知道这段文字是不是具有IBM的版权呢?
下班后直奔浩沙,可能因为下午上了一场雨,晚上动感单车教室里都没满员,于是我加入进去凑凑热闹。教练mm不是很pp,但是身材很好,一看就是健美出身的,瘦瘦高高,皮下脂肪很少,一用力就能看到肌肉的形状。肚皮也能看到腹肌,还有热裤下修长的双腿……嗯,不能再顺着写下去了,打住。
按照我回忆得起来的顺序,先是做准备活动,伸展胳膊、肩、腹、背的肌肉,然后蹬车速度由慢到快,每个阶段两支舞曲,随着节奏蹬车。第一个阶段下来我就已经全身大汗了。最快的那个节奏我跟不上,教练那两条长腿蹬得飞快。最后放松也是把紧张的肌肉拉开。
走出教室的时候一身大汗,痛快淋漓。美中不足是洗澡水不热,洗澡没洗舒服。
今天向一同事求教他写的Sugguest对象(在输入框输入过程中,出现提示)使用方法以便借来在我的项目中使用,暂且称为同事A。嵌入我的模板页面后发现有三个问题:1.在FF下辅助选择框下半部被遮住;2.在IE下不能正确安置在input框下面;3.在IE6下会使旁边的对象被隐藏。
为了解决问题1,因为我不能去修改设计部门确定的模板,因此去找模板的设计者,暂且称为同事B。同事B看了问题1之后迅速指出该层具有overflow:hidden属性,去掉就好了。我想,这一方面是他自己设计的模板,另一方面也是我对这种浮动层在FF下被遮住没有解决方案的经验。之前我确实是不知道这样会造成FF下浮动层被遮挡。
为了解决问题2,我去咨询同事A,我提出的要素是浮动框不能正确地计算好input框的高度,他迅速指出如果我对一个隐藏的层绑定sugguest时候,suggguest对象不能正确得知input框的高度。事实上,隐藏对象不能正确得到高和宽的属性这件事我是知道的,但是为什么就想不起来呢?
为了解决问题3,我再一次咨询了同事A,同事A指出某参数数组的第12个值默认为true,修改为false即可。
由问题1,我可以得出结论,HTML功底(包括CSS)我还要向牛人学习。
由问题2,得出结论,有些事情其实谁都知道,紧要关头还能想得起来的,就是牛人。
由问题3,得出一个和本文主题没有太大关系的结论,最了解孩子的还是他爹妈。
周六一天吃了小半只烤鸭,周日吃了两个苹果,随后去健身房锻炼了70分钟。晚上回家吃了一块奥利奥威化饼干。周一中午要了两个小碗菜,平时也就将将饱的程度,竟然最后吃撑了,看来胃容积确实是在缩小,摄入下降配以健身房锻炼看来是很有效果的,小肚子明显比以前小多了。下班后吃了张小饼加一杯大果粒酸奶和一根黄瓜。最近摄入的热量比原来低多了。要长期坚持,嘴馋是不好的,是不好的,是不好的。。。
晃晃悠悠了老半天。我竟然还这么镇定地写博客。
很多人已经走到楼外面去了。
据说大厦在疏散,不过还没有正式消息。
但愿这不是我的最后一篇博客,哈哈。
MSN上北京的朋友们的签名都和“地震”有关。
另据最新消息,天津、兰州、长沙、上海、海南都有震感,四川据说震动比较大。
行政部门已经来建议疏散了。
大盘下跌。
距离成都92km处发生7.8级地震。见图

刚才升级Wordpress到2.5.1中文版。推荐先禁用所有插件。然后把所有文件都覆盖上传到对应目录,执行/wp-admin/upgrade.php就好了,一切没有障碍。
btw,Akismet 现在不撞墙(GFW)了,放心使用吧,嘿嘿。
管理平台也显得好看了许多。使用更方便,增加了原生的标签,可是我之前所有的文章都没有标签,甚至懒得去分类-_=
旧的模板没有了,因为遭到覆盖。新增加的是widget,我把计数器和订阅放在了两个文本widget中,这样就不再依赖对模板的直接修改。
今天又跑去健身了。在面对游泳池的一台跑步机上跑了40分钟,俯瞰泳装mm们的蛙泳,很不错。随后旁边来了个wsn,一种半个月没洗澡的气味把我熏下来了。到健身房的另一头上了了另一台跑步机,跑了一会儿注意到旁边有个身材美女,就下来到后面的自行车机器上继续蹬车顺便欣赏美女跑步。虽然只是背影……总的来说身材好的mm还是很多的,过过眼瘾也不错。
总共锻炼了80分钟,回来腿比较疼。似乎消耗了500多卡路里的热量。一根59克的士力架热量是2000焦耳。google说:
2 000焦耳 = 478.011472 卡路里
这饮食控制看起来相当重要啊,馋嘴吃一条士力架就要跑一个小时才能消耗掉,皑皑,减肥容易么。
迁移的同时更换了一下域名(从stadin.info到stadin.info)。这次是在godaddy.com购买的,我非常满意,决定在他家永久续费。
请使用新的域名 http://www.stadin.info/ 来访问或收藏本站,stadin.info将另有他用。
迁移的几个步骤我列在这里
1.从原服务器备份文件和数据库,上传到新服务器,数据库导入新站
2.wp_options表里有option_name值为siteurl的一行,必须手动修改它的option_value为新域名
3.在数据库执行 update `wp_posts` set `post_content`=replace( `post_content`, ‘stadin.info’,'stadin.info’); 用于将原来文件中指向旧域名的内容直接指向新域名
3.配置新域名指向新的服务器,这时,文件和数据库的迁移就完成了
4.为了老用户和搜索引擎,需要在原服务器修改wp_config.php(修改这个文件是因为每个文件都包含了它)
在最前面增加如下一段。
if($_SERVER["SCRIPT_NAME"]==”/index.php”){$a=”";}else{$a=$_SERVER["SCRIPT_NAME"];}
header(“location:http://www.stadin.info”.$a.$_SERVER["REQUEST_URI"]);
exit;
上面这段代码的意思是,如果被访问的文件是/index.php,就不需要配置被访问文件名,否则记录下
然后使用输出http头302跳转到新域名的该文件名和对应参数
退出
对于用户来说,应该还是使用js脚本跳转更友好一些,可以提示用户修改连入链接。302是悄悄地跳转,不做任何提示,对搜索引擎比较友好。
5.别忘了提示用户修改你的RSS订阅地址。我使用了feedsky.com的feed代理,订阅地址仍然是 http://feed.feedsky.com/cityguest
但是有些用户可能订阅的是 feed.stadin.info,对此我就没有办法了……
没有饥饿,没有孤独,没有压力的生活,如天堂一般啊!
工资跟项目挂钩,动力和压力就变成了同一回事。
孤独的感觉消失不掉。
减肥太需要毅力了!
生活太不美好了!
问题又回到最初,为什么要赚钱。
唠叨归唠叨,该干啥还得干啥,不是么。



近期评论