Thursday, November 26, 2009

Please upgrade cpedialog to version 2.0 RC to fix the permanent link error

cpedialog 的 permanent link 是通过调用 Google Translate 站点而得到的,由于 Google 最近更新了 translate 站点,导致 cpedialog 不能计算正确的 permanent link。


本来打算替换使用 Microsoft 的翻译服务,因为 Microsoft 的翻译服务不像 Google 仅仅只是提供了一个 Ajax API. cpedialog 需要在后台对 permanent link 做一些处理和判断,通过js前端获取后传到后台并不是很方便。但是通过仔细阅读 Google AJAX Language API 的文档后发现,原来 Google 是提供了直接调用的 REST API 的,具体可以参考:Class Reference for Translation API, 于是赶紧使用新的 API 修复了这个严重的问题.


这次发布的2.0RC版本还修复了其他一些bug,并对界面做了细微的调整。


PS:感谢网友celeron首先报告该问题。

Tags: cpedialog


Monday, July 20, 2009

cpedialog v2.0 will release soon

是的,我承认我很懒,同时最近一段时间以来,处理了很多“大事”,这些的确让我很难抽出时间用在cpedialog的后续开发上。

但是你也看到我正在努力,我已经牺牲了几个周末的休息时间,增加了一些功能,修复了一些bug,花了很多力气在UI改进上。如果你是一个细心的人,从这个博客最近的变化中已经能够感受到我们的进步。

当然,我们的程序是为追求自由的人而创建,只需要一个domain就可以开始自己的网站之旅,可以自己控制一切,当然更重要的是我们在实践中能有所学。6年前,当我第一次想自己做一个博客的时候,我便坚持要自己的东西,我讨厌博客就是满篇转载别人的文章,我讨厌所有人的站点都是一个模式。

个人站点不同于商业站点,它很难为他人实现价值,即使在你看来再优秀对别人可能也是一文不值。所以我们要让个人站点来为自己实现价值。如何实现?只为一个为展示,表达自己的平台。如果它变成了一个单一功能的收藏夹又或是转载被转载了无数次的文章的储存区,那么它的存在又有什么意义呢?它完全可以被其他更好的应用而取代,为什么不用delicious做收藏,用gmail存储文章也好啊,更方便你日后的搜索。

扯远了...

cpedialog应该会在最近发布2.0版本,我会在下面列出一些新的features和fixed issues. 希望继续关注。

  • 1. OpenID 登录支持,同时增加站内注册功能,当然你仍然可以使用Google account登录。
  • 2. Google analytics 整合。
  • 3. Google profile 整合。
  • 4. Google books library 整合。
  • 5. Upgrade YUI to latest version and fix some bug especially in the system configuration.
  • 6. 首页grid关闭展开功能,由于我们使用了yui grid,所以你可以很容易修改整体的布局,同时这个关闭展开功能会很有用。有兴趣的可以去代码里找找如何用js动态实现这个collapse的。
  • 7. 图片自动缩放功能。
  • 8. Google search 和 Site search 整合修正。
  • 9. 相册增加cooliris的支持,实现了相册适应cooliris的聚合,现在可以用超炫的cooliris浏览相册图片了。
  • 10. 一些css的调整。
  • 11. Menu后台管理部分的调整和前台样式的调整。
  • 12.Layout管理功能,你可以在网页上定义站点的布局。

Tags: cpedialog, blog


Friday, February 06, 2009

Sorry for delay release of cpedialog 2.0

I had a business trip to US in the last 3 month, so I hardly got time to focus on this project.
But I am back now, so I will continue to work on it.

Please don't be hesitated to give me suggestion or feedback. Thanks for your support.

BTW: I took a lot photos during my period in US, welcome to access my updated albums @ http://blog.cpedia.com/albums/yeli.piao

Happy Niu Year!

Tags: cpedialog, cpedia, python, blog, albums, appengine


Thursday, August 28, 2008

cpedialog v1.0 released

I'm very glad to announce the first release of cpedialog.
cpedialog is a blog tool for appengine user. It's an open source program that distributed under the terms of the Apache License 2.0.

Now its downloadable version is available from:
http://code.google.com/p/cpedialog/downloads/list

You can aslo get the project overview document from:
http://code.google.com/p/cpedialog

How to install cpedialog on appengine:
http://code.google.com/p/cpedialog/wiki/How_To_Install_cpedialog

