WikklyText 1.2.0 released

This release of WikklyText fixes a show-stopping bug in the XSS filter that caused almost all links to be removed. You almost certainly want to upgrade to this release. This release also added compatibility with CherryPy 3.1beta. Requests for "PageName" are now redirected to "PageName.html" (assuming "PageName" is a valid item). Other minor updates.

Read more and download at the WikklyText homepage


Running CherryPy based apps under Google's App Engine

Google's App Engine is a new application platform from Google that allows you to run custom Python code on Google's infrastructure. From their website:
Google App Engine lets you run your web applications on Google's infrastructure. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. With App Engine, there are no servers to maintain: You just upload your application, and it's ready to serve your users.
Several websites (including Google) make the claim that App Engine is compatible with any WSGI framework, even mentioning CherryPy by name. Unfortunately, they don't give any examples using CherryPy, and it turns out that it doesn't quite work "out of the box". Fortunately it wasn't too tricky to get it working, so I documented the steps here.

Click through to read more ...
Written in WikklyText.

WikklyText 1.1 released

This is a minor update to the WikklyText stable series. Changes:

Changes:
  • Added RSS (2.0) feed to wiki. Feed is formatted to allow autodiscovery so you don't need to do anything. You can exclude items from the RSS feed by tagging them with norss.
  • Wiki will now serve any files found in folder files/ under your wiki root folder. See ServingFiles for more information.
  • API Change wikStore.py: Moved tag_add(), tag_del() and tag_toggle() into WikklyItem.
  • Always place absolute URLs in generated HTML. This was added to allow page links in the RSS feed to point to the correct location.
  • Stop putting domain names in parens next to links when rendering in safe mode. This was causing some aesthetic issues; it may be reenabled in a future release.
  • Stop performing reverse DNS lookups when showing logs. Far too slow.
  • Serve robots.txt (no restrictions currently; was added to prevent errors when crawlers request it).
  • Added more log reporting links on admin page.
  • Watch for buggy browsers that request favicon.ico instead of favicon.png as specified in <HEAD>

Downloads at the WikklyText homepage
Written in WikklyText.

WikklyText 1.0 released!

After a long period of stabilization, WikklyText 1.0 is finally available!

With this release, WikklyText now provides a full-blown wiki via the new wiki metatool "wik". This wiki is equally suitable for use as a "wiki on a stick" as well as a full multiuser wiki running behind Apache. The wiki is structured as closely as possible to a TiddlyWiki, continuing with the goal of providing compatibility with TiddlyWiki texts. And of course, the code is highly modular throughout to allow for easy reuse in your own wikitext rendering applications.

The Drupal plugin has also been updated for this stable release.

WikklyText now lives at its own domain, replacing the scattered pages here with a unified wiki. wikklytext.com runs on top of a WikklyText wiki so it serves as a good demonstration site as well.

Check it out at wikklytext.com

Written in WikklyText.

boodebr library 1.1 released

This is an update to the 1.x stable series.

This release adds several table-altering methods to sqliteQ. These routines provide replacements for functionality that is missing from SQLite's native ALTER TABLE implementation. This functionality is already available in boodebr.sql.sqlite_util but has now be brought up to the sqliteQ layer.

Added in this release are:
  • sqliteQ.add_table_column
  • sqliteQ.delete_table
  • sqliteQ.delete_table_columns
  • sqliteQ.get_table_columns
  • sqliteQ.modify_table_column
  • sqliteQ.rename_table

You can read more and download it from the boodebr library wiki
Written in WikklyText.

boodebr 1.0 now available

A new version of the boodebr library is now available. I've marked it as 1.0 to indicate that the APIs should be stable for a while now.

Changes in the release:

  • boodebr.sql.sqliteQ
    • New module for sharing SQLite connections across multiple threads.
  • boodebr.util.guid
    • A simple module for creating unique identifiers.
  • API change:
    • boodebr.sql.sqlite_util.get_tables() no longer returns special sqlite_* tables names. Pass special=True to get the previous behavior.
  • Other small bugfixes

You can read more and download it from the boodebr library wiki
Written in WikklyText.

boodebr 0.9.0 now available

Version 0.9.0 of the boodebr (Python) library is now available. Changes in this release:

  • boodebr.ion:
    • An object can define __ionize__() if it just wants to flatten itself for pickling and doesn't care about being rebuilt in deionize().
    • ionize() now takes flatten_only parameter which strips out any extra attributes added during pickling (in case you are sending data to a JSON client that can't handle them).

  • boodebr.config:
    • fileconfig is now threadsafe.
    • Make paths as needed when saving config file.

  • boodebr.sql:
    • Marked fpmsql.run() obsolete (does nothing that query() doesn't do).
    • Added defaults so that fpmsql() can be called with just a filename argument.

  • Other bugfixes

Downloads and documentation: boodebr module page

Written in WikklyText.

boodebr 0.8.1 (Python) released

The boodebr library is a collection of several Python modules I've written over time and finally collected together.

boodebr.ion


A serializer that implements the JSON/RFC 4627 object model, but can read/write XML as well as JSON streams. It provides a common API (internal and external); changing from XML to JSON (or vice versa) requires only a single parameter change. boodebr.ion implements true object pickling on top of the JSON and XML layers, and allows pickling of binary data, while remaining 100% compatible with RFC 4627.

boodebr.config


Supports configuration files similar in spirit to .INI files, but uses either JSON or XML format, and can contain arbitrary objects. It has a much simpler API than Python's ConfigParser.

boodebr.disthelper


Provides a number of utilities useful for writing setup scripts, providing replacements for some POSIX tools missing in many environments.

boodebr.sql


A light layer over pysqlite and/or APSW providing some extra convenience.

See the boodebr library page for downloads and more information.

Written in WikklyText.

svk, we're done; hello git-svn.

OK, I give up. I tried my best to work things out with svk, but it wasn't meant to be. I could have saved myself a lot of pain had I listened to other's experiences, but I wanted to give svk a fair shot. Having done that, I'm happy to say I'm a git-svn user now.

If you are trying to choose between svk and git, let me give you a sample of the pain you can avoid by using git ...

Getting started with Google Code and svk

I've decided to play with Google Code a bit, to host some miscellaneous code from boodebr.org.

Up to this point in my programming life, the only version control systems I've used have been darcs and mercurial, which are both distributed systems. The concept of having to use svn to access Google Code really made me cringe.

Fortunately, there is nice tool called {{tt{svk}}} which makes a standard svn server look very much like a distributed system. I wrote a little walk-through to demonstrate the basics of using svk with Google Code.

Read it here: Google Code: Getting started with svk

Written in WikklyText.
Syndicate content