2013年5月11日星期六

抓取上海教育考试院的报名信息并短信通知

来源:http://www.niehonglei.info/archives/765.html 由于有过惨痛教训,老是错过重要的考试报名通知,所以这段代码抓取了上海教育考试院的报名页面,分析并发送短信通知相应的考试人员,然后将这个页面放到服务器上,每日定时检查,一有新的报名信息就能及时得知。中间涉及到部分php的知识点 fscoketopen,上一篇已经写过相应的介绍,即可以用其来模拟web service调用,也可以使用其来抓取页面 正则表达式,preg_match,用来提取抓取后页面返回的数据 编码转换iconv,抓取的页面是GBK类型,如果不转换,则在控制台显示乱码。第二个是发送短信的接口,由于我使用的接口是GBK数据,所以我需要再从UTF-8转换到GBK php文件的相关操作函数:file_exists用来判断文件是否已经存在,fopen用来打开文件,fgets用来读取一行,fputs用来写入一行。 数组模拟push方法,使用arr[] = something;的形式 vim 格式化代码 :gg=G vim
批量添加 //注释::10,50s#^#//#g ;批量删除 :10,50s#^//##g 定时的方法使用crontab -e,就可打开定时列表,设置成每天10点通知: 0 10 * * * /path/to/php /path/to/spta.php spta.php function get_spta(){ $content = ”; $fp = fsockopen(‘www.spta.gov.cn’, 80); fwrite($fp, “GET /appendix/wsbm.html HTTP/1.0\r\n”); fwrite($fp, “Host: www.spta.gov.cn\r\n”); fwrite($fp, “Content-Type: text/html; charset=utf-8\r\n”); fwrite($fp, “Content-Length: “.strlen($content).”\r\n”); fwrite($fp, “\r\n”); fwrite($fp, $content); $item = array(); while(!feof($fp)){ $result = iconv(‘GBK’, ‘UTF-8′, fgets($fp)); if(strpos($result, ‘
’) > 0){ preg_match(‘/>([^<]*)</’, $result, $matches); $title = $matches[1]; $url = iconv(‘GBK’, ‘UTF-8′, fgets($fp)); preg_match(‘/href=”([^"]*)”/’, $url, $matches); $url = $matches[1]; $item[] = array(‘title’ => $title, ‘url’ => $url); } } fclose($fp); return $item; } function sent_sms($mobile, $msg){ $vars = “&mobs=$mobile&msg=” . iconv(‘UTF-8′, ‘GBK’, $msg); $fp = fsockopen(‘smsserver.com‘, 80); fwrite($fp, “GET /sms?$vars HTTP/1.0\r\n”); fwrite($fp, “Host: smsserver.com\r\n”); fwrite($fp, “\r\n”); fwrite($fp, $content); fclose($fp); } $items = get_spta(); $title = ”; $path = ‘/path/to/spta’; if(file_exists($path)){ $file = fopen($path, ‘r’); $title = fgets($file); } foreach($items as $bean){ if($title != $bean['title']){ sent_sms(‘your mobile‘, $bean['title'] . ‘[考试院]‘); echo $bean['title'] . “\n”; } else { break; } } $file = fopen($path, ‘w’); fputs($file, $items[0]['title']);

2013年4月13日星期六

关于使用svn的说明

TortoiseSVN使用方法

1、下载TortoiseSVN,地址:http://tortoisesvn.net/downloads.html,根据系统下载相关版本,目前最新版本是1.7.12
2、安装SVN,可选择默认安装(基本下一步就可以了)













关闭提示你关闭的应用,也可以选择下面的不关闭但需要重新启动计算机



3、检出项目,找一个项目文件夹,右击选择SVN Checkout...菜单


4、将项目地址纠风网的地址是( svn://tohours.com/cnjf )填写进去,点击OK


5、输入用户名密码,选择Save authentication保存用户名密码


6、如果密码没什么问题会出现检出的界面,由于我已经将代码上传上去,所以根据网络不同第一次检出可能需要一些时间(我的时间1分26秒)。


7、然后找到对应的目录新增需要上传的文件


8、提交文件:在空白处右击选择SVN Commit...


9、写入注释(这次提交的原因),勾选要提交的文件,点击OK


10、很快可以看到提交成功


11、更新文件,在项目的文件夹右击,选择SVN Update可更新别人提交的代码,好的习惯是在每次提交前都做一次更新,以免冲突


如有其他问题,欢迎邮件咨询

2013年3月14日星期四

git svn更换svn地址的方法

主要有以下几步:

  1. 打开“工程/.git/config”文件,找到其中“[svn-remote "svn"]”将相应地址更换

  2. 将cmd打开,进入到本工程,然后使用git svn fetch命令

  3. 刚开始会直接要求输入密码,如果所给提示用户名是正确的,刚将正确的密码输入即可

  4. 如果所给的用户名不正确,则直接按回车,就会提示输入正确的用户名和正确的密码

  5. 在完成以上操作后,如果在使用git svn dcommit的时候还是出现问题,则需要svn库里面增加新的提交,然后使用git svn fetch取回本地,这样就可以正确识别了

2013年3月4日星期一

为什么不需要

今天差点犯了一个错误,其实我从小对表都有一种特殊的感情,小时候自己拥有的表也不在少数,但真正能够称得上顺手的没有几个,真正称得上贵重的更寥寥无几了。
近段时间,可能是由于马上要参加一个英语考试的原因,再一次让我想起了已经深埋感情底部的对表的情愫,我不可能忘记,也不会忘记,就像一个一直说话的人,虽然经过很长时间不能说话了,但一旦让他接触到文明的环境将一发不可收拾。
这些天一直在网上查询各种表的价格与售后等信息,当然有自己看中的一款Swatch的触屏手表,专卖店的价格是1080,而淘宝上的价格730,便宜了不少,如果买专卖点的,想想亏了350块钱,但如果买淘宝上的,又怕货品不正。其实这种忧郁还是次要的,主要的原因是自己有没有想好自己需要这样一款手表。

有这样一种心情,每次去商店的时候,都会去各种表店看看有没有更合适的手表,就像这次去CK店也是这样,只是看一看,没有其他想法,况且CK的基本都在1500以上,而且淘宝上可能还有更合适的价格。这次也只是路过想看一下而已,但没想到服务员太急于卖出自己的产品了,我一过来基本上给我每只手戴上一只,让我比较一下哪一款比较适合我,好像如果我一确定哪一款更适合我的话,她就会立马反它包装起来,然后让我付款,如果这事放在以前的话,可能我就付钱买了,今天还算比较理智,因为我实在不想花手机近一半的价格买一个并不太实用的手表,于是只好对服务员说了一声抱歉,还想再看一下其他款式,就灰溜溜的出来了。

在过去很长的一段时间我对它是没什么概念的,因为手机的功能已经把时间做成了标准配置,我们并不需要做特别的事情就能把需要的时间取出来,我带手表的目的真的只有一个,那就是看时间,难道你说不是么,既然我们目前有太多的东西可以看时间,并不需要再多一个这样的东西来随身携带,所以一直认为这并不很必要。当然很多人可能会说,他还有另外一个作用:一种身份的象征,但我不觉得完全是这样,况且我也不是一个追求象征的人。我一直奉行后一个观点是,身上尽量少的带东西,比如,前期我在某笔记记录的书上看到建议尽量随身带笔来记录一些东西,开始的时候我还模仿一下这种做法,带一个尽量小巧的笔,但后来,总是忘记,再加上一直带在身上的时候却未能使用,于是就放弃了。这种放弃不应该可惜,因为其有替代性,我带个手机,如果打开记事本,开始记录的时候,比手写在纸上的速度要快很多,完全没有必要在有手机的情况下又带一支笔,再说带笔的时候你还考虑是否再带一张纸?现在的情况下,很多事情并不是当面让你记录很多的东西,而更多的是以邮件提前将问题说明清楚,或者事后将一些要求发到邮箱,大部分都不需要当场记录的。

可以说,现在的手机替代了我们大部分的生活需求,但有些个别的时候却有特殊的限制,比如考试的时候,我们不能带个手机进考场,或者必须要在考试的时候把手机关掉。如坐飞机的时候,现在虽然研究称手机对飞机并没有太大的干扰,但上飞机关手机的禁令并没有被取消,没有被取消我们就要遵守,有时候我在想手机的飞行模式不就是为这而设置的么,后来查了一下,飞行模式也不能根本上杜绝网络,所以最靠谱的做法还是关掉手机。当然以上这同种情况很少发生的我的身上,因为我们参加的考试一般也都是一些电脑上操作的考试,这个时候是有条件给我们显示时间的。我并不是空中飞人,所以坐飞机的时候比较少,就每年一度的旅游可能今年也没办法再次成行。除了这两种情况,我们都可以使用手机完成看时间的目的。

2013年2月27日星期三

慢手机

不知道应该先写自己最近迷上了读书,还是应该先写自己的手机,但我最终的目的是把它们想结合起来。3GS手机到现在已经变的像老牛拉车一样的慢了,如果刚更新完系统还好说,但像我这样喜欢乱装应用的人,就需要更大的耐心去使用它了。嘴上一直说要换个新的,哪怕是一个国产的Android机器,千元以内也能达到双核的标准了,但只是嘴上说说,不可能换的……

慢慢的我才知道,一件东西对你是否有意义不在于这件东西到底有多贵重,而在于你是否一直或者经常使用它,从这个意义上来说,我的手机一直陪伴着我,可谓忠诚。由于最近喜欢读书,一直考虑是否再买一个阅读器类似的东西,这样的好处是明显的,纸质的显示效果,轻便携带,电池而久,哪一样都可以作为一个理由让它来淘汰掉我的3GS手机,但就像我现在的Kindle Fire一样,我真正使用它的时间确是很少,这也是我一直不买iPad的原因(但KF跟iPad的差距还是很大的,特别是近期出来的iPad mini),不能很好的利用KF我就不会很好的利用Kindle,再仔细考虑一下,电纸阅读器仅仅只能取代3GS的阅读功能,其他功能呢?如通话,短信,手机支付,购物,记账,拍照,看视频,随身携带……即使电纸阅读器非常便于携带,但我想我只带手机出门会比只带电纸阅读器出门的概率要大的多,所以也就没买的必要。

手机慢就要比别人早点想到事情,比如到某个地方要找吃的地方,你要先比别人打开大众点评,然后查看附近有什么好吃的,以及有没有相应的优惠,如果要团购的话,你也要先人一步,这样你才能在最终兑换时跟赶的上别人,不然的话,打开个app要一分钟,人家团购早就好了,你只有剩下看的份了。手机慢还体现在不能装过多的插件,现在IOS的优秀插件非常多,我喜欢的一个手势的插件非常好用,可以活动HOME的按键,但由于其支持的环境特别多,在待机,开机,软件打开等各种情况下都有设置,安装到我手机上就像死机一样,使本来已经很慢的机器变得更慢,我也只好放弃

手机慢归慢,但能安装的应用很多,由于到目前为止苹果还一直支持3GS的系统更新,当然我升到5.1.1就先暂停一下了,所以目前的主流软件在我的手机上才能安装,只不过一些特别大型的游戏在我的机器表现在两个方面,要么闪退,要么非常的耗电,这两个方面都是我不能容忍的,好在我不太喜欢玩游戏,主要还是以应用为主。

我是个读书很少的人(教课书除外),以前就对人说,别人在谈论的时候我总是插不上话,并不是我这个人的性格比较闷,而是我实在不理解他们在谈论些什么。这些应该跟我从小的环境与所受的教育有关。一旦遇到我喜欢的话题,我是很难收住的,但这种时候别人不满的眼光就被我给忽略了。又由于“大家”都说要做一个好的听众,所以我在插不上话的时候就做一个忠实的听众,了解了这些信息以后再“道听途说”给其他人听。由于意识到这个缺陷,所以毕业后看“闲书”的时间多了,刚毕业的没几天就把一直没读完的红楼梦给看完了,后来就是网络小说,直到最近才慢慢的关心起文艺小说与一些散文。毕业后开始看书是从我的NOKIA 6120C上面看的(当时那么小的屏幕也能那么津津有味的把红楼看完),所以比较习惯一个小范围阅读,我受不了电脑整个铺开一屏都是密密麻麻的文字,小屏幕上的翻页让我觉得有成就感。而看书的速度也是从慢到快,以前慢是因为不理解,又急于理解,现在的快是大部分能理解,不理解的部分又不想再去深究,草草过去以后如果有用的时候再翻看就行了。

我在这个慢手机上试装了10几款阅读软件,大多数软件都提供强大的功能,但都不能令我满意,目前使用的Apabi Reader算是其中比较适合我的一款软件;我认为选阅读软件有以下几个方面比较重要:1、图书源:在这个方面我只遇到两个软件可以添加图书源,一个是stanza,这个软件大名鼎鼎,应该是iphone上使用比较多的一款软件,但最新版在细节上做的不好,如调整字体的滚动条不能到头,翻页效果太差。另外一个就是正在使用的Apabi Reader。2、图书上传方式,如果不支持在线的源,那图书上传方式一定要方便,如Apabi Reader和Good Reader等软件都支持wifi上传,即,你电脑跟手机在同一wifi下,可以通过网页的形式上传图书到软件里,而QQ阅读则内置了自家的网盘,如果经常使用qq,也是一种不错的选择,不过如果知道使用快盘之类的软件的话,这点可以不用太考虑。3、翻页效果:stanza的翻页效果实在不怎么样,这也是我放弃它的主要原因,我一直想找一款可以上下翻页的软件,就像在浏览器中的那种阅读效果,而这样的软件是有,91阅读,但这款软件太大,非常耗电,不知道后台在执行什么操作,而其提供的网上书城又没什么价值,所以也放弃了。从华丽程度上来说,亿部书城应该是靠前的一款软件,但由于其不支持图书源,书城提供的书价值又不是太大,所以也只能放弃;而选择Apabi Reader的另一个主要原因是其可以自定义字体

慢手机虽然慢,但对于仅仅是阅读来说已经足够了,况且你只有长时间使用它才会觉得出它的价值,只是速度有点慢,又不影响其功能性,所以暂时没有更换的必要

2013年1月31日星期四

谈事情

刚跟王谈了一些项目的事情,但我知道,这种不能立即开始的工作我都不能当真。刚开始的时候,他说有项目有做,我都是先尽量把相关的技术都查找好,以备后面使用,但一个项目做下来,拖了几个月甚至一年,所得又少的可怜,就一遍一遍折磨着我的身心,所以现在我对他说话只当有这个事情,具体到做的时候再开始着手相关技术的研究。

这次的项目主要是发布系统,但最终决定要用的却是java开发,以为这种开发方式会很好,他们不知这会拖累他们的首页,如果中间件处理不好,还会经常出现DOWN机的情况,开发的时间与费用也相应会提高很多。由于我只算是一个开发,也只能建议使用什么技术,最后的决定权还在他们那里。

2013年1月30日星期三

所缺乏的坚持

不知道从GAE到这里算不算一种坚持,因为中间也并没有断开,但已经有相当长一段时间更新博客的频率基本在一月一次了,确实对不起浪费在这里的钱。我虽然没做过成功的人,但通过观察可以了解到,坚持是每个成功人背后应该拥有的基本素质,对自己信念的坚持属于大坚持,保证自己的人生不偏向,对自己近期目标的坚持是小坚持,汇少成多,为自己的成功打基石。整个2012,我所做的事情 并不少,但更多的是停留于表面的现象,却没有最终的坚持。其实从这个方面来看,我的2012能留下来什么?能坚持下来的东西都是比较好的,人生要懂得有取舍,不舍不会有得。舍弃干扰自己正常生活的事情,舍弃一切阻碍自己人生发展的事情,人生虽然不一定需要规划,但只有好好规划的人生才能活的更精彩(听别人说的),相信不相信都由你自己来决定。碌碌无为是一生,忙忙碌碌也是一生,雁过留声,人过留名,所以我们走过的地方要有人能够刻我们,不然白来世上一遭了。

我缺乏坚持表现在很多方面,涉及到知识面广,但坚持下来的知识不多;兴趣比较广,但专业的比较少;看的比较多,记住的比较少;用的比较多,坚持用的比较少。往往得意于一时的所得;时常在想,如果我能把自己知道的哪怕坚持下来一两样,也不至于像现在这个样子。但在这样想的时候,又从身边浪费了好多时间与机会去做一件自己认为正确的事情。

还是有进步的,虽然我不擅长坚持,但零零星星的阅读也让我尝试着写点东西,当然写的任何东西最终也都是给自己看的,但起码可以使自己不要那么轻易的忘记。这也算是坚持下来的一项成果吧