How to integrate picasaweb album with cpedialog:  
http://code.google.com/p/cpedialog/wiki/How_to_ integrate_picasaweb_album_with_cpedialog

Any issue or bug, please report to:
http://code.google.com/p/cpedialog/issues/list

Thanks!

Tags: cpedialog


Saturday, August 16, 2008

cpedialog测试站点开通

We plan to roll out the first release of cpedialog. Before that, we open a demo site for cpedialog, so that everyone can test all the functions including the background.

cpedialog计划在本月release第一个测试版本。在此之前,我们开通了一个测试站点,让大家可以实际测试cpedialog所有的功能。

Demo site: http://cpedialog.cpedia.com/

Login with your google account and then you will get all the privileges for operate the cpedialog. 

Welcome to test and wish u give us your feedback.

使用你的google帐号可以直接登录,测试站点去掉了管理员权限控制,你可以使用全部功能。

欢迎测试并期待大家的反馈。

Tags: cpedialog, cpedia


Monday, August 11, 2008

Using reCAPTCHA in cpedialog for anti spam

原先就想为cpedialog加上anti-spam的功能,这两天发现我的博客里有一篇文章每天都会定时被机器人自动回复广告内容,已经手动删除好几次了,现在看来是出手的时候了。


目前大部分的博客,论坛普遍采用的方式是让用户输入一个扭曲变形的图片上所显示的文字或数字来实现CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart) 。但是appengine的Images API并不支持图片的创建,使用第三方的python图像库会消耗太多CPU而同样受到appengine的配额限制。


幸好有reCAPTCHA,它本身就是一种由CAPTCHA的发明者所推荐的官方CAPTCHA服务。


到reCAPTCHA的官方网站注册后为自己的域名申请公钥和私钥后就可以开始使用它的服务了,


在appengine中使用非常简单,到http://pypi.python.org/pypi/recaptcha-client下载官方提供的代码,如果你不需要邮件地址隐藏功能的话,你可以删除mailhide.py只保留captcha.py,同时需要对captcha.py做简单的修改,将使用urllib2.Request相关部分代码改为使用google提供的urlfetch实现.


剩下的就是在你的回复页面打开的时候调用captcha.submit传入公钥等参数返回reCAPTCHA内容显示在页面上,提交回复的时候再通过传入私钥等参数验证图像代码输入。具体代码大家可以在googlecode的svn上参考cpedialog的实现。

Tags: recaptcha, cpedialog, featured


Wednesday, July 30, 2008

cpedialog listed on the Google Appengine open source projects

cpedialog 已经被列在google appengine group的open sourc项目列表里面了。

http://groups.google.com/group/google-appengine/web/google-app-engine-open-source-projects

另外,我更新了cpedialog在google code上的项目介绍,增加了一些screenshots。

http://code.google.com/p/cpedialog/

cpedia在appgallery的地址是:
http://appgallery.appspot.com/about_app?app_id
=agphcHBnYWxsZXJ5chMLEgxBcHBsaWNhdGlvbnMY6B4M


Tags: cpedialog, python, appengine


Saturday, July 19, 2008

yui在cpedialog中的应用

yui是继dojo后我用过的第2个ajax library。 因为工作原因一直使用dojo0.4,最近公司portal升级也开始迁移到dojo1.1,从0.4到1.1的升级应该是让很多人诟病的一件事情,但尽管如此dojo仍不失为一个优秀的javascript toolkit。


为什么我没有选择dojo用在cpedialog里呢?原因很简单,dojo1.1的发行版源文件个数太多(去掉测试和样例后还有2000多个),超过了appengine的免费版本的文件个数配额限制,而yahoo为yui提供了免费hosting服务 (参考: "Serving YUI Files from Yahoo!" )。 这是yui最开始吸引我的最主要原因,但是后来发现yui带给我的是一连串的惊喜。


yui意即Yahoo! UI Library,它的component里除了一些js library外,还有几个CSS Tools. 首先被用在cpedialog里的便是CSS Grids,使用它可以很方便的通过yui定义的几个div来规划网页的布局,使用cpedialog的用户可以很方便的通过修改既定div的id和class就可以重新定义layout。 yui的css Grids应该是经过精心设计的,除了可以很快的重新分布你的网页布局,还有其他一些考量,譬如对搜索引擎优化(SEO)。 


