IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Given your comments, perhaps we should rewrite?
I'd be *very* willing to head up a pure-Python rewrite (i.e. - no Zope), especially if the LRPD priesthood were willing to build it on top of my object server, "dejavu". :) Dejavu could certainly use the fine-tuning input that would come from a Linux + Apache + Postgres deployment, since my apps so far have been Windows, using both Apache and IIS, and SQLServer, MSAccess, and a proprietary app that first used ASA for storage. It would take:

1. A reasonable requirements document, including interface specs. Since the interface is the real strength of zIWE IMO, this would be first priority.

2. A Postgres "StorageManager" module. Not hard. The ADO manager is about 700 lines, and a lot of the Postgres code would copy the boilerplate of the ADO manager.

3. Interface code. The last web-based collaboration tool I wrote on top of dejavu was 4000 lines of Python + 1500 lines of HTML, and it's a *lot* more complex than zIWE. I'd guess zIWE would run about 1000 lines of Python + 500 or so HTML.


Thoughts?
New Put up a test environment z.iwethey.org/xforums
-drl
New You bet.
Although the 'x' key is close enough to the 'f' key on my keyboard, I'd make it ../testforums to avoid the remote possibility of a typo.

;)

Then label the heck out of it. I usually drop in a "watermark" background image that says "BETA" or "TEST" in big letters. When you're ready for production, it's a single edit to a CSS file.
New If that's your guess...
... then you'd be wrong. :-)

The HTML filter alone is 1100 lines.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New *That* I would like to see. HTMLTidy, anyone? ;)
New It's right here:
[link|http://z.iwethey.org/forums/SourceCode/src/htmlparse.py|http://z.iwethey.org.../src/htmlparse.py]
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Feature request
If I'm reading the code right, I'd like retURLFinderRaw to modify the RE to have one of the characters that you can end a URL with be "?". The reason being that it is kind of irritating to type in a URL at the end of a question - the ? is assumed to be part of the URL. (Besides, most ? marks in URLs are firmly embedded in the middle...)

Thanks,
Ben
"good ideas and bad code build communities, the other three combinations do not"
- [link|http://archives.real-time.com/pipermail/cocoon-devel/2000-October/003023.html|Stefano Mazzocchi]
New Re: Feature request
Like this [link|http://z.iwethey.org/forums/render/content/show?contentid=148373|http://z.iwethey.org...?contentid=148373]?
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New I wondered why I briefly got the Devil's Tower page...
You're too quick. :-)

Cheers,
Scott.
New Actually I just randomly take Zope down every so often
Just to look at that cool picture... ;-)
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Ha!
New Gracias
Out of curiousity, had I identified the right place to make the fix?

Thanks,
Ben
"good ideas and bad code build communities, the other three combinations do not"
- [link|http://archives.real-time.com/pipermail/cocoon-devel/2000-October/003023.html|Stefano Mazzocchi]
Expand Edited by ben_tilly March 24, 2004, 11:24:18 PM EST
New Yep.
All it took was a \\? in the mix.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Looks straightforward.
Thanks for sharing! Dispatching single-pass parser, it looks like (unless I missed something on a cursory glance). The bit about constructing a huge descending-length regex was interesting. I had forgotten about the WeeCodes, since I never use 'em. ;) That's a good chunk of the handlers.

Reading parts of it makes me sad for being stuck on 1.5.2, however. I can see some significant speedups if one could use just newer libs*. Which of course a full rewrite would address. Plus the logic is already built; that's 90% of the battle.


Saludos,

FuMan


* _Perhaps_ with HTMLParser, but I wouldn't be stuck on that.

New The 2.X code is much cleaner.
I've got older versions for 2.1 and 2.2 around here somewhere.

The code is a Python rewrite (plus additions) of Ben Tilly's perl HTML filter. The code is somewhat messy, since it was just done to prove a point to Ben. :-) Come to think of it, I've got a much nicer ObjectiveC version too.

The nice thing about it is the ability to pass in your own set of handlers.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Dig that funky extensibility groove. :)
I went more of the "plugin" route with Junct, that collab tool I mentioned. By that I basically mean you write a class instead of a function for new behavior. Example signature:

class TableRule(RegexRule):\n    def process(self, topic, content, UI):


Point being I tried to make it easy to write a new module when you wanted new parsing functionality. Still just a callable. But then it was expected with heavyweight parsers (like Calendar, Progress tracking, etc) that the "plugin" module would also include the UI code for new pages.

In addition, I had a need to do multiple passes on the content, and allow some handlers to "lock down" the portions of the content which they altered, so they couldn't then be munged by a later handler. I ended up making a LockableString class with finditer() and sub() methods (a la RE). Plus there were some handlers which a simple regex couldn't handle--Wiki-style formatting stuff.

Hmm... that's been running stably for a month now here at work. I should probably put it up somewhere...
New Why functions and regexes (new thread)
Created as new thread #148403 titled [link|/forums/render/content/show?contentid=148403|Why functions and regexes]
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New And the point was proven...
"good ideas and bad code build communities, the other three combinations do not"
- [link|http://archives.real-time.com/pipermail/cocoon-devel/2000-October/003023.html|Stefano Mazzocchi]
New You don't want to try a seaside implementation?
Smalltalk - debug it in your browser if it freaks out.



Java is a joke, only it's not funny.

     --Alan Lovejoy
Expand Edited by tuberculosis Aug. 21, 2007, 06:02:22 AM EDT
New Seaside's sessioning is problematic
eg. creating a bookmarkable URL for a post.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Can you unravel that for the ignorant?
-drl
New Seaside doesn't use URLs.
There's a gargantuan session thinger that gets included in every page that keeps track of where you "are" in the application: each hit goes to the same URL and only the session info changes. This is great for workflow apps, but horrible for apps that benefit from an actual URL that can be bookmarked and passed around.

[link|http://www.cincomsmalltalk.com/userblogs/avi/blogView?searchCategory=continuations|HREF Considered Harmful]
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Thanks!


-drl
New That's a fair point
and one I hadn't considered for an app that's more of a repository (big book thingy) than an application.

I do find his experiements with direct manipulation (inspectors on web UI components) fascinating though.




Java is a joke, only it's not funny.

     --Alan Lovejoy
Expand Edited by tuberculosis Aug. 21, 2007, 06:03:13 AM EDT
New Seaside looks great for actual applications
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Not true
Seaside does have a gargantuan session ID in the URL, but that doesn't have to be *all* there is: the rest can be taken up with useful, bookmarkable info. I don't know exactly what your requirements are, but don't dismiss Seaside just on the bookmarking issue.

See [link|http://www.cincomsmalltalk.com/userblogs/avi/blogView?showComments=true&entry=3256899497|http://www.cincomsma...&entry=3256899497] for more.
New Ah, good. I'll have to look at Seaside again. (new thread)
Created as new thread #148469 titled [link|/forums/render/content/show?contentid=148469|Ah, good. I'll have to look at Seaside again.]
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New can that be bypassed?
as in
--nosessionthingy
thanx,
bill
In Bush\ufffds America, fighting terrorism abroad is used as a pretext for vanquishing civil liberties at home. David Podvin
questions, help? [link|mailto:pappas@catholic.org|email pappas at catholic.org]
New Not exactly
Its because of Seaside's world view. It wants to be an application with state. The fact is that most of iwethey is comfortably stateless (adding a post is perhaps the one stateful bit).

So maybe its the wrong tool for the job here because of the URL idea.

There is a package called Janus written by Cees de Groot that is designed to trick the Googlebot and make a Seaside site searchable. I don't think its a general solution to bookmarks though.

---------------From the Seaside List----------------
Janus, the two-headed god, makes his entry in Seasideland!

[link|http://tai42.xs4all.nl/~cg/mc|http://tai42.xs4all.nl/~cg/mc] has the initial MC file for 'Tric-Janus',
which is a small package that makes Seaside apps spider-friendly in the
following way:

It can be used instead of WAKom (so 'JanusKom startOn: 1234'), and
inspects every request:
- a request for /robots.txt is intercepted (note: forward these requests
from Apache!). If the request is made from a known spider, everything is
allowed; otherwise, everything is denied - a corresponding text file is
returned;
- a known spider makes a different request. If yes, the cache of 'static
pages' is used to answer the request;
- all other requests are passed to the code in WAKom.

The 'cache of static pages' needs to be built up by the application.
This might be application-dependent - the current solution certainly is,
because it assumes that at the time the request is handled, the whole
structure of the page is known. JanusSession can be used for Janus-aware
subclasses and simply adds a method #addToPath:staticContents which does
the same as the original #addToPath:, but also registers the passed
static contents in the cache of static pages under the full path.

Furthermore, JanusKom has a class-side method to register certain urls
as indexes - this can be used to make sure that for certain urls an
index rather than a page is returned, which might help in some cases to
suck a bot into a site.

So, when Janus decides to feed from the static pages cache, it returns a
known page under the requested URL (if not overridden as an index URL)
or, if no pages is found, an index. An index consists of a list of HREFs
to all the static pages in the cache with the same prefix as the
requested URL (I'm not sure there whether this is the best solution).

Gardner (same MC repository) has been modified to support this.
GWSession subclasses from JanusSession and calls
#addToPath:staticContents:, and GWPage has a method #renderStatic to
support this - the only difference is that this method renders
path-based rather than Seaside-based HREFs.

The end result should be that Gardner Wikis can be visited by spiders
without problems, while still allowing you the freedom to add Seaside
bells&whistles. Also, the spiders will not see any of the Wiki buttons
etcetera, so they'll pull much less data from your site (they won't have
access to all the old versions, for example). Furthermore, this might be
a nice way to render static wikis - just hit the site with wget -m
(which Janus thinks is a spider) and you get a copy.

I've added a list of 158 user agent patterns I grabbed from The
InternetOne's webserver logs, if there are any remarks about the list
I'll be happy to hear it.

There's still work to be done, like not writing the cache on every hit,
etcetera, but at this time I'm mostly interested in comments about the
operating principle.




Java is a joke, only it's not funny.

     --Alan Lovejoy
Expand Edited by tuberculosis Aug. 21, 2007, 06:03:22 AM EDT
New This is a great idea
Why not give it a shot? We have a working model that is small enough to be managable but complex enough to be testworthy.
-drl
New Go for it.

And I'm an idiot for only now recognizing who you were ;)

--\r\nYou cooin' with my bird?
     Given your comments, perhaps we should rewrite? - (FuManChu) - (30)
         Put up a test environment z.iwethey.org/xforums -NT - (deSitter) - (1)
             You bet. - (FuManChu)
         If that's your guess... - (admin) - (14)
             *That* I would like to see. HTMLTidy, anyone? ;) -NT - (FuManChu) - (13)
                 It's right here: - (admin) - (12)
                     Feature request - (ben_tilly) - (6)
                         Re: Feature request - (admin) - (5)
                             I wondered why I briefly got the Devil's Tower page... - (Another Scott) - (2)
                                 Actually I just randomly take Zope down every so often - (admin) - (1)
                                     Ha! -NT - (Another Scott)
                             Gracias - (ben_tilly) - (1)
                                 Yep. - (admin)
                     Looks straightforward. - (FuManChu) - (4)
                         The 2.X code is much cleaner. - (admin) - (3)
                             Dig that funky extensibility groove. :) - (FuManChu) - (1)
                                 Why functions and regexes (new thread) - (admin)
                             And the point was proven... -NT - (ben_tilly)
         You don't want to try a seaside implementation? - (tuberculosis) - (11)
             Seaside's sessioning is problematic - (admin) - (9)
                 Can you unravel that for the ignorant? -NT - (deSitter) - (6)
                     Seaside doesn't use URLs. - (admin) - (5)
                         Thanks! - (deSitter)
                         That's a fair point - (tuberculosis) - (1)
                             Seaside looks great for actual applications -NT - (admin)
                         Not true - (Avi Bryant) - (1)
                             Ah, good. I'll have to look at Seaside again. (new thread) - (admin)
                 can that be bypassed? - (boxley) - (1)
                     Not exactly - (tuberculosis)
             This is a great idea - (deSitter)
         Go for it. - (ubernostrum)

Come inside!
174 ms