强大实用的micolog博客系统

这两天一直在玩弄google app engine和sina app engine,可以说是爱不释手,可却又不能用来做些什么,真是可惜至极,两个app都非常优秀,sae的wp程序更新到3.12版本,还支持一键安装,这正是弥补我之前无法运行sdk的问题,gae虽然还没有人移植wordpress,不过其中的micolog博客程序跟不弱于wordpress,还支持导入wordpress导出的数据库文件,无缝连接,micolog程序是我这两天停留最长的时间,真的很不错,说实话,要不是gae被墙,我真的有转移micolog的冲动,相信许多童鞋都有这个想法,sae还没出绑米服务,gae又被墙,看来它们只能当大家的玩物和试验品。

虽然gae被墙,但是对我这个在墙外生活的人来说,gae的免费始终有帮助于我,之前我帮华人做了不少商业公司网站,这回又多了一个免费稳定的空间,在国外可真是好啊,micolog和wordpress一样灵活,主题可以自己设计,不管是商业网站还是公司网站以及网店,都可以实现,而且可以绑米。除此之外,我倒有兴趣说说我对micolog和wordpress之间的看法:
wordpress可以说是专业博客程序,而micolog可以说是wordpress的灵魂,该有的都有,不该有的也都去掉,简单而实用,可以说更容易上手,比起wordpress复杂的功能选项,micolog更人性化。

micolog

图文详解如何为Micolog配置windows live writer

这两天看到一个童鞋的micolog博客,这款主题真是太合我意了,目前我还没有看到一款wordpress类似这样的主题,micolog的大多数主题都是从wordpress的主题移植而来,都是相当不错的主题,我钟意的那款主题也是被修改而成的样式,这两天逛着逛着把自己的博客都给忽略了,这两天忘了更新,还请大家原谅。

gae和sae我更喜欢gae,google的产品功能比较强大,程序也比较多,但就是有一点很有问题,那就是无法备份代码文件,只能上传不能下载,如果丢失本地文件,那不是无法更新了嘛,还好有人编写了一个工具:

用于将GAE站点的代码打包成zip格式并下载

步骤如下:

1.在根目录下根据manatlan的代码建立zipme.py

2.在app.yaml中加入

- url: /zipme
  script: zipme.py

3.访问youapp.appspot.com/zipme

zipme.py脚本

#!/usr/bin/env python # -*- coding: UTF-8 -*- """ ########################################################################## ZipMe : GAE Content Downloader ########################################################################## Just add this lines in your app.yaml : - url: /zipme script: zipme.py ########################################################################## """ # manatlan from google.appengine.ext import webapp from google.appengine.api import users import wsgiref.handlers import zipfile import os,re,sys,stat from cStringIO import StringIO def createZip(path): def walktree (top = ".", depthfirst = True): names = os.listdir(top) if not depthfirst: yield top, names for name in names: try: st = os.lstat(os.path.join(top, name)) except os.error: continue if stat.S_ISDIR(st.st_mode): for (newtop, children) in walktree (os.path.join(top, name), depthfirst): yield newtop, children if depthfirst: yield top, names list=[] for (basepath, children) in walktree(path,False): for child in children: f=os.path.join(basepath,child) if os.path.isfile(f): f = f.encode(sys.getfilesystemencoding()) list.append( f ) f=StringIO() file = zipfile.ZipFile(f, "w") for fname in list: nfname=os.path.join(os.path.basename(path),fname[len(path)+1:]) file.write(fname, nfname , zipfile.ZIP_DEFLATED) file.close() f.seek(0) return f class ZipMaker(webapp.RequestHandler): def get(self): if users.is_current_user_admin(): folder = os.path.dirname(__file__) self.response.headers['Content-Type'] = 'application/zip' self.response.headers['Content-Disposition'] = \ 'attachment; filename="%s.zip"' % os.path.basename(folder) fid=createZip(folder) while True: buf=fid.read(2048) if buf=="": break self.response.out.write(buf) fid.close() else: self.response.headers['Content-Type'] = 'text/html' self.response.out.write("<a href=\"%s\">You must be admin</a>." % users.create_login_url("/zipme")) def main(): application = webapp.WSGIApplication( [('/zipme', ZipMaker)], debug=False) wsgiref.handlers.CGIHandler().run(application) if __name__ == "__main__": main()

这段代码会通过google的身份认证来判断访问者是否可以下载代码,所以不用担心代码泄漏。

最后献上我的镜像站点:zhengyong100.appspot.com 大家翻墙看看,主要考验你的翻墙能力,呵呵。

分类:网络博客 标签:,,,

上一篇:QQ比电话好用你信不信,反正我信了

下一篇:令人蛋疼的西游记点解

已经有49条评论!

Loading...
  1. 系统很不错 啊

    33F

Leave a Reply to scott jersey

gravatar

冷笑 忧伤 恶魔 笑脸 红脸 咧嘴笑 吃惊 惊讶 困惑 耍酷
大笑 抓狂 痛苦 转眼珠 眨眼 好主意 囧 无表情 哭泣 坏笑