解惑

解己之惑,解人之惑

第70页共82页

gmail不能发送包含bat文件的压缩包

呵呵,今天给一个朋友发送javazip_src_0.8alpha.zip作为demo,结果gmail说包含可执行文件,不让发送,感觉这个限制比较傻。

使用google xslt包实现一个简单的在线rss阅读器

这个只是我试验google xslt的功能的一个小demo,很简单,另外使用到了XHConn。

HTML:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<HTML>
<HEAD>
<TITLE>Google Ajaxslt rss reader demo</TITLE>
<script type=”text/javascript” src=”XHConn.js”></script>
<script src=”misc.js” type=”text/javascript”></script>
<script src=”dom.js” type=”text/javascript”></script>
<script src=”xpath.js” type=”text/javascript”></script>
<script src=”xslt.js” type=”text/javascript”></script>
<script type=”text/javascript”>
var _rssxslt=”<xsl:stylesheet><xsl:template match=\”/\”>”;
_rssxslt+=”<xsl:apply-templates select=\”rss/channel/item\”/>”;
_rssxslt+=”</xsl:template>”;
_rssxslt+=”<xsl:template match=\”rss/channel/item\”>”;
_rssxslt+=”<xsl:element name=\”a\”><xsl:attribute name=\”href\”><xsl:value-of select=\”link\”/></xsl:attribute>”;
_rssxslt+=”<xsl:value-of select=\”title\”/>”;
_rssxslt+=”</xsl:element>”;
_rssxslt+=”<br/>”;
_rssxslt+=”<xsl:value-of select=\”description\”/>”;
_rssxslt+=”<br/>”;
_rssxslt+=”</xsl:template>”;
_rssxslt+=”</xsl:stylesheet>”;
var myConn;
  function read()  {
    el('htmldisplay').innerHTML = “Reading”;
    myConn = new XHConn();
   
    if (!myConn) alert(“XMLHTTP not available. Try a newer/better browser.”);
   
    var fnWhenDone = function (oXML) {
    //logging__=false;
    var html = xsltProcess(xmlParse(oXML.responseText), xmlParse(_rssxslt));
    el('htmldisplay').innerHTML = html;
   };
    myConn.connect(“rssReader”, “POST”, “param=”+el('url').value, fnWhenDone);
  }
 
</script>
</HEAD>

<BODY>
<h1>Google Ajaxslt rss reader demo</h1>
<div id=”sample”>
Sample:
<ul>
<li>http://www.javaresearch.org/rss/RSS2_article.xml
<li>http://www.nytimes.com/services/xml/rss/nyt/AsiaPacific.xml
</ul>
</div>
Log:
<div id=”log”></div>
<br />
<br />

RSS feed: <input type=”text” id='url' size=80 value='http://www.javaresearch.org/rss/RSS2_article.xml'><INPUT id='readbutton' TYPE=”button” value=”Read” onclick=”read()” />
<div id=”htmldisplay”></div>
</BODY>
</HTML>

AJAX据说可以读取外部的数据,但是我试验了一下好像不行,XMLHttpRequest打开的链接不能是以http开头的外部链接,不得以写了一个servlet:
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RssReaderServlet extends HttpServlet {
  public void init() throws ServletException {
  }

  public void service(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType(“text/xml”);
    response.setHeader(“Cache-Control”, “no-cache”);
    OutputStream pw = response.getOutputStream();
    URL url = new URL(request.getParameter(“param”));
    URLConnection connection = url.openConnection();
    BufferedInputStream reader = new BufferedInputStream(connection
        .getInputStream());
    int length = 0;
    byte[] buffer = new byte[1024];
    length = reader.read(buffer);
    while (length != -1) {
      pw.write(buffer, 0, length);
      length = reader.read(buffer);
    }
    pw.flush();
  }

}

web.xml里面的片段
  <servlet>
    <servlet-class>org.jr.ajax.RssReaderServlet</servlet-class>
    <servlet-name>rssReader</servlet-name>
  </servlet>
  <servlet-mapping>
    <servlet-name>rssReader</servlet-name>
    <url-pattern>/rssReader</url-pattern>
  </servlet-mapping>

反spam的战斗

随着网络的发展,现在的spam真的是越来越多,而我去年也差点为了一点小钱为别人写spam程序。

由于现在搜索引擎特别是google的地位日益巩固,针对google的左侧排名算法而进行的spam越来越多,光这个BLOG就遇到了comments spam和referer spam,现在comments spam好像平静了一些,但是近期referer spam很猖獗,而周末修改的过滤器将referer spam的危害降低到了不影响系统性能的程度,但是不能根除,看来2006年众多网站要为spam头疼了。

