2013年4月

新手学WEB开发杂记(七)——自动发布及回复微博的实现

    之前一直想写一个自动发博机,可以每隔一段时间自动发布一条微博。但是由于新浪微博API的使用需要access_token,而该token的获取需登录进行授权,而模拟登录的代码一直没想出来怎么写,计划就搁浅了。
 
    后来在sae开发者社区提出该问题后,有人说开发者自己的账号对自己创建的应用的授权是没有过期时间限制的,并向我推荐了这篇文章 http://cloudbbs.org/forum.php?mod=viewthread&tid=13391  该文章详细地讲解了如何从零开始创建一款带有回粉功能的求天气应用,即:用户发微博 城市名@求天气 ,一分钟内@求天气 微博号会自动给用户评论他所查询的城市天气。并且提供了源码的下载,推荐有兴趣创建一个自动发博机的初级开发者看一看。
    需要注意的一点是,该代码中的memcache缓存时间设置为600秒,若你设置的cron大于600秒则需要将缓存时间改大,否则会发生重复评论的问题。
 
    这是我写的自动发博机微博账号:http://weibo.com/u/3270877203 (兵库北小姐,我是香菜厨发自真心)。
 
 

新手学WEB开发杂记(六)——透明边框的实现

  现在网页布局中使用弹出层的十分多,jquery弹出层插件也一抓一大把,其中一部分弹出层有漂亮的透明边框,而透明边框的实现方法各不相同,主要有一下几类:
  一是将每一边的边框作为一个div来处理,设置背景色和透明度,一种方便些,直接在弹出层下方设置一个比弹出层大一圈的div,设置成透明。这两种都要添加额外的div和写相当多的css。
  实际上在css3中有一种方法是最简单的,即#lightbox { background: white; border: 20px solid rgba(0,0,0,0.3); } , 但是这样写有一个问题,即弹出层背景色会一直扩散到边框上,所以在css中需加一条 background-clip: padding-box; 
详见此文:http://www.yangzblog.com/DIV-CSS/transparentBorder.html 
 
 

新手学WEB开发杂记(五)——网页时间轴布局的实现

   近年来各种新式的网页布局层出不穷,很多美观的布局格式都开始渐渐流行起来,想要设计一个美观实用又迎合潮流的网站就必须对这些布局有所了解。
  我这几天在写的一个网页在设计时觉得采用时间轴布局比较合适,但苦于一直没有找到比较仔细的时间轴布局教程,所以本想放弃,谁知得来全不费工夫,在w3cplus上找到了一篇详细介绍实现时间轴布局的文章:http://www.w3cplus.com/jquery/facebook-timeline-design-using-jquery 
  在读完文章之后发现,实际上时间轴布局还是属于瀑布流布局的,只不过它是一种特殊的瀑布流,即双栏绝对定位瀑布流,布局时添加时间线相关部分即可。
 
 

PHP解析雅虎天气API代码分享

    雅虎天气API地址: http://weather.yahooapis.com/forecastrss
    有两个可选参数w和u,其中w参数是基于WOEID的城市代码,可以在网上根据城市英文名查到,u参数是设置返回数据中的摄氏和华氏(c为摄氏,f为华氏)。
    实际请求地址如:http://weather.yahooapis.com/forecastrss?w=15015432&u=c 
    返回数据为xml格式,含有命名空间,无法使用simpleXML处理,这次分享的代码就是使用XMLReader和DOMDocument来处理该数据(获取返回数据中的天气状况代码、温度及湿度值)。
    首先是使用XMLReader时的代码:
[php]$url = 'http://weather.yahooapis.com/forecastrss?w=15015432&u=c';
$reader = new XMLReader();
$reader->open($url,'utf-8');
while($reader->read()){
if($reader->name == 'yweather:condition'){
$code = $reader->getAttribute('code'); //获取天气代码
$temp = $reader->getAttribute('temp'); //获取温度
}
if($reader->name == 'yweather:atmosphere'){
$humi = $reader->getAttribute('humidity'); //获取湿度
}
}[/php]

 然后是使用DOMDocument处理的代码:
