分类目录归档:vicalloy的庄家

整了个在线将reStructuredText转成html的东西

现在不少python程序都是用reStructuredText写文档。
比较郁闷的是有部分文档都只提供了reStructuredText的源文件,没有转换好的html文件。
感觉自己每次手动转比较麻烦,于是花了点时间写了个在线的。
将reStructuredText文件贴进去,提交后就可以看到转好的页面了。

现在还有点问题,sphinx对reStructuredText进行了扩展。
对包含了sphinx标签的会处理出错(谁知道怎么忽略错误?)。
地址是 http://rest.haoluobo.com/

程序的代码可是非常的少,主要代码就是下面几行。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from django.http import HttpResponse
from docutils.core import publish_string

def index(request):
   html = """
<html>
       <head></head>
       <body>
       <form action="" method="post">
           <textarea name="rest" cols="60" rows="20" onfocus="this.value=”"></textarea>
           <br/>
           <input type="submit" value="提交"/>
       </form>
   </body>
</html>
   """
   if request.POST:
       html = publish_string(request.POST[‘rest’], writer_name=’html’)
   return HttpResponse(html)

老照片的演示站点重新开放

今天在服务器上将老照片给部署好了,关闭许久的老照片终于再次开放了。
由于使用mod_rewrite似乎有些问题,我将静态问题统一放在了另一个域名下,但这却引出了一些其他问题。以前写程序的时候没有注意到静态文件的问题,直接将静态文件的位置给写死了,此外还有部分其他问题。不过修正后终于跑起来了。
在经过上次的修正后,依旧存在部分css兼容性的问题。不管了,至少大多页面看上去还是正常的。
http://lzpian.haoluobo.com/

GoogleCode上的SpringSide2vik项目建好了

本想将代码先整理下,不过似乎也没多少整理的必要。为项目新添加了netbeans的项目配置文件,这样使用netbeans的用户也可以方便的打开工程了。另外还做了个简单的视频演示,空间太烂,似乎要花挺久才能下载完。
项目地址:http://code.google.com/p/springside2vik/
视频演示:http://vik.haoluobo.com/static/springside2vik/springside2vik.htm

完成对老照片的调整,Django版本升级到1.0

今天完成了对老照片的调整,将Django的版本升级到了1.0。1.0版本的Django相比以前版本相比最大的变化就是那个newforms了。不过好在我在newforms出来不久就直接切换过去了,这次升级只需要在import的时候将newforms改成forms就可以。
admin也是0.96到1.0变化比较大的。不过老照片本来就不太依赖admin,所以我只修改了admin的url映射部分,保证admin后台可以正常打开。以后如果需要用到admin,再对admin部分进行调整。
由于我需要对用户上传的图片进行编辑,因此没有使用Django默认的上传处理。文件上传的变动给我带来了不少麻烦。以前从request.files里取出的文件是个map,但在新版本中变成了一个对象。这个对象虽然提供了files的相关接口,但却又不全,导致PIL无法正常处理。为此我增加了一个临时文件。先将用户上传的文件保存到临时文件再进行处理。在网上看到有用户遇到了和我同样的问题,不知Django在日后的版本中是否会修正。
至于目录的调整,我将那个碍眼的apps给去掉,把所有的文件放到oldphoto这个包下。
此外对项目的配置文件做了一些调整,将默认的数据库改为sqlite,保证程序可以在不做任何设置的情况下直接用manage.py runserver跑起来。
最后再将项目地址贴一下:
http://code.google.com/p/oldphoto/
将项目从SVN中取下后,依次运行scripts目录里的syncdb.bat、runserver.bat就可以跑起来了。当然,那些有些必备的环境还是需要的,python(>=2.4)+django(>=1.0)+PIL。

后记

本来休整工作还包括部分重构以及i18n等,不过在完成Django的升级后就开始没多少兴趣了。由于代码比较老,里面不少东西在现在看来都有更好的处理方式,如果全部都改工作量有点大,只是改部分打打补丁又没多少意思。或许那天重新写个自己看得顺眼点的新项目。