可能防止spam最好的方式是使用专有系统,我想应该不会有人专门针对影响特别大,系统又特殊的网站写spam程序吧?

服务器的硬件问题

去年一年JR的服务器一直处于时常崩溃的境地,后面我写了一个shell脚本监测服务进程的状态并可以自动重启从一定程度解决了这个问题,但是没有从根本上解决,我一直怀疑是服务器的硬件问题,因为我们的那个服务器投入使用的调试期竟然有三个月之久,最开始服务商并不承认是他们的服务器的硬件问题,怀疑我们的软件有问题,但是我们在另外一个机器上正在跑的JR是完全正常的,后来我好不容易在第N次重装系统的时候发现他们的硬盘有问题,换了硬盘后问题缓解,但是还不是非常稳定,最终他们的人换了内存才更好了一点。今年春节前服务器彻底崩溃,更换了服务器,他们并没有给服务器配置那个监控服务,但是服务器稳定的工作到我回来,至今也没有发生过宕机的问题,由此证明了去年一年我在服务器维护上的时间投入全是拜奸商所赐。

新的链接spam

到上次成功解决blog的问题的时候才搞清楚我们又遇到了一个新的spam类型,他针对roller这种blog显示访问来源的方式制造链接spam达到提高排名的目的,周末修改了过滤器,已经解决了这个spam造成JR服务器不能正常工作的问题。由此也证明了其实roller的性能不太高的问题。这些spam在这里选择的blog也有点特别,选择的是首页显示blog数量最多的jcoder的(25个),在我的印象中roller是有页面缓存的啊,应该不会这么弱不禁风啊。

访问sourceforge的两种方法

最近sourceforge又不能访问了,一个朋友告诉我了一个方法,另外今天看别人辟谣的分析文章有给出了一种方法,要访问sf,目前感觉最好的方式就是下载一个tor装上(上google搜索tor,第一个就是),把浏览器的代理设置为localhost:8118,需要提醒的是这个方式速度有点慢,不过我总的感觉还是可以忍受的(家里是2M的ADSL),另外一个方法就是用https访问,但是可能最后要下载文件的时候还是不行。

Blog的奇怪问题

JRoller存在一个非常奇怪的问题,昨天对所有的请求进行过滤后,发现提交的内容都是乱码了,今天修改了过滤器,只过滤一些非登录用户的请求就恢复了。

另外就是别人的blog都是好的,唯独我的坏了,查看系统日志,有相关的异常,但是google不到相同的错误,今天修改了下使用的页面文件,把显示最近留言的部分去掉了就好了。

CI_INFOOBJECTS或者InfoObjects的全部字段或者属性

找了很长时间才找到,用google都没有结果,呵呵,记录在这里:
com.crystaldecisions.sdk.occa.infostore.CePropertyID类定义了全部的字段或者说属性,这样在写select的时候就可以只取需要的信息了.

恢复“正常”的生活

虽然现在已经基本排除心脏病的问题,但是现在越来越感觉身体不适。总体而言,我的工作还是很轻松的,但是在公司上班的时候,时常感觉手臂、腿、臀部以及胸腔有种种不适或者疼痛的感觉,手臂可能是长时间使用鼠标造成的问题,腿和臀部可能是长时间坐着的结果,而胸腔的不适还找不到很好的理由,可能是缺乏运动以及长时间在室内的结果。回想自己工作五年来,每天使用电脑的时间都至少是10个小时,虽然大部分额外的时间都是自己学习提高或者为了开发维护JR,但是最终的效果还是对健康造成了损害。另外自从到上海以后,这两年基本上没有任何运动,而原来在东软的时候每周基本上至少会踢一次足球。总之,我这几年的超时工作和缺乏锻炼造成了我现在可能严重可能不严重的问题,现在应该还来得及改变,也是应该回归正常人的生活了,上完班以后运动下、休息下或者看看书,不再老对着电脑,不能没有了电脑就感觉生活毫无味道。

远离心脏病的苦恼

2月14号情人节的下午,没有怎么过这个节,反到按照去年医生的要求又做了一次心电图,结果是:正常

怀着疑惑的神情得到了医生的结论:没有问题、完全没有问题。

看来以后要注意锻炼了。

« 更早的文章 更新的文章 »

© 2025 解惑

本主题由Anders Noren提供向上 ↑