使用TeamCity进行ASP.NET MVC3项目的自动化部署

关于如何使用TeamCity进行项目代码检出,编译的文章网络上有很多,但是关于如何进行项目部署,尤其是关于ASP.NET MVC3项目部署的资料却少得可怜。折腾两天后,终于将部署完成,于是记录一下部署的方法:

准备

1 工程的准备

首先要稍微配置一下需要部署的工程,设置部署包的位置和目标IIS上的网站/应用程序名称,如下图: 

Continue reading

用Python抓取QQ空间文章(终)

其实上一篇博文就已经将所有抓取工作解决了,这篇主要是抓取后的一点点处理工作(其实也没有处理完,充其量是个半成品)。

上篇说道使用正则表达式来匹配图片地址,不过上次方案有些缺陷,那就是疼迅给每张图片都加了链接,因此直接匹配会得到很多重复的地址,不过没关系,Python里有个很好用的模块:HTMLParser(Python 3是html.parser)。

文档上有个使用的例子:

from HTMLParser import HTMLParser

class MyHTMLParser(HTMLParser):

    def handle_starttag(self, tag, attrs):
        print "Encountered the beginning of a %s tag" % tag

    def handle_endtag(self, tag):
        print "Encountered the end of a %s tag" % tag

很明显的,handle_starttag方法在遇到开始标签时会被调用,而handle_endtag会在遇到结束标签时被调用,所以用HTMLParser结合正则表达式来获取图片地址就很方便了:

def handle_starttag(self, tag, attrs):
    if tag == 'img':
        pattern = u"http://bd*.photo.store.qq.com/[^"]*"               #图片地址
        prog = re.compile(pattern);
        imgUrl = re.findall(prog, self.get_starttag_text())
        if imgUrl:
              self.imgList.extend(imgUrl)

Continue reading

用Python抓取QQ空间文章(2)

之前写过一篇文章简单说明如何用Python抓取QQ空间的文章,当时的脚本有两个缺陷:1.没有保存日志图片 2.未能获取日志发布时间。

当然原有的脚本还是可以使用的,今天对其进行了修改,改进了上面两个缺陷。

前篇文章说,未能获取日志发布时间的原因是文章是从简版抓取下来的,因此要想获取精确时间,就必须找到完整的日志地址。

在HttpFox的帮助下,地址并不难找:

http://b1.cnc.qzone.qq.com/cgi-bin/blognew/blog_output_data?uin=QQ号码&blogid=文章ID

当然前面的二级地址与网络条件有关。这个地址就是真正的日志地址。 Continue reading

配置Django的Vim补全(使用Pydiction)

如今Django已经有不少好用的IDE,不过IDE写起代码来总不够流畅,因此还是希望使用Vim来写Django程序。

但是一想到Django一大堆Field,没有代码提示还是非常难过的。

网上解决的方法大多是使用PySmell,不过那东西需要安装,不够绿色环保,而且速度也实在不快,几经搜索,在万能的StackOverflow找到一种使用Pydiction进行补全的方法。

首先自然要安装Pydiction,不赘述,详情可以请教谷歌。

Pydiction使用的是字典补全,默认的字典包括了Python自带的包,因此想要补全Django就需要生成Django的字典。

不过在生成Django字典需要进行一些设置,不然会生成失败。原因是Django的一些模块依赖于项目的setting。

先用django-admin.py生成一个Django项目

Continue reading

Xfce4 下设置开机屏幕亮度

Gnome3出来很久了,使用到今天,实在觉得这不适合在笔记本上使用,听说Linus同学转投Xfce,于是便将Xfce4请进来。

经过一番配置,Xfce4在老Y(Y450)上运行的还不错,但是有一个问题,屏幕亮度不能保存,每次开机都回恢复到最亮的状态。

请教了Google后,在一个外文博客上发现了解决的方法。

首先要写一个调节屏幕亮度的脚本,只有一句:

echo 3 > /sys/class/backlight/acpi_video0/brightness

里面的“3”可以替换为1-10中任意数字,越大越亮。

Continue reading

更好的管理VIM插件(续) pathogen

上次写博文推荐了一个管理Vim插件的插件,Vim Addon Manager,经过一个月的使用,发现了不少问题。有人推荐使用pathogen来管理插件,试用了一下,感觉不错。

首先说说Vim Addon Manager的问题:

1、在windows下使用时,其数据库文件无法正常使用(其实就是个txt,因为一些作者的名字无法正常使用),不过可以通过将文件以UTF-8格式保存来解决。

2、个别插件需要手动修改后才能正常运行(c.vim),当然这个问题使用pathogen时也存在。

3、个别插件需要手动创建plugin目录后才能正常使用。

4、需要安装git,svn,甚至是curl才能正常使用

5,必须插件名称完全与数据库中相同才能正常安装,甚至连大小写都不能错,数据库中有些插件的名字甚至与官方不同,让人费解。

当然pathogen的功能不如Vim Addon Manager那样丰富(他不能自动安装插件),不过符合KISS原则的这个插件还是十分好用。

 

使用方法:

Continue reading

更好的管理Vim插件 vim-addon-manager

Vim是一个非常优秀的编辑器,但是没装插件的Vim就始终只是个编辑器而已,是插件让Vim变得更加强大。

但是插件装得多了,管理就成了问题,Vim本身并没有提供插件管理功能,往往时间一长,.vim/vimfile 文件夹下就变得杂乱不堪。

vim-addon-manager这个插件就是为了管理Vim插件的插件。

 

介绍:

This plugin allows users to install and uninstall plugins with a minimum of work. Features:
    - Separate directories for each plugins
    - Dependency resolution
    - Popular VCS support: plugin supports fetching from Git, Mercurial,
      Subversion and Bazaar repositories

简单来说就是可以非常方便的安装和卸载插件。 Continue reading

用Python抓取QQ空间文章(1)

今天找了点时间看了点Python抓站的教程,便想把自己QQ空间的文章抓下来。

 

一开始想要直接抓站,可是QQ空间满是javascript一时让我无从下手,于是暂时作罢

 

其实QQ空间还有一个掌上设备的版本, http://qz.qq.com ,这个版本的主页没有使用javascript(但是有些不便的地方,这个之后再说)。

Continue reading

使用PHP空间为GAE做反向代理

不知道有多少喜欢GAE和Python的人。

众所周知的,GAE已经打不开了,而用于绑定域名的ghs(.)google(.)com也早就被那啥了,因此现在想要给GAE绑定域名必须通过反向代理。

网上关于用VPS来做GAE反向代理的教程有很多,我就不重提了,有VPS的朋友可以参照网上的教程。然而对与我这种穷人,VPS的价格实在让我无法承受,而用VPS专门为GAE做反向代理也有些大材小用的感觉。

在一番搜索之下,终于让我找到一个用PHP空间来为GAE做反向代理的程序。

Continue reading