对自己开源的项目进行休整

和大多不负责任的开源作者一样,我都是将代码发布后就不怎么打理了。不过想来既然博客和wiki重新开张,就顺道将以前开源的项目给打理打理吧。
目前的计划主要将老照片SpringSide2–++调整下。

老照片

老照片是我刚开始使用django时做的一个项目。由于刚开始学习django,里面有不少在现在看来非常糟糕的处理。打算将那些非常糟糕的处理给改掉,其他一些一般糟糕的就算了。目前想到要做的主要有:

  • 重新调整目录结构。
  • 实现Django 0.96迁移到 1.0,修正迁移中产生的问题。
  • 把那些糟糕处理改优雅点。

SpringSide2–++

SpringSide2–++是我在SpringSide2基础上重新定制过的一个项目。在我看来定制过后易用性增加了不少,而且提供了一个还成的代码生成器,对于简单对象只需要将该对象的Model写完就可以自动生成完整的CRUD。目前计划的调整有。

  • 这个项目以前是以zip包的形式发布的,打算调整后放到googlecode上。
  • SpringSide–++这个名字现在看来似乎有些怪异,这次修正的时候顺便想个好听点的名字。
  • 写一些IDE环境初始化的脚本呢,帮助用户用IDE打开后不需做任何配置就可以直接跑起来。
  • 界面美化(我觉得现在的界面有点丑)。
  • 录制个简单的视频教程帮助推广:-)。

