• 2008年08月19日

    Python 通过代理访问网络 - [开发]

    今天看了一下 TurboGears 这个Web框架,很奇怪,它的下载要通过一个文件自动从网上下包来安装,但是,公司里面需要代理才可以连接到网络,所以我就顺便看了一下 Python 的网络代理的实现方式。

    还是很简单的,几行就可以了:

    import os,sys,urllib2

    PROXY_INFO = {
    'user'
    : 'monster' ,
    'pass'
    : '123123' ,
    'host'
    : '192.168.1.13' ,
    'port'
    : 8080
    }


    def load_url(url):
    proxy_support = urllib2 . ProxyHandler ( { 'http' : \
    'http://%(user)s:%(pass)s@%(host)s:%(port)d' % PROXY_INFO
    }
    )

    opener = urllib2.build_opener(proxy_support,urllib2.HTTPHandler)
    urllib2.install_opener(opener)
    src = urllib2.urlopen(url)
    return src.read()

    if __name__=='__main__':
    print load_url("http://www.google.com")

    这个是我写的链接到 Google 并返回 Response 内容的例子。

  • 2008年08月15日

    Tmitter 0.2.4 开发完成 - [开发]

    前段时间放下 Tmitter 静下心来学了下 Python 的语法,今天周四,下班回家比较早,所以就花点时间把 Tmitter 更新了一下加入了个人信息设置的功能,另外还有用户头像。

    Python 有个叫 PIL 的图像处理类库,这玩意实在是太爽了,很多以前.NET里面还得自已写的功能它都已经做好了,只要调用它就可以了,很多很多图像处理的函数,如:切图/缩放/滤镜等

    第一个Python项目自然会有很多问题存在,现在越做越觉得很多地方的方法应该抽象出来,但因为有好多地方,所以还不太好改。

    更新内容

    1. 新增用户信息设置(头像/个人主页/自我介绍)功能;
    2. 用户主页加入用户信息显示;
    3. 加入Feed与Favicon图标;
    4. 更新了一下消息查看页的内容;
  • 不知你是否用过 Firebug 的一个附加组件 YSlow 它里面的性能参数指标中有一项叫做 Minify JS 意思是说将JS文件的多余项清除掉,如:空格,换行,注释等。这样对页面加载速度有一定的提高。

    我在公司是除了网站开发,另外还有一项重要的工作是发布网站,当然这些东西是必不可少的,之前一在使用网上的一些工具对JS文件进行优化,但效率不行,因为我们的项目里面有好几十个JS文件,每次发布都一个一个处理哪太累了,我又不能把源文件给压了,哪样还怎么改。

    今天我这里发布的这个工具就是实现这样的功能,当然之前此类的工具还是有挺多的,但很多都得一个一个处理,我这里对网上的一个 开源代码 进行封装,做成了一个自动处理文件的功能。

    最近在学 Python 当然这个功能就由它来开发了,从 Douglas Crockford's 下载了他提供的 JSMin Python的类库,再使用 Python 哪超级简洁的几段文件遍历,文件夹,文件创建功能做了一下自动处理功能。

    这下爽了,每次发布的时候把程序复制到JS文件的目录,一运行就自动全部压缩了,因为考虑到可能会误操作,所以没有直接把原文件覆盖,而是把压好的文件放到一个目录里面,最后再复制出来覆盖,所有完成了,干干净净的JS,没有一段多余的代码,YSlow的指标也通过了。

    源代码我发布到Google Code里面去了,可以使用SVN来下载。

     

     

  • 2008年07月31日

    Tmitter 0.2.2 开发完成 - [开发]

    经过一段时间的苦学 Python + Django,之前的练手项目已经到了比较完善的版本。这段时间也学到了好多,现在已经习惯在Ubuntu 下面开发。

    目前完成的功能:

    1. 基本消息发送
    2. 多用户注册,登录,用户主页
    3. 注册成功,Email提醒功能
    4. 内容Url地址发送于更短的url地址(Tinyurl)
    5. 消息提交时间改为离现在多久 如:1分钟前
    6. 分页功能
  • 一直在学习Python,说说这段时间对Python的认识与相对于其它语言来说的优势:
    • Python & C#
      1. Python 跨平台,Linux all,S60,Windows,OSX,FreeBSD,这点是C#无法相比的;
      2. Python开源,绝大多数资源都是开源的,C#则相反;
      3. Python是解释型语言,C#需要编译(如asp.net);
    • Python & Java
      1. 开源方向来说,Python更有优势,Java(虽然最近Java已经开源了,但有一些开源协议上面的版权受限);
      2. Python更简洁,Java过于庞大复杂(如Web服务器)
      3. 如 Python & C# 的第三点
    • Python & C++,Perl
      1. Python更容易学习,语法简单,语意化,易懂;
      2. Python
    • Python & Php:
      1. Python的OO更加完善
      2. Python可以开发桌面应用程序
    • Python & Ruby:
      1. Ruby 小日本做的
  • 你用过 饭否Twitter 吗?当发布信息的时候,如果内容中带有过长的url地址,程序就会自动将这些地址转换成为更短的url,使用的是 Tinyurl 的地址转向服务。

    如:http://huacn.blogbus.com/logs/25832349.html 转换后就成了  http://tinyurl.com/6ameh5

    这样的就跟迷你博客的初衷更加贴切了,也可以在短小的消息中带上连接地址。

    因为我在做我的Python的第一个项目 Tmitter 因为此项目是模仿 饭否Twitter 自然shorturl的功能是必不可少的,刚学Python的我很多都不熟悉,慢慢的查 Tinyurl的API,再不停的调试与修改,这个功能终于实现了。

  • 纯文本编辑是开发人员必不可少的工具(你不要跟我讲你用Eclipse或Visula Studio)。

    记得上大学的时候纯文本编辑一直都是用Windows自带的 记事本 - Notepad,以前的Java教师也曾经推荐我用Editplus,但因为它哪难看的UI设计的界面布局,我一直没有用它。

    后面出来工作以后,在某天发现了 EmEditor 这个软件,才发现之间一直用Notepad的愚蠢。所谓“工欲善其事,必先利其器”,有一个好用的工具,事情会做得更上手。的确是这样,用了 EmEditor 以后很多以前复杂的事情都变简单的很多,比如查找替换。

    但因为 EmEditor 是收费软件,后面我也一直在寻找一个比较更好的。

  • 在公司我们网站项目组,除了基本的开发工作,我是还要负责网站发布与服务器维护工作的。

    最近手头的项目因为有很多变动,所以很长一段时间没有发布到服务器上了,数据库一直以来是一个比较麻烦的问题,主要是数据结构与数据的合并问题。而且这边项目使用了三台发布服务器(开发测试,内部测试,发布服务器)。所以,数据库的发布成了一个比较难的事情。

    之间的做法是记存储过程数据结构更新的SQL语句,但因为事情较多,而且几个人在动数据库,所以这种做法没能很好的执行,到了最后基本上没有记录了。

    今天到发布项目的时候了,现在是发布到内部测试服务器,我准备了一天的时间来做这个事情(对于运维这工作能力还不行呀!)。

  • 2008年07月04日

    Tmitter 介绍

    Tmitter是我使用 Python + Django 开发的类似于 Twitter 功能的开源项目,它是更加微型的。因为有强大的Django支持,Tmitter可以使用MySQL PostgreSQL Sqlite 等数据库。

    Tmitter 最初是想做成手机的迷你博客网站的,但最近我一直在想是否要这样做,当然目前关于手机的应用一直都还没有做的。我想把它做成像 饭否 Twitter 类似的网站,当然这项目是没有前途的,完全是为了学习 Python 的Web开发而已。

    同时也欢迎感兴趣的朋友一起来开发,其实我也是一个Python新手,本是做.NET开发的。

  • 从今天开始,我将学习在Linux下面 Python + Django 的开发,并在这里记录下开发手记。

    Django是一个非常不错的Python Web 开发框架,Linux下面安装Django和Windows基本上差不多。

    先从Django官方网站下载,Django的源代码包

    下载完成后,将桌面上的 Django-0.96.2.tar.gz 解压到/home/用户名/ 里面。

    如下图: