jQuery(赋值给表单内容)

百度的招聘网站百伯年前就上线了,偶然看到其中用了一个jQuery的函数挺好玩就扒了下来。


var setValue = function(name, val){
    if(val != ""){
        var htmlType = $("[name='"+name+"']").attr("type");
        if(htmlType == "text" || htmlType == "textarea" || htmlType == "select-one" || htmlType == "hidden" || htmlType == "button"){
            $("[name='"+name+"']").val(val);
        }else if(htmlType == "radio"){
            $("input[type=radio][name='"+name+"'][value='"+val+"']").attr("checked",true);
        }else if(htmlType == "checkbox"){
            var vals = val.split(",");
            for(var i=0; i<vals.length; i++){
                $("input[type=checkbox][name='"+name+"'][value='"+vals[i]+"']").attr("checked",true);
            }
        }
    }
};

使用实例:

用到的HTML内容:


<select name="education" type="select-one">
  <option value="">请选择</option>
  <option value="1">初中</option>
  <option value="2">高中</option>
  <option value="4">中专</option>
  <option value="5">大专</option>
  <option value="6">本科</option>
  <option value="7">硕士</option>
  <option value="10">博士</option>
  <option value="11">其他</option>
</select>
<br />
<input type="radio" name="radio" value="1" id="radio_0" />1
<input type="radio" name="radio" value="2" id="radio_1" />2
<br />
<input name="chk" type="checkbox" value="1" />1
<input name="chk" type="checkbox" value="2" />2
<input name="chk" type="checkbox" value="3" />3
<br />
<input type="text" name="txt" value="" />
<br />
<input type="button" name="button" value="" />
<br />
<textarea name="textarea" cols="6" rows="7"  type="textarea"></textarea>

对应的JS内容:


$(function(){
setValue("education", "1");
setValue("radio", "2");
setValue("chk", "1, 2");
setValue("txt", "1, 2");
setValue("button", "1, 2");
setValue("textarea", "werwer");
});
Via:Chairo@2012年02月22日-EOF-

异常简单的一个代码生成器(python)

首先上一段生成的代码,很简单。但数据量很大时候也可以省下一小部分的工作量。


# -*- coding:utf-8 -*-
from core.dal.base_handler import BaseHandler
 
class GroupsHandler(BaseHandler):
 
    def select(self):
        return self.db.query("SELECT `g_id`, `g_name`, `create_time`, `status` FROM `groups` ORDER BY `g_id` DESC")
 
    def delete(self, id):
        return self.db.execute("DELETE FROM `groups` WHERE `g_id` = %s", id)
 
    def insert(self, g_name):
        return self.db.execute("INSERT INTO `groups` (`g_name`) VALUES (%s)", g_name)

重要的是这个生成器只有简单的百多行代码。再加上一些简单的生成services层的逻辑,短时间做一些对表的增删查还是很方便的,至于更复杂的慢慢扩充吧。

生成器下载地址:http://chairo.free.fr/down/build.py

生成器中用到的BaseHandler下载地址: http://chairo.free.fr/down/base_handler.py

Via:Chairo@2012年02月21日-EOF-

python所谓文艺短网址生成方式代码

最近都没有写什么python和php的代码,工作非常充实,晚上也没有什么精神继续写代码。今天翻到一段写生成短网址的算法blog,发现俺用的是最2B的随机数方式……

为了表示不那么2B,特意写了段生产短地址的在该文章中所写的文艺代码:


def shortByHex(url):
    '''url缩短'''
    import hashlib
    _seed = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    _hex = hashlib.md5(url).hexdigest()
    _hexLen = len(_hex)
    _subHexLen = _hexLen / 8
    _output = []
 
    for i in xrange(0, _subHexLen):
        _subHex = _hex[i*8:i*8+8]
        _subHex = 0x3FFFFFFF&int(1*('0x%s'%_subHex), 16)
        _o = []
        for n in xrange(0, 6):
            _index = 0x0000003D & _subHex
            _o.append(_seed[int(_index)])
            _subHex = _subHex >> 5
        _output.append(''.join(_o))
    return _output
 
print shortByHex("password")
Via:Chairo@2012年01月12日-EOF-

微博把妞利器预览版开源了

痛恨各种年终总结,所以年底不写总结。好久没有更新博客内容了,一则因为最近学习的Java是自己并不是很喜欢的东西,二则是一松弛下来就变的很懒。

前一阵申请了SAE的python测试,拖了性浪微博的一个python SDK写了一个简单的半成品脚本。名字比较唬人,应用叫做“微博把妞利器”,这个闷骚的名字可能名不副实,不过已经一年多两年没折腾过性浪微博接口了,生疏了很多。

微博把妞利器这个东西可以填写你需要关注的微博用户个性域名(不包含http://weibo.com/),然后页面打开状态会自动每隔一分钟(这一版暂定此种方式)抓取一次最后一次微博时间然后显示出来。

源代码地址:https://bitbucket.org/chairo/7ats

此次代码使用了bottle框架+sinaweibopy

如图:
20120101000600.png

因为是短时间作为熟悉性浪微博SDK的产物,请不要期待功能很完善。之后版本预计会增加各种邮件、QQ机器人等方式自动提醒功能…

Via:Chairo@2012年01月01日-EOF-

Java反射执行方法时候捕获InvocationTargetException异常

公司项目中使用了Java的反射,通过反射执行别人的方法时候抛出了一个“java.lang.reflect.InvocationTargetException”的异常,百度了一下看的云里雾里的。

查看Java手册的解释是:InvocationTargetException 是一种包装由调用方法或构造方法所抛出异常的经过检查的异常。依然是很难理解。

因为涉及到跨组调试等问题,只能继续Google。最终还是在stackoverflow看到一个比较靠谱的解释“From the Javadoc of Method.invoke()
Throws: InvocationTargetException - if the underlying method throws an exception.
This exception is throw if the method called threw an exception.
”,应该是因为反射执行的方法里抛出了异常造成的。

Via:Chairo@2011年12月21日-EOF-