免费的wordpress博客服务推荐

    现在基本上只要是大点的网站都会提供博客服务,要找一个免费的博客空间实在是太容易了,只是大多博客服务都并不是太好用。基本上说来是各有各的不好。就拿我现在用的MSN Space来说速度慢也就算了,界面还不怎么样,可定制性也一般。
    在我看来,博客服务要是能使用目前使用最广泛的wordpress自然是最好的了,只是wordpress的官网被彻底的封死了,国内免费的也不多。国内比较有名的wordpress服务商可能要算是donews了,只是以前有朋友用的时候博客出过好几次问题,还被莫名其妙的删了好几次。这样的服务态度,我是不敢再用了。
    最近想和朋友整个关于widnows mobile的协作博客Hi WM,所以又去找了一圈,发现国内还是有不错的wordpress服务的。
    优博网(http://yo2.cn/)提供了免费的wordpress服务。此外优博网内置了数百个wordpress主题。不过即使这么多主题里都没有让你满意的,你还可以上传自己的主题,或是将内置的主题私有化后再进行编辑(我的就编辑过了)。虽不支持上传自己的插件,但内置的wordpress已经挺丰富的了。yo2会为你的博客提供一个二级域名,不过如果你觉得这还不够帅,可以为自己的博客绑定一个顶级域名(这个服务得收费)。访问速度方面我觉得一般,还成(经过一段时间的使用,感觉速度一般,有时候似乎非常的慢)。至于稳定性嘛,还有待观察,昨天就出现了用IE无法打开的情况。
    虽然我感觉yo2还不错,不过这个博客是不会搬过去了,毕竟要将这些数据倒过去还挺麻烦。将就着用了。
    最后,给我的新博客做个宣传吧。

Hi WM 是一个专门关注 Windows Mobile 手机相关新闻和应用的团队 Blog。

如果你和我们一样,也有一款 Windows Mobile 手机,并愿意分享你对 WM 的感受,可以通过 这个地址 来发表。

老照片换域名了

    lzpian.com还有一个多月就到期了。因为这个站点不打算再进行维护,所以也懒得去给域名续费了。为了防止域名到期后无法访问,今天为老照片新增加了一个二级域名 http://lzpian.haoluobo.com/ ,并将lzpian.com重新重定向到新域名上。
    不过在进行重定向的时候遇到些问题,那些设置了跳过规则的文件都重定向到 lzpian.com 去了。整了半天也没明白是咋回事。估计和虚拟主机的设置有关。考虑过些天等lzpian快到期的时候将lzpian.com去掉看看。

新发布一个Django的脚手架DjangoSide

    前一段时间在邮件列表和limodou讨论django app重用的问题。limodou认为django的app没有对app的配置文件和静态文件的管理提出一个很好的方案。但在我看来在这方面django做的已经算是不错的了,唯一缺少或许只是一个规范而已。对于django,每个人都有各自的认识,而且在书写的时候又很少考虑到重用的问题,所以写出的代码各不相同,重用性很低,完全没有发挥出django app的优势。
    DjangoSide是个演示性质的项目。主要演示如何和第三方的django应用进行整合,简单的注册登陆的实现,以及静态资源的组织等。目前项目还只是将基础的框架目录结构给搭建好了,里面提供了一个blog的整合实例。主工程(djangoside)还未正式的开始开发(其实也没多少需要开发的东西)。

    至于项目的详细可以在项目页面看到,我这里就不多写了。
    项目地址:http://code.google.com/p/djangoside/

Trac的SEO能力实在不怎么样

    本以为wiki不被收录是因为进了搜索引擎的黑名单,于是换了新域名,哪知道还是老样子。google虽然有收录,但权重N低,baidu始终不做理会。为了防止trac自带的wiki页面导致搜索引擎错误的将我打入黑名单,我还特意在robots里将这些页面做了屏蔽。
    我看了下其他的trac站点,似乎也都不太被搜索引擎待见。可能是trac自身的问题吧。
    不去管它好了。

国学阅读网上线了

网站地址:http://guoxue.victsoft.com/

    其实这个网站在很早以前就有开始整了,中途因为一些事情中断了许久。最近在假期就快结束的时候重新启动,花了几天时间做了个收尾工作,正式部署上线了。
    国学阅读网看名字就知道她是做啥的了。目前网站的功能还比较简单,只提供了书签、收藏、好友等基础功能。各书籍的点击次数等虽然也有统计,但目前还并未使用。
    类似豆瓣的网友最新动态,我觉得这是一个挺有意思的功能。他让各个网友都有露面的机会,而且越是活跃的网友露面的机会越大。这对激发网友的活跃度将会很有作用。这个功能的实现也不复杂,不过我目前优先考虑的还是网站的上线。这个功能或许很快就会推出了(说不定写完blog就去整这东西了)。
    如果说“老照片”是我的第一块试验田,那这个网站就算是第二块试验田了。“老照片”基本认定是失败的了。至于失败的原因在早前的blog中已有分析过了。
    主要两点:
    1. 缺乏必要的基础资源,无法引导用户。
    2. 图片网站对搜索引擎并不友好,SEO难度过大。
    “国学阅读网”应当也有不少问题,但至少这这两点上会比“老照片”好些。国学阅读网上的古文典籍,本身就是网站的基础资源。收藏夹、书签等功能可以为用户的阅读带来便利,有一定的实用价值。
    网站的古文典籍,本身是大量的文本信息相比图片,这对搜索引擎要友好得多。
    当然“国学阅读网”在SEO方面也个很严重的问题。古文资料在网络上已经是一大把了,而且资料是从网络上收集来的,很容易被搜索引擎打入黑名单。
    无论如何,看看新网站的表现了。

————————关于Django————————
    Django的开发速度确实挺快,就是修改表结构的时候比较郁闷。Django不能象Hibernate一样自动修改表结构。
    这个工程的项目结构在我看来有些乱。Django提倡各个模块要相对独立,这样可以提供模块的复用性。这样模块想引入新项目的时候,只需要做个简单的url配置就可以。但事实上各个模块之间要做到完全的独立似乎并不是一件容易的事,比较项目本来就是一个整体,完全独立的模块太少。项目的前期我有刻意的将模块独立,但到了后期我舍弃了这个做法。