Production!

2 views
Skip to first unread message

Shalabh Chaturvedi

unread,
Mar 15, 2005, 1:51:40 AM3/15/05
to ql...@googlegroups.com
The latest QLime (0.5.2, to be released soon) is now in production at
www.cafepy.com.

To see under the hood of this installation, go to
http://www.cafepy.com/_q_registry/

Enjoy!

Shalabh

jeremy...@gmail.com

unread,
Mar 19, 2005, 3:49:58 PM3/19/05
to ql...@googlegroups.com
What a joyous piece of software 0.5.1 is.

I've had a minor problem with the reST implementation, but didn't want
to pollute the group with a whole new "topic" about it.

Using an ".. image:: where/blah.png" line in a reST file causes QLime
to report "not found" on the reST url. The same reST file parses fine
with docutils rst2html.

I can't work out what the problem is. Can anyone else reproduce this?
It would also be useful to have a debug mode for locating such
problems.

Regs,
J

Shalabh Chaturvedi

unread,
Mar 19, 2005, 4:32:09 PM3/19/05
to ql...@googlegroups.com, jeremy...@gmail.com
jeremy...@gmail.com wrote:
> What a joyous piece of software 0.5.1 is.

Thank you!

> I've had a minor problem with the reST implementation, but didn't want
> to pollute the group with a whole new "topic" about it.

That is what the list is for - people can report problems and I can fix
or document them as appropriate. I'd be happy if people report all their
problems, specially annoying ones, (even if they were able to solve
them) so that I can document or change code to make life easier for all
future users.

> Using an ".. image:: where/blah.png" line in a reST file causes QLime
> to report "not found" on the reST url. The same reST file parses fine
> with docutils rst2html.

I know. QLime turns off all docutils directives. This is for security,
since the same package is used for markup of comments, for example, on
cafepy.com - anyone could post a comment with:

.. include : /etc/passwd

or include other local files in a public web page. Unfortunately,
docutils does not let you turn off directives for each render, it
happens at the module level - see qlime/service.py:

# what a hack - disable docutils directives
import docutils.parsers.rst.directives
docutils.parsers.rst.directives._directive_registry = {}

You can remove this line to enable directives in your site. As long as
you don't use other applicatoins within QLime that reSTify publicly
posted text, you should be fine.

> I can't work out what the problem is. Can anyone else reproduce this?
> It would also be useful to have a debug mode for locating such
> problems.

ql...@googlegroups.com

Cheers,
Shalabh

Shalabh Chaturvedi

unread,
Mar 19, 2005, 4:48:47 PM3/19/05
to ql...@googlegroups.com
I have now changed the setting in this group so that the Reply-To header
is not modified. Earlier it was setting Reply-To to the entire group.

So now the 'reply' button should send a response only to the author (and
'reply all' for the group).

Shalabh

ken...@gmail.com

unread,
Apr 1, 2005, 1:47:15 PM4/1/05
to ql...@googlegroups.com
Oh...this looks excellent, Shalabh! I just sent this link to a buddy of
mine who's dipping his toe into Python web frameworks (from the .NET
world). He's been playing with Quixote...but you're kicking butt with
QLime, I have to say. Sometime between this and my last email (awhile
back), the REST implementation has gotten a lot cleaner.

ie,

http://www.cafepy.com/discuss/54/
vs.
http://www.cafepy.com/discuss/?node=54

or some such.

(It may have been possible before, but I hadn't seen it in the demo)
VERY nice! That was my biggest "gripe"...I'm excited about installing
the new code and playing around.

Thanks, dude!

Ken

Shalabh Chaturvedi

unread,
Apr 1, 2005, 10:07:38 PM4/1/05
to ken...@gmail.com, ql...@googlegroups.com
On Apr 1, 2005, at 10:47 AM, ken...@gmail.com wrote:

>
> Oh...this looks excellent, Shalabh! I just sent this link to a buddy of
> mine who's dipping his toe into Python web frameworks (from the .NET
> world). He's been playing with Quixote...but you're kicking butt with
> QLime, I have to say.

Thanks for the support! Note that the actual apps running on cafepy.com
(~1000 lines of code, ~1000 lines of templates that implement user
management, discuss and other apps) are not part of QLime yet. But soon
they will be, so you'll be able to create a cafepy.com like site
without having to write any code.

> Sometime between this and my last email (awhile
> back), the REST implementation has gotten a lot cleaner.
>
> ie,
>
> http://www.cafepy.com/discuss/54/
> vs.
> http://www.cafepy.com/discuss/?node=54
>
> or some such.
>
> (It may have been possible before, but I hadn't seen it in the demo)
> VERY nice! That was my biggest "gripe"...I'm excited about installing
> the new code and playing around.

I'm not sure which problem you're referring to but many changes have
gone in since the last time you posted.

ReST isn't 'fully' functional in the sense that directives are turned
off. This is good for public postings of course (security issues), but
pages on the server can't use directives either (to include images for
example). There is no clean way of selectively turning off directives,
unfortunately.

Cheers,
Shalabh

ken...@gmail.com

unread,
Apr 22, 2005, 10:13:07 AM4/22/05
to ql...@googlegroups.com
Ah. I didn't read the earlier parts of this thread before I replied,
which made things confusing. My reference to REST ("the REST
implementation has gotten a lot cleaner") refers to a completely
different thing than the earlier mention of reST ("I've had a minor
problem with the reST implementation"). I'm talking about REST ->
Representational State Transfer, not reST -> reStructured Text.

(Overview of "my" REST:
http://en.wikipedia.org/wiki/Representational_State_Transfer)

In particular, I'm talking about the principle of giving each resource
it's own URL, vs. using a common one and GET/POST parameters. As in my
example before, at the cafepy website, you have:

http://www.cafepy.com/discuss/54/

vs.

http://www.cafepy.com/discuss/?node=54

In the second example there, the URL is http://www.cafepy.com/discuss/.
ALL discussion uses that URL, and changes the GET payload (which at
least you can see) to get different data. In the first example, node 54
has it's own URL, as would node 53, 43, 15, etc.

My question (and it may be a stupid, obvious, or more quixote-related
one), is "how did you do that"? I checked out the svn code, and played
with the demo, but it's similar to the old one. For example, if I
create a note with noteid=1 in Notekeeper, I get to it via:

http://localhost:9080/noteapp/?noteid=1

If I try

http://localhost:9080/noteapp/1

I get "requested link does not exist..." blah blah. I need to go look
at the code...(I'm being lazy *grin*), but I want the SECOND reference
there to work, vs. the first. The second style works at cafepy.

That make more sense now? Hope things are well...this stuff really does
rock. Great job.

Thanks again...

Ken

Reply all
Reply to author
Forward
0 new messages