Archive for the ‘开发·以梦为马’ Category

在博客显示我的Twitter记录

星期三, 11月 25th, 2009

写twitter的时候,总有一丝陌生感,一方面来自对饭否的怀念,另一方面来自GFW的阻挡。毕竟,大多数中国人在技术层面上看不到我的twitter。所以心血来潮,在博客上开个页面,用 twitter api 显示我的twitter记录。当然,这样做的前提是,博客要在墙外才行。

大体过程如下:

1.到 http://github.com/jdp/twitterlibphp 下载PHP类库 twitter.lib.php,上传到wordpress的主题路径下。

2.在wordpress的主题里新建一个页面模板,代码如下:

  1. <?php
  2. /*
  3. Template Name: Twitter
  4. */
  5. include(twitter.lib.php);//包含类库
  6.  
  7. $user = username;//twitter账号
  8. $pw = password;//twitter密码
  9.  
  10. $twitter = new Twitter($user,$pw);
  11.  
  12. $statuses = json_decode($twitter->getUserTimeline(array(),json));
  13. //将数据以json格式取出,并用php函数 json_decode 转成对象。其实可以用xml或者rss,但在html中使用的,还是json比较方便。
  14.  
  15. die(print_r($statuses));
  16. //测试一下数据结构,接下来的自己看着办吧。

ASP 链接 Access 客户端的工作过多的错误解决

星期五, 10月 9th, 2009

朋友的 windows2003+IIS 服务器出了问题。所有静态页工作正常,asp+access页面都响应超时,并且出现提示“客户端的工作过多”的80004005错误。

首先排除了代码的问题,IIS也一切正常。接着看了一下IIS日志,多数网站的流量很小,看不出来异常。这时发现HTTPERR没有关闭,随便打开一页,好家伙,全都是某个静态网站下级目录bbs/中的asp程序产生的错误记录,路径大概是bbs/add.asp?keyword=……,而且错误发生概率极高,每秒几条。问题很明显了,是利用程序漏洞的数据库注入。这个网站恰恰主站是静态页,只有这么一个留言程序,所以之前没有注意到,而问题恰恰就发生在这里。去网站目录里看,access已经达到1G了,正常来讲,access一旦超过百兆,就已经承受不了了,可想而知1G的数据库链接导致服务器的ODBC发生错误,是必然的结果。

问题找到了,解决办法也很简单,只要将错误路径改名,断开注入入口,服务器就恢复正常了。

某行业网站建设建议方案

星期二, 8月 25th, 2009

本文是为某行业电子商务服务公司撰写的建议书,主要针对产品开发是整体外包还是自主研发进行分析。其实这个问题有一定普遍意义,所以贴出来,供大家参考指正。

某中型行业门户网站,建议两套开发方案:整体外包和自主开发。下面简要分析一下两个方案的优缺点。

整体外包

优势:

  • 操作简单。
  • 成本较为低廉。根据项目难度和市场情况估算需要5万左右。

缺点:

  • 本地属互联网不发达地区,该类外包团队稀缺。
  • 产品工期、质量、安全性等方面会有一定不确定性。
  • 产品后期维护方面受开发方售后制约。
  • 开发方一般会进行技术保密,二次开发难度大,甚至不可能。

自主研发

优势:

  • 拥有属于企业自己的技术团队,产品开发和问题解决的效率高。
  • 产品能得到良好的维护,能保障产品有较好的质量、安全性和稳定性。
  • 企业拥有产品的完全知识产权和技术内幕。更容易对产品进行扩展。
  • 自主团队可推动产品种类的不断丰富和功能的不断扩展,以满足企业长期发展目标和互联网的发展规律。

缺点:

  • 操作复杂,需要组建整套技术团队。
  • 团队需要一定时间的磨合期才能逐步走上正轨。
  • 人力、场地、办公场所会产生较高的成本。

总结

整体外包失败率高,但成本较小;自主研发失败率低,但成本高。前者不确定因素较多,后者比较稳健,但操作复杂,需要配备比较专业的技术管理人员。

用PHP生成Getdropbox公开下载目录文件列表

星期二, 4月 21st, 2009

getdropbox总能给人带来惊喜。本以为public下的文件只能通过下载方式发布(多数web服务器都能够做到限制浏览),然而今天才发现,其中的html页面和jpg等图片格式的文件,进而包括所有前端文件,竟然都能通过web直接浏览。这样getdropbox又多了一个用处:方便、免费、最大5G的静态网页空间!(关于getdropbox的介绍:同步存储服务 DropBox 免费奖励扩容最大5G

当然getdropbox的public文件夹主要是用来共享文件的。冗长如 dl.getdropbox.com/u/**** 这样的网址也不太适合发布网站。但我们可以为在public中的文件做一个web索引,帮助使用者快速检索。纯粹的静态开发肯定是不合适的,所以我写了个php脚本,寥寥40行,两个函数用于递归遍历目录和生成索引文件,前端有个用于指定路径的表单。可以为服务端的任意目录生成索引。将生成的文件放到public文件夹下就是这样的:http://dl.getdropbox.com/u/142189/index.htm。当然这个程序稍微修改一下也适合ftp或者本地非服务端目录的检索。

目前我的public不多,慢慢积累中。本期强烈推荐一本电子图书:《100个人的10年(冯骥才)》。小镇村夫对此亦有贡献。

代码如下:

  1. <?php
  2. function get_index ($directory, $i=0) //输出文件列表的html代码
  3. {
  4.     global $file_list;
  5.     $handle = opendir( $directory ); //打开目录
  6.     while ( $file = readdir($handle) ) //遍历循环文件和目录
  7.     {
  8.         $bdir = $directory . / .$file;
  9.         if ($file <> . && $file <> .. && is_dir($bdir)) //如果不是.和 ..并且$bdir是个目录
  10.         {
  11.             get_index($directory ./. $file, $i); //递归
  12.         }
  13.         else if ( $file <> . && $file <> ..) 
  14.         {
  15.             $file_list.= <li><a href=" . substr(substr($directory, $i) ./. $file, 1) . "> . substr(substr($directory, $i) ./. $file, 1) . </a></li>;
  16.         }
  17.     }
  18.     closedir( $handle ); //关闭目录
  19.     return $file_list;
  20. }
  21.  
  22. function make_file($content, $filename=index.htm) //生成列表文件
  23. {
  24.     $fp = fopen($filename,w);
  25.     fwrite($fp, $content);
  26.     fclose($fp);
  27.     header(location: . $filename);
  28. }
  29.  
  30. if($_GET['action']==make)
  31. {
  32.     $dir=$_POST['dir']?$_POST['dir']:dirname(__FILE__); //指定路径
  33.     make_file(get_index($dir,strlen($dir))); //生成文件
  34. }
  35.  
  36. echo 
  37.     <form method="post" action="?action=make">
  38.     输入路径:<input type="text" name="dir" />
  39.     <input type="submit" value="确定" />
  40.     </form>
  41. ;

也可以到这里直接下载文件,嗯,PHP文件当然必须是可以直接下载的。

基础物理实验教学中心网站开发方案

星期四, 3月 19th, 2009

趣学吧是个以思维导图为对象的学习社区。最有特色的功能是直接将freemind的mm文件上传,并输出成swf文件,还可以外链。测试上传了“基础物理实验教学中心开发方案”,速度很快,显示风格比freemind好看些,图标也能准确的输出。