Most popular post

It seems this is the most popular post I have here 

Apparently, people like step by step instructions! 


 I just came across this site: Brython

The idea is to replace javascript with Python inside the browser. I really like the idea, and hope it can take off! We have all heard the design flaw of javascript and were told have to live with it. Maybe we don't have to!

Google Course Builder

Google introduced "Course Builder" not so long ago. It is a open source project for building training courses. This is the introducton video:

I deployed it to my own GAE instance and it works beautifully without much difficulty. It sounds like a perfect solution for some startup trying to build training solutions, let me know if you want to build one. I might be able to help. 

Here is the URL running on my GAE, I have not done much, but it is easy to change according to any requirements. 


Python Class

 There is a very good Python tutorials on Youtube, check it out if you have time.


Another CMS on AppEngine

On my research on CMS running on AppEngine, I found a new one called gae-django-cms 

Try to the name, I am able to deploy the code to Google AppEngine in under half an hour.

Check this out:



Posting with FCKEditor

It has always been a problem of editing html for posting to html blog, then I found one editor which I can easiey integrate with this blog. 

I learnt this editor from App Engine Site Creator. It uses this editor. I though I should be able to do the same since it is running on Python. 

Just a few hours later, I am happying blogging with this editor. It has cutdown the time of composing the blog by at least half.

If you are interested, please feel free to grab the code from Github 

For a view of the UI, please check editor

PIL working with AppEngine

I am so glad to read the PIL is working on AppEngine here, will test it out.

Instant Press in AppEngine

My original intention is to run Instant Press on AppEngine. I have run into a few road blocks, here is a few

  • Admin login works with localhost: http://localhost:8000/admin/default/site, but it doesn't work with !!
  • Try follow to install Instant Press won't work, have to use git repository. I have it here if you want to grab it
  • When deployed to AppEngine, it is complaining about the table column named "parent". It has to be changed to something else.

I managed to run Instant Presse locally

Finally, I hit this error in AppEngine and have to give up. Apparently, it is using PIL internally and it is not supported in AppEngine.

			Traceback (most recent call last):
  File "/base/data/home/apps/s~charles-web2py/2.362154009981920312/gluon/", line 209, in restricted
    exec ccode in environment
  File "/base/data/home/apps/s~charles-web2py/2.362154009981920312/applications/instantpress/controllers/", line 11, in 
    from plugins.instantpress.admin import PluginI2PAdmin
  File "/base/data/home/apps/s~charles-web2py/2.362154009981920312/gluon/", line 298, in __call__
    raise e
ImportError: No ...

Python CMS

I have been searching for a open source CMS based on Python for a while, and I think I found it:

The feature set looks impressive, especially working with AppEngine. I will report back late on my findings.

  • Free and Open Source
  • Manage articles, posts, and pages
  • Manage users, categories, links, comments, uploads, styles
  • Change logo, and front page without editing source code.
  • Comments can be disable, or use disqus as comment system.
  • Many widgets: addthis, last posts, links, tags, categories, archives.
  • WYSIWYG editing, using CKeditor
  • Multiple register method: Recaptcha, Confirm by mail, etc.
  • Avatars.
  • Using best practices baked in: cross-browser normalization, performance optimizations as a base template.
  • Customize, come with 2 layout ready. Make your own customization. See customization.
  • Developed in pure python using web2py as a framework.
  • Ajax, use jquery and jquery-ui.
  • Visual notifications.
  • Feed articles and comments.

Bulkupload to AppEngine

I found that the Bulkupload is very useful in AppEngine, please refer to here for documentation. The configuration is pretty much self explanatory:
- kind: Unit
  connector: csv
    - property: id
      external_name: id
      import_transform: int
    - property: type
      external_name: type
    - property: unit_id
      external_name: unit_id
    - property: title
      external_name: title
    - property: release_date
      external_name: release_date
    - property: now_available
      external_name: now_available
      import_transform: 'lambda x: True if x == "True" else False'

I like the import_transform option a lot, which allows a lot of creativity.

Just tried a few and worked beautifully:

CGuo@CGUO-E8420 ~/Dropbox/docs/workspace4.2/coursebuilder/data
$ upload_data --url=http://localhost:8083/_ah/remote_api --config_file=../bulkloader.yaml --filename=unit.csv --kind=Unit
03:22 PM Uploading data records.
[INFO    ] Logging to bulkloader-log-20120920.152255
[INFO    ] Throttling transfers:
[INFO    ] Bandwidth: 250000 bytes/second
[INFO    ] HTTP connections: 8/second
[INFO    ] Entities inserted/fetched/modified: 20/second
[INFO    ] Batch Size: 10
Please enter login credentials for localhost:8083
Password for
[INFO    ] Opening database: bulkloader-progress-20120920.152255.sql3
[INFO    ] Connecting to localhost:8083/_ah/remote_api
[INFO    ] Starting import; maximum 10 entities per post
[INFO    ] 11 entities total, 0 previously transferred
[INFO    ] 11 entities (3197 bytes) transferred in 18.7 seconds
[INFO    ] All ...