第2个使用的component是Connection Manager,这个是用于XHR/Ajax的,类似与dojo的io。 cpedialog系统管理模块的ajax调用都是通过它实现的,在后台实现中参照了这篇文章:Using AJAX to Enable Client RPC Requests,所有后台暴露的PRC方法都通过一个统一的入口,除了安全的集中控制还可以得到一些扩展的好处,另外使用simplejson来做python对象和json之间的转换。Ajax很美,但是我为什么只用在后台管理模块呢?其实我是基于这样的考虑,我个人是个win mobile fans,用手机上网是件频繁的事情,在中国用2.5G的网络搭配像UCWEB这样优秀的手机浏览器上网体验应该说还不算坏,大量的使用Ajax意味着你的网站在通过手机访问时存在问题(至少对目前很多手机浏览器都是如此,目前还没有任何手机浏览器能达到A-Grade Browser Support)。

在后台管理模块中yui的DataTable也被使用。 你可以看到一个实现了inline editable, deletable的table。在了解yui的DataTable后彻底发现dojo1.1里的grid应该是参照了yui的设计实现,table clumn和data的分离,另外定义详细的table内元素事件,yui的DataTable设计是很优美的,初次使用你可以会遇到小小的麻烦,尤其是当你对datatable API不是很熟悉的时候,强烈建议你认真阅读Daniel Barreiro (screen name Satyam)发表在yblog里的两篇文章 (Part One: Getting Started; Part Two: Changing Data in the DataTable),文章里的代码可能需要根据yui最新发行版作小小的改动。另外我找到了Satyam的个人站点http://www.satyam.com.ar/,里面有不少好东西,http://www.satyam.com.ar/yui/ 目录里有一些yui的code sample。


yui的calendar是下一个将会被使用在cpedialog里的component,请继续关注cpedialog。

Tags: yui, cpedialog, ajax, editable_table, yui_grid, yui_datatable, yui_connection, featured


Thursday, July 17, 2008

My Projects

cpedialog


http://code.google.com/p/cpedialog

blog implemented by python and can be hosted on google appengine

Now you can access the Demo at: http://blog.cpedia.net

Features:

blog

  • using yui grid, so it's very easy to change or extend the page layout. auto-generate permalink url through translating the blog title by google.
  • tags for the blog entry.
  • rich content editor by yui rich editor.
  • Ajax implemented by simplejson & yui Connection Manager. (Such as inline editable table.)
  • Upload images file to bigTable in yui rich editor.
  • Uploaded images, tags, archives, albums management.
  • Menu & pages management.
  • AuthSub Session Token and System cache management.

albums

  • access the picasaweb albums through gdata API.
  • authSub implemented by decorating the python method.

cpediamond

will be moved to google code and renamed to cpediamond.
It's a DSL transform engineer. The previous version was called "Spring & Hibernate code generator"


googlevoice-gae


http://code.google.com/p/googlevoice-gae

Google voice unoffical api for Google App Engine.

This project is base on pygooglevoice , adapt it to Google App Engine Python environment.

This project aims to bring the power of the Google Voice API to the Google App Engine Python environment in a simple, easy-to-use manner. Currently it allows you to place calls, send sms, download voicemails/recorded messages, and search the various folders of your Google Voice Accounts. You can use the Python API to schedule calls, check for new received calls/sms, or even sync your recorded voicemails/calls.

You can refer to pygooglevoice's documentation. Documentation and example code is available online and provided in the extras package

If you want to learn more about this project, you can refer to my blog post here: http://blog.cpedia.net/2010/01/google-voice-on-app-engine


Tags: cpedialog, cpediamond, python, spring, hibernate, code_generator, DSL


Thursday, July 10, 2008

cpedialog程序开源

cpedialog已经落户到google code了,地址是 http://code.google.com/p/cpedialog/

如果你想在appengine上架设自己的站点,cpedialog是个不错的开始,尽管我们还没有发布测试版本,你仍然可以通过svn检出最新的代码。
 

# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://cpedialog.googlecode.com/svn/trunk/ cpedialog-read-only 
 

我们希望在第一个release时实现一些google service的整合,譬如picasaweb,calendar,docs等。

我们欢迎任何对appengine感兴趣,熟悉python的朋友加入cpedialog项目。有意者请给我发邮件:cpedia@gmail.com

 

Tags: cpedialog, appengine, python