Python Desktop Server Weblog 2003/1

a picture of myself

Münsterland.org

2003-01-31

Installation for Debian and a new beta 0.2.5

There now is a new beta version, just use the normal installation methods. If you run Debian, you can use the debian installation tools now, as there are debian packages available. These are built based on the very same source as the normal distribution.
posted at 14:07:12    #
 
2003-01-30

Yet another beta version - 0.2.3

Ok, fixed a small bug in StoryTool, where you couldn't change the text formatting when editing, added better page browsing to aggregator and eventlog and added rendering hooks to the StoryTool. Renderhooks are macros that are called with the StoryID as parameter when the stories they are hooked in is changed. The hook is selectable in the story editor.
posted at 16:39:44    #
 

Download page for PyDS

There are now beta versions on the download page. Yes, the Python Desktop Server is gone beta! The current beta is quite feature-complete in comparison with Radio. The aggregator was fixed in the betas and the HTML of the desktop web site was fixed and made compliant with HTML standards (this fixes display errors with iCab and Omniweb).
posted at 12:01:20    #
 
2003-01-24

Latest Alpha has a working news aggregator!

The latest 0.1 alpha version now has a working news aggregator. I think I will do some more work on it to be a bit more stable and then - maybe even this weekend - make a 0.2 beta version! Hurray Smiley

In context of the aggregator there is a new DownstreamTool that handles all downloads and keeps a cache of already downloaded files. The cache can be managed from the web interface.

What still is missing is purging of old entries from the aggregator database.

posted at 18:48:48    #
 
2003-01-22

Nuggets can now be switched 'active'

What does this say? Actually an active nugget is just the same as an dynamic nugget. Only you can't pass any parameters (you can, but they will be ignored). So what is so cool about them? Simple. Active nuggets are not rendered inline. Instead a script reference is rendered. And a javascript file is rendered. The generated javascript will output the rendered nugget. This still isn't as cool as it gets when you know that active nuggets can be hooked into the timer Smiley

Yep, it's what you might expect: dynamic content in static pages. You create a nugget that just renders something, for example google searches. Then you use it in your firstBelowCalendar nugget. This way you get a script reference in your pages that pulls in your active nugget. The timer periodically updates the search and when google gives new output, the file is updated and upstreamed and on next reload people will get new content. But only in that little box - you don't have to rerender the whole page!

As an example have a look at google for a given term (needs getGoogleKey defined!) and nugget to search for PyDS on sites beside my own. The nugget is called in my firstBelowCalendar nugget.

The active nugget is only availabe once in the system, every invocation will get the same input. So if you want to have different versions, create different nuggets and put the conditional statements into the static nugget (firstBelowCalendar for example).

posted at 17:08:32    #
 

TimeTool for automatic periodic activities

There is now a TimerTool that manages periodic activities. You can set up activities that should run every X minutes. There currently is only one activity defined, recreation of rendered story contents. This actually executes macros in the background.

A typical use would be to create a story with several file download boxes with macros.downloadLinkBox and put descriptions in there. This story you set up as a timer that is run every 60 minutes. Now every 60 minutes the system reruns all macros and so copies files to the gems folder and triggers upstreaming, if the story itself changed - otherwise the upstreaming will happen on the next upstreaming interval.

This produces an automatically maintained download page.

If you need other activities, tools must hook them into the TimerTool. Look at the StoryTool to see how that works.

posted at 14:05:04    #
 

New macros for copying files to the cloud

The CVS Alpha now has new macros to copy files to the cloud that return either only an URL, a box with file data or a box with the files source. Files are copied to the gems subfolder of the www folder and are linked accordingly. This helps maintaining external file repositories and connecting them together in one story to simulate download spaces.

The local filename can actually either be a local filename or an http url. If it is an url, the file is downloaded via http and stored locally. I use this to create my downloads page.

posted at 11:35:44    #
 

Several changes in the context of text rendering

I made several changes to make text rendering more robust, especially in the context of RSS and TopicExchange. Yes, a really slow day, yesterday Smiley
posted at 10:44:32    #
 
2003-01-20

PyDS now supports TopicExchange

The Python Desktop Server now has integrated TopicExchange support. You can fetch the list of topics, select some topics for your use and on posting in categories, you can select topics that should be pinged with your posting!

