校友

分类: 杂七杂八 | No Comments »
发表于

今天上班,因为与基础架构部的同事用邮件商讨公事,结果竟然意外发现一位校友。原来这位哥们把我们系主任的名言作为邮件签名,结果被我发现非常眼熟,一问之下,果然是校友,真是一个serendipity啊。

Wish(Original Instrumental)

分类: 音乐 | 1 Comment »
发表于

很好听的吉他,同样来自这个帖子提到的专辑。不知道为什么,日本的曲子风格就是与其他的不一样,一下就能听出来,可能是其华丽的电声吉他的原因,可能这就是所谓的“J-pop”的曲风吧。

Wish(Original Instrumental).mp3

Tags :

在线创建矢量图

分类: Web设计 | No Comments »
发表于

一个很好的在线创建矢量图的网站:http://vectormagic.com
来看看效果怎样:

Tags :

Django Captcha

分类: Python | No Comments »
发表于

Symfony的sfCaptcha不同,Django框架里没有自带Captcha组件,不过从google结果来看,这两个似乎还可以用:

1、Google Django Captcha Code
2、Django and Captcha images

但是我还是觉得太复杂,更多的时候我们只是需要一个能显示防止自动注册的图片而已,于是恶补了一下PIL,自己写了一个简单的Captcha,效果图如下:

view.py:

from django.shortcuts import render_to_response
from django.template import RequestContext
from django.http import HttpResponse, HttpResponse
import django.utils.simplejson as json
from django.contrib.auth.models import User
import Image, ImageFont, ImageDraw, ImageFilter
from django.conf import settings
import glob, random
 
def captcha(request):
    """ Generate a captcha image. """
    response = HttpResponse()
 
    chars, msg = 'abcdefghkmnpqrstuvwxyz23456789', ''
    for i in range(4):
        msg += chars[random.randint(0, len(chars) - 1)]
    request.session['captcha'] = msg
 
    # get available fonts and backgroup images
    fonts = glob.glob(settings.MEDIA_ROOT + '/fonts/*.ttf')
    bgs = glob.glob(settings.MEDIA_ROOT + '/captcha/*.jpeg')
 
    im = Image.new('RGB', (128, 128))
    font = ImageFont.truetype(fonts[random.randint(0, len(fonts) - 1)], 32)
    bg = Image.open(bgs[random.randint(0, len(bgs) - 1)])
 
    # draw text
    draw = ImageDraw.Draw(im)
    color = (random.randint(128, 255), random.randint(128, 255),
             random.randint(128, 255))
    draw.text((20,40), msg, font = font, fill = color)
    im = im.rotate(random.randint(-30, 30))
 
    # setup mask image
    def convert_mask(p):
        if p > 0:
            return 0
        else:
            return 255
    mask = im.convert('L').point(convert_mask)
 
    # blend image
    Image.composite(bg, im, mask).save(response, 'PNG')
 
    del draw, font, im, bg, mask
 
    response['Content-Type'] = 'image/png'
    return response

算法很简单,使用随机的背景图和字体,并对字体进行简单的旋转,应该能挡住大部分的机器人了。声明一下,这里的字体和图片来自pyCaptcha,如果有什么版权问题,请自己负责。

使用方法:
自己定义img,src属性指向上面列出的view:captcha,然后取request.session['captcha']就可以了,每访问一次图片,request.session['captcha']值就自动置为当时的图片值。注意,使用之前要保证已经安装了Python图片库:PIL

完整的程序和资源下载:captcha.rar

Tags : ,

Windows下的“Whereis”

分类: Linux | 1 Comment »
发表于

Unix里面有一个很实用的工具:whereis,用来显示命令的路径,可惜windows没有这个功能,不过,用下面的这段代码可以实现和whereis同样的功能:

@for %%e in (%PATHEXT%) do @for %%i in (%1%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i

把上面的代码存成bat文件就行了,调用的格式与whereis或者which一样。

Pages: 1 2 3 4 5 6 7 8 ...15 16 17 下一页