Version 87 of WubWikit

Updated 2011-03-30 21:35:03 by JOB

CMcC You can get the code for wikit here: [L1 ] and for Wub here: [L2 ] you'll need subversion to grab it.

wiki database for offline use has "wubwikit.kit" that is all the pieces in one file.


[Fill in details about WubWikit, in particular, where to get the application, the differences between wubwikit and the traditional wikit, etc.]

Wiki News - announcements and such old, obsolete problem list for this wikit.


MHo:

  • With the old wiki(t.kit), it was very simple to grab a copy of the starkit, define some simple cgi-wrapper and drive this through Tclhttpd. I suppose the new WubWikit only works with Wub - as the name says ;-) So, WubWikit never runs as a standalone CGI-process, is it right?

MHo: Will there be binaries available sometimes in the future?

LV: Anyone have a recipe for bringing up and running this latest generation of the wikit? Anyone created a starkit with the necessary code in it?

  • Is a downloadable copy of the wiki pages theirselves available, such as wikit.gz??

LV If you mean a downloadable copy of the wiki pages, I don't think this is available yet. If you mean a downloadable copy of the executing code, see CMcC's comments. [This comment is obsolete now - a compressed copy of the page file is now available - wiki database for offline use ] MHo Yes I mean a copy of the database with the wiki-pages, e.g. to make it offline available or to keep a backup for restauration in case of vandalism...

CMcC there's an interesting problem here: the wiki db is currently 95Mb, and clearly it would be a bad thing to allow too-frequent downloads (that's part of what brought the old wiki down - some clown doing multiple uncontrolled downloads - denial of service.) I'm trying to work out what a good policy might be to balance the utility of providing the download while bounding the cost.

Here are some policy questions to which I have no good answers:

  • What if everyone on the wiki wanted a daily db backup? That's about 90Gb/day, won't work. What about hourly?
  • What if we put a limit on the number of downloads per day? How do we stop one of the daily (hourly?) backup crowd from grabbing one of the slots without requiring login?
  • Should we require actual login for db downloads?
  • Could/should we require everyone who downloads the db provide it for others to further download? How would we do that? -- Lars H: This is exactly the kind of problem BitTorrent aims to solve, is it not?
  • How often should a given user be permitted to download a copy of the db? If they are doing it frequently, they're wasting enormous amounts of bandwidth.
  • Should there be some kind of db delta download? Like RSS like history: give me all the pages which have changed since <some date>

LV The primary issue here is a limited resource - your bandwidth. So why not upload the data, compressed, to google, and let people download it from there. That way, the bandwidth issue is no longer yours - you upload to google once every N period (whatever you can afford) and let people get it from google. As for what the db delta - I don't have a need for that, a simple compressed .tkd file is all I need.