And it shouldn't include HTML tags now, as they should be stripped. This might leave ugly formatted text, but who cares, it's only an excerpt ...

posted at 19:26:08    #
 

RSS rendering factored out

There will be an abstract RSS rendering API, so that tools can quite easily implement RSS rendering using the standard RSSFeedRendering.tmpl. You just have to implement the following three methods:
  • getRSSTitle should deliver your feeds title
  • getRSSDescription should deliver your feeds description
  • getRSSItems should deliver your items as hashes with the RSS tags as keys (all lowercase!)

Just have a look at the WeblogTool to see how that works out, or look into the StoryTool for another implementation (yes, stories now have an RSS feed!)

As a side effect of this changes is that the RSSFeedRendering.tmpl has changed, so throw your local copy away when upgrading!

posted at 16:53:36    #
 

abstract RenderTool for rendering content

In CVS now there is an abstract rendering framework. The RenderTool is only a background thread with hooks, where you can hook in your tool to get background rendering with only little effort. StoryTool, MacrosTool and NuggetsTool use it to render their items and the index page.

Nuggets and Macros are only rendered if a publish flag is set to yes. Stories now are only rendered if a draft flag is set to no.

The pyds.css file has changed to add styles for h4-h6 and structured text starts now at h4 level for headlines (so you have 3 levels of headlines in a text, this should be enough for most purposes).

posted at 15:15:28    #
 

Structured Text now checked in

The current version now has structured text as promised. Works out quite nice, I think. There are some reworkings of inner parts in the queue, but I think the version will stabilize quite soon. And then I will release a 0.2 Alpha.

My versioning scheme will be as follows:

  • 0.x versions are beta
  • x.even numbers are stable
  • x.odd version numbers are development

The project will stay in Alpha mode as long as functionality is still to be expanded. As soon as no massive new functionalty changes are planned, I will go Beta. In Alpha, all internal APIs can change without prior notice and so templates and stuff like that might be reworked and changed. With Beta mode I expect to have at least stable APIs, only the server itself might be changed and stabilized.

Later with released versions, the development versions will be the area where big changes are done and the stable release will be exactly that, stable. Hopefully Winky

posted at 10:59:28    #
 
2003-01-17

New version will get non-HTML formatted postings

There will be an option to write postings without the need to learn HTML. It uses the reStructuredText parsers from the Docutils packages to format simple pain text. The title of this posting is linked to a quick reference for the reStructured Text. I won't implement all elements, though.

One important thing: if there are conflicts with the reStructuredText and the Cheetah Template language, you might put the macro-calls or whatever into `backticks`, so they won't be evaluated and changed by Docutils.

This will be some weird thing, but I think it might be important to make the package more accessible for non-HTML users.

As a preparation you should add the Docutils package to your PyDS installation. You can read how in the Installation from Source.

posted at 18:56:16    #
 

New tool in CVS: Nuggets

Nuggets are small templates that are integrated into the bigger rendering templates. There are predefined nuggets that are empty, but can be filled. Those are called by BaseRendering.tmpl

You can define your own nuggets and call them like macros with keyword parameters. Nuggets get the same namespace like templates do, so you can call tools and stuff like that inside.

Nuggets are best suited when you want to return just a handfull of HTML. Macros are better suited when you have to work with data to produce something. For example pulling in content of a file from the filesystem definitely is a macro, returning an image of yourself with some HTML around it might be a nugget, if it doesn't need too much parameters and if content ist mostly static.

I use it for the image on the left side above the Navigation area.

posted at 12:03:28    #
 

Several bugfixes and new features in CVS

Just redownload the package and upgrade. This upgrade changes templates, so you should remove your local templates to enable PyDS to upgrade them. Bugfixes are in the calendar, in upstreaming, in RPC and much other parts of the system. Since I now changed my installation from Radio to PyDS, changes should calm down now. Although - you never know what I might cough up Winky
posted at 10:48:48    #
January 2003
MoTuWeThFrSaSu
   1 2 3 4 5
6 7 8 9101112
13141516171819
20212223242526
2728293031  
Dec
2002
 Feb
2003

This is the Python Desktop Server weblog.


(Donations will be used by the author to buy stuff, fullfill selfish wishes or do other silly recreational things. You have been warned.).
The PyDS is
OSI Certified Open Source Software

Python Powered

XML-Image

© 2003-2007, Georg Bauer