[php]$url = 'http://weather.yahooapis.com/forecastrss?w=15015432&u=c';
$yweather = "http://xml.weather.yahoo.com/ns/rss/1.0"; //命名空间
$res = new DOMDocument();
$res->load($url);

$node = $res->getElementsByTagNameNS($yweather, 'atmosphere');
$humi = $node->item(0)->attributes->item(0)->nodeValue; //获取湿度
$node = $res->getElementsByTagNameNS($yweather, 'condition');
$code = $node->item(0)->attributes->item(1)->nodeValue; //获取天气代码
$temp = $node->item(0)->attributes->item(2)->nodeValue; //获取温度[/php]
 最后我们要将数字格式的天气代码转换成相应的中文:
[php]function code2char($code){
switch($code){
case 0:
return '龙卷风';
case 1:
return '热带风暴';
case 2:
return '暴风';
case 3:
return '大雷雨';
case 4:
return '雷阵雨';
case 5:
return '雨夹雪';
case 6:
return '雨夹雹';
case 7:
return '雪夹雹';
case 8:
return '冻雾雨';
case 9:
return '细雨';
case 10:
return '冻雨';
case 11:
return '阵雨';
case 12:
return '阵雨';
case 13:
return '阵雪';
case 14:
return '小阵雪';
case 15:
return '高吹雪';
case 16:
return '雪';
case 17:
return '冰雹';
case 18:
return '雨淞';
case 19:
return '粉尘';
case 20:
return '雾';
case 21:
return '薄雾';
case 22:
return '烟雾';
case 23:
return '大风';
case 24:
return '风';
case 25:
return '冷';
case 26:
return '阴';
case 27:
return '多云';
case 28:
return '多云';
case 29:
return '局部多云';
case 30:
return '局部多云';
case 31:
return '晴';
case 32:
return '晴';
case 33:
return '转晴';
case 34:
return '转晴';
case 35:
return '雨夹冰雹';
case 36:
return '热';
case 37:
return '局部雷雨';
case 38:
return '偶有雷雨';
case 39:
return '偶有雷雨';
case 40:
return '偶有阵雨';
case 41:
return '大雪';
case 42:
return '零星阵雪';
case 43:
return '大雪';
case 44:
return '局部多云';
case 45:
return '雷阵雨';
case 46:
return '阵雪';
case 47:
return '局部雷阵雨';
default:
return '水深火热';
}[/php]

电脑拆机清灰记录(emachines D730)

    本本用了有两年多了,最近连在网上看个视频都卡得要死,机身温度十分高,估摸着散热口被灰堵住了。虽然之前就一直想拆,但苦于键盘拆起来比较麻烦,本本的型号还比较少见(emachines D730),根本找不到拆机教程,就一直拖着,但现在看个视频死好几次机终于让我忍不住了。
    由于用的手机也比较挫,就没有拍拆机的照片,就文字回忆一下吧。
    因为这个型号的键盘左右两边各有两个卡扣,而且是固定卡扣不是活动卡扣,拆起来比较麻烦,所以我直接用刀把卡扣给切了= =b。键盘拆下来后就是拆后盖,需要注意的是,把光驱拆下来后,会露出两颗原本被光驱遮住的螺丝,我因为拆的时候没经验,所以把这个地方的横条给搞段了。
    还有就是硬盘是可以直接拿下来的,我一开始以为是卡住的,结果翻面的时候硬盘直接掉下来了,摔到地上,吓了我一大跳,还以为会坏掉,好在有惊无险,以后一定要注意备份数据了。
    接下来拆主板什么的就很容易了,最后把风扇拆下来后发现散热口积了一层近两毫米厚的絮状灰尘,堵得严严实实,风扇叶片上面也都厚厚的一层灰。真是相当严重呐,怪不得平时只要有20%左右的cpu占用率,电脑就卡的不行。
    除灰后顺利装好开机了,开机用了三分钟,看来硬盘摔了一下果然是有影响的,不过第二次开机就快了很多,使用过程中也没发现什么明显的问题,硬盘大概也不是想象中那么脆弱吧。去B站开了几个视频看了一下,本本终于不烫了,连散热口出来的风也不热,看来清灰的效果果然不错啊。终于不用再忍受令人崩溃的死机了,爽!