Feed on
Posts
Comments

Category Archive for '我是程序员'

启用Linode,靠谱的VPS

随着网上议论纷纷Linode新增日本机房,博主手发痒,马上录入了信用卡信息,启用了停了将近半年的Linode。 果然速度够给力!果然VPS的魅力还是这么十足! Ping了下ip,大概在100ms左右,实地测试访问速度也非常理想。选择wdlinux套件来配置环境,非常顺畅。大家访问本博顺畅不?请麻烦测试并回复告知。 如果你正在考虑购置一台VPS,要求稳定、无需备案、售后服务优质、后台成熟的VPS主机商,强烈推荐你使用Linode。512的套餐价格是20美金一个月,如果你不只是放置一个个人博客的话,还是非常值得的。 SSH账号、VPN账号、SVN服务器等等附加价值都可以在VPS上亲手获得。 此外,推荐注册地址为:Linode

Read Full Post »

Discuz X2推出了云平台,也正式开放了令人心动的QQ互联(QQ登录)。但是当你兴奋积极地开启了QQ互联功能时,你是否有意识到你正在一步步走向腾讯和康盛联合设下的陷阱呢? 直接开门见山: QQ互联与腾讯开放平台的QQ登录是有区别的 QQ互联的注册环节没有密码设定 绝大部分通过QQ互联注册的用户是不会再去设定他的密码的 很大一部分绑定QQ账号的用户(设定了密码的),也可能已经忘记了它的密码 最关键的是作为站长的你,剥离QQ的情况下,无法来保证大部分用户都能正常登录 太恐怖了! 但是这个功能不用,也是怪可惜了。大部分用户是不清楚这些危害的,你公司的老板也可能不清楚。所以只需要稍微改下代码,稍微减弱些用户体验,你就能保证用户资料的独立性——在QQ互联注册环节强制要求用户设定密码。 操作: 1. 打开文件source/plugin/qqconnect/template/module.htm (1) 查找 $(‘{$_G['setting']['reginput']['password']}’).parentNode.parentNode.parentNode.parentNode.parentNode.style.display = ‘none’; $(‘{$_G['setting']['reginput']['password']}’).outerHTML += ‘$js1′; $(‘{$_G['setting']['reginput']['password']}’).required = 0; $(‘{$_G['setting']['reginput']['password2']}’).parentNode.parentNode.parentNode.parentNode.parentNode.style.display = ‘none’; $(‘{$_G['setting']['reginput']['password2']}’).required = 0; 修改成 //$(‘{$_G['setting']['reginput']['password']}’).parentNode.parentNode.parentNode.parentNode.parentNode.style.display = ‘none’; $(‘{$_G['setting']['reginput']['username']}’).outerHTML += ‘$js1′; $(‘{$_G['setting']['reginput']['password']}’).required = 1; //$(‘{$_G['setting']['reginput']['password2']}’).parentNode.parentNode.parentNode.parentNode.parentNode.style.display = ‘none’; $(‘{$_G['setting']['reginput']['password2']}’).required = 1; 2 打开文件 source/module/member/member_connect.php 查找 $ctl_obj->setting['ignorepassword'] = 1; 将它注释掉,或者删除 3 [...]

Read Full Post »

国外团购信息的抓取

因缘巧合,碰到一个加拿大人,硬是想做一个基于方维系统的yipit。但是国外团购站都没有什么统一的API,所以抓取团购信息成为了一个难题。在Quora、Stack Overflow上都搜了一遍,其他人基本都是靠硬采集的方式(还有RSS)来进行,没有一种便捷的方案。 仔细研究了一番,做了一个demo版的蜘蛛,只做了groupon.ca的抓取。 第一步首先抓取groupon的rss,获取最新团购信息的几个简单参数。 第二部就是通过rss中抓取的团购信息链接,去硬采集其他详细信息。 不直接进行第二步原因主要是因为rss的输出相对稳定,结构单一,所以其实第一步就是一个团购信息的索引。 蜘蛛演示:http://www.ohdealio.com/ (加拿大哥们的半成品站)

Read Full Post »

宁波团购大全采用方维团购导航程序,之前一直通过手动执行php脚本进行采集入库,然后手动更新商品缓存,每天执行1~2次。这样会造成两个问题,其一是手动执行非常耗费精力,其二就是无法做到最新商品信息的采集,以及团购商品购买数量上的状态更新。 于是,周末花了大半天时间实现了定时钟自动采集入库的方案。大体流程上没有什么问题,就是屏蔽了原先通过跳转页面进行采集的跳转过程和输出过程,全部统一为记录生成采集日志。服务器是CentOS,直接设置一个定时钟来定期运行下上面的脚本。 实现过程中碰到两个比较棘手的问题:首先,跑采集时发现500内部错误,具体原因是执行超时,环境上有相关限制。 1. 脚本上做了相应的延长 ini_set(‘max_execution_time’, 600); ini_set(“memory_limit”, “100M”); 2. fpm的request_slowlog_timeout参数改大点 第二问题,其实也算是脚本执行时间过长。在采集日志中做了每个团购站api采集时间的记录,发现像QQ团购(没有分城市API区分)之类的API特别大,因为把全国所有城市的最新团购信息都提供在里面。采集程序需要远程打开这个大API,去遍历采集本站所需的团购信息。所以这个过程会耗时很长。 没有想到更好的办法前,只能将采集程序分成两个脚本,一个采集中小API的主采集脚本,另一个专门处理大API的辅采集脚本。主采集脚本设定定时钟为每3个小时运行一次,辅脚本设定为每天运行一次。 定时钟的设置也需要考虑下,因为大部分团购站会在凌晨00:00自动发布团购信息,所以主采集脚本定时在00:10为每天的第一次采集,辅采集脚本就定时在00:30进行采集。

Read Full Post »

为了SEO优化,主域名最好设置成统一。如果您使用的web服务器是Nginx,则可通过Nginx伪静态配置来强制将非www的域名转向到www下。 注意if后有空格 if ($host != ‘www.orzcc.com’){ rewrite ^(.*)$ http://www.orzcc.com$1 permanent; }

Read Full Post »

Mac下的Apache环境配置了Vhosts后报错:You don’t have permission to access on this server. 检查Vhosts的目录(或上层目录)是否有Others的x权限 若没有,则通过命令chmod o+x xxxxx来添加上

Read Full Post »

方维团购导航程序自带的只有Apache的伪静态规则,因为服务器上只装了Nginx,所以不可避免地手动转换成Nginx的伪静态规则。 PS:方维的伪静态规则有点很纳闷,就是城市部分的规则,每个城市都有一条。如果系统设置中新增了一条城市数据,就得同时新增一条伪静态规则,不然该城市的页面正常浏览。

Read Full Post »

开启Google+1

WordPress的插件库果然庞大,Google+1刚放出,就有好多插件,安装即可用!Google+1是Gmail级别的产品还是Buzz级别的呢?拭目以待! PS:如果你觉得本文精彩,或者仅仅想体验下Google+1,果断+1吧! ( 看不到的同学请用代理试试)

Read Full Post »

Mac下如何通过SSH翻墙

1. 如果没有SSH账号,想办法搞一个。自己有服务器的可以自己开一个,也可以网上搜一个,也可以买一个… 2. 下载Shimo。Mac自带ssh,Shimo是便于使用ssh的客户端,可设置开机自动启动等等。 Shimo下载:dbank|skydrive 3. Shimo的设置教程参见这位豆油的图文教程。 PS.我这边遇到了问题:新增一个ssh配置时,发现除了PP2P/L2TP之外,包括ssh的选项都是灰色,无法选择。排查后发现原先安装启用了iSSH,系统后台中有ssh进程。杀掉此进程后,配置顺利执行完毕。 现在应该可以顺利地翻墙上网了,不需要了浏览器插件配合,全局自动匹配。 4. 第3步的最后一个操作中的自动代理配置可选择本地新建一个PAC文件,具体参见Livid的PAC & SSH 教程。

Read Full Post »

新入手了一个MBP,那是兴奋。不过马上就遇到Evernote无法同步的问题。 英文错误提示为: Evernote is unable to connect with the Evernote Service. This may be due to a network problem or service maintenance. Please try again later. If enabled, automatic synchronization will resume once the Service becomes available. 一开始以为是被GFW了,不过设了全局代理依然没有解决问题。Google果然是王道,搜到这位大神的解决方案,一下子就解决了。 将文件夹~/Library/Application Support/Evernote 移到桌面(如果资料不重要的话,删掉也一样),再更新即可。程序会自动生成一份新的资料目录。 造成同步失败的原因应该就是资料冲突。 不过又发现Mac下Evernote一个蛋疼的问题,就是无法切换用户,绑得死死的。并且Evernote官方为这个问题还在那扯淡,扯淡请看这里。 假如你真的很想切换用户,就卸载重来一遍吧。卸载方法在这里。

Read Full Post »