30jun07 jcw - The quick solution is to simply delegate: get one or more mirrors in place with a reasonably recent copy (I'd vote for daily). Then you don't have to deal with it. As for delta's: rsync is very effective for this type of data (either via ssh or as rsync server). If you want to go fancier, check out wikit's "-update" command (written before the history got added to the db, btw).

KJN 2007-11-23: I would occasionally download a copy of the database if I was going somewhere without fast internet access - it was very useful to have this facility. A daily, or even weekly, database dump to Google would be much appreciated. Page histories could be omitted. BitTorrent would also be a good solution.

jdc 7-dec-2007: I created a SourceForge project to download the wiki db: wiki database for offline use

RZ 11-dec-2008: Great work so far. But when I try to use wubwikit with my own *.tkd files I have on the left side the wikit categories. Is there a way to use my own ones? Is it OK to use the commandline argument "cmdport -1" to supress starting of the maintenance socket? This is needed to run more then one instance of the program.

jdc 11-dec-2008: You can edit the TOC file in directory docroot.

RZ Yes I can. ut then I end with a separate wubwikit.kit for each use case :( May be we can use some special pages. I remember from the old wikit the reserved first nine pages.

jdc 12-dec-2008: Can you try to use argument toc file:your_toc_file .

RZ 18-dec-2008: Sorry for the delay. I tried it with your suggestion. So far it works in the Tk mode (standalone). In the web server mode it is not working so far. If I find some time I will investigate further:) But thanks for your effort.


LV Over on comp.lang.tcl, some details about this version of the wiki are being discussed. In particularly, there are particular URLs which cause specialty functionality to occur.

        http://wiki.tcl.tk/18028
        http://wiki.tcl.tk/18028.txt
  • a URL of the form http://wiki.tcl.tk/<PageNumber>.code returns all code blocks on the page. Code blocks are displayed separated by ### <code_block id=$blockid> ############################################################ tags. A code block is just one or more lines starting with a space or blocks delimited by ====== lines.
        http://wiki.tcl.tk/15312.code
        http://wiki.tcl.tk/18028.str
        http://wiki.tcl.tk/_edit/18028
        http://wiki.tcl.tk/_history/18028
        http://wiki.tcl.tk/_ref/18028
        http://wiki.tcl.tk/_revision/18028?V=47
        http://wiki.tcl.tk/_revision/18028.txt?V=47
        http://wiki.tcl.tk/_revision/18028.str?V=47
        http://wiki.tcl.tk/_revision/18028?V=40&A=1
        http://wiki.tcl.tk/_diff/18028?V=42&D=43
        http://wiki.tcl.tk/_diff/18028?V=50&D=51&W=1


gobvip 2010/07/19 How to open debug message in wubwikit?

 Debug.wikit {"debug message"}   ;# I want this command print something. How it works?

JOB 30-march-2011: Script to start wubwikit.

Note: We now do have a "config" command line option.

Here is the start script:

#!/usr/bin/ksh

# Script to start wubwikit...
# Purpose:
#    In the hope, to bring some light in the mystery of wub-configuration.
#    March, 2011, Johann Oberdorfer
#    -- enjoy! --

# Wub's info page: http://wiki.tcl.tk/20412
# requirements:
#   - minimum tcl version is 8.6
#   - a platform dependent kit version including sqlite3 and tdbc packages
#   - source *.vfs tree (CVS checkout or similar) + binary including sqlite3 and tbc
#     for windows ActiveTcl offers a convinient way (installer)
# wikiwub configuration:
#   - 

PREFIX=`dirname \$0`
THIS_PLATFORM=`uname`


case ${THIS_PLATFORM} in
        "Linux")
                TCLKIT_EXE=./Linux64_kbsvq8.6-gui
                ;;
        "Darwin")
                # ActiveTcl installation:
                TCLKIT_EXE=/usr/local/bin/wish8.6
                ;;
        *)
                TCLKIT_EXE=/usr/local/bin/wish8.6
                ;;
esac

WUB_WIKIT=${PREFIX}/wubwikit20110317/main.tcl
WIKIT_DB=${PREFIX}/db/my_wiki.tkd

# WIKIT_DB=${PREFIX}/db/wikit-20110307.tkd

# create a new database / local / configuration file:
# ${TCLKIT_EXE} ${WUB_WIKIT} mkdb     ${WIKIT_DB} title "My WikiWub"
# ${TCLKIT_EXE} ${WUB_WIKIT} mklocal  ${PREFIX}/wub_local.tcl
# ${TCLKIT_EXE} ${WUB_WIKIT} mkconfig ${PREFIX}/wub_config.tcl


# Start the http server...
# ------------------------
# see main.tcl for additional configuration...
# set TMP=.\tmp


echo "------------------------------------"
echo "Open URL: httpd://localhost:8090 ..."
echo "------------------------------------"

# Note:
#   when specifying a port as argument,
#   make shure, the Listener section in the wub_config.tcl file
#   is configured with the the same value - some kind of missbehavior in the current version ?!

${TCLKIT_EXE}  ${WUB_WIKIT} \
                 local ${PREFIX}/wub_local.tcl \
                config ${PREFIX}/wub_config.tcl \
                wikidb ${WIKIT_DB} \
                  port 8090
           #?????? docroot ${PREFIX}/my_docroot

Questions as of now:

  • Anyone knows how to deal with "templates" (a working example would be great)?
  • Could not find out how to specify a user defined "docroot" outside the source-tree for customization (with my own css, jQuery, etc...).
  • The "port" command line argument doesn't work as expected, value in the Listener section is not overwritten ?
  • Is there a possibility to run wikit under apache (cgi mechanism) ?