--- joko/doc/SampleTasks/joko_2003-01.html 2003/01/23 20:49:15 1.4 +++ joko/doc/SampleTasks/joko_2003-01.html 2003/01/25 14:03:21 1.39 @@ -34,7 +34,7 @@ x seems to make an external web-based newsreader unneccessary!!! o tie together mail, news and html - o write mini-howto + c write mini-howto o link with erfrakon @@ -135,21 +135,590 @@ o http://netfrag.org/~joko/phpChoPro/ or o http://netfrag.org/~joko/w2hfax/ -o update mail-dispatching-rules +o update mail-dispatching-rules - aim: a more flat structure!!! o look at ilo.de/Inbox - o move: logs/cvs/quepasa.netfrag.org -> logs/netfrag.org - o look at netfrag.org/Inbox - o if subject eq "Cron ~/.cronrc-hourly" set target "logs/netfrag.org/joko/cron" [push over cron] - o if subject matches "quepasa daily usenet report" at begin set target "logs/netfrag.org/news" [push over inn] - o if subject matches "[CVS" at begin set target "logs/netfrag.org/cvs" [push over CVSSpam] - o if mail is from myself set target "netfrag.org/Info" + o marked message to Spam? Newsletters? + x move: logs/cvs/quepasa.netfrag.org -> logs/netfrag.org + x look at netfrag.org/Inbox + x if subject matches "Cron " set target "logs/netfrag.org/joko/cron" [push over cron] + x mkdir Mail/SORTED/netfrag.org/joko + x touch Mail/SORTED/netfrag.org/joko/cron + x if subject matches "quepasa daily usenet report" at begin set target "logs/netfrag.org/system/applications" [push over inn] + x if subject matches "[CVS" at begin set target "logs/netfrag.org/cvs" [push over CVSSpam] + x if mail is from myself set target "me2myself" + x moved some folders + x move already existing file to folder + x mv logs/netfrag.org/system logs/netfrag.org/system.tmp + x mkdir logs/netfrag.org/system + x mv logs/netfrag.org/system.tmp logs/netfrag.org/system/applications + x mv netfrag.org/Status/h1.service.netfrag.org logs/netfrag.org/system/ + x mv netfrag.org/Status/TWikiChanges logs/twiki.org/ChangeLog + x mkdir logs/twiki.org + x do changes in .dispatchmailrc - always - ;-) + x mv netfrag.org/Status/quepasa.netfrag.org logs/netfrag.org/system/ + x blocked email-partition *partition*! - email-partition(!) -> WordFinder + x mkdir ../FILTERED + x mv netfrag.org/Status/Spam ../FILTERED + x mv netfrag.org/Status/Test misc/ + x mv netfrag.org/Status/Postmaster\ Routing misc/Postmaster + x rmdir netfrag.org/Status/ + x look at netfrag.org/Inbox - again + + + o look at quepasa.netfrag.org/Inbox + o [Multisync-users] + o [Kroupware] + x tested the rules from above + x echo This is a testmail. Please ignore it. | mail -s "[CVS hello]" joko +o move old mails to MailHistory + o write parser and engine to handle above declaration: Mail::Audit::Dispatch::Interface::Script + o add "X-"-field (X-Dispatched-By: dispatchmail-0.06 - http://netfrag.org/~joko/computing/dispatchmail/) o release mail from above from joko - introduce another email-address - e.g. work@netfrag.org, event@netfrag.org or tracker@netfrag.org (like collector@netfrag.org) + +o Multisync & SyncML + o post something to mailing-list...!? + +o the '.cvslink'-mechanism: + o type: ln -s /home/joko/public_html/_web/_cvs.php . + +o LinkContainer + - insert via drag & drop + - shows links hierarchically + +o (Self)Info - mails to yourself + o convert all "(Self)Info" mails to + news-messages - use "formail" and ...? + +o h1.service.netfrag.org + o base os-upgrade: suse X -> debian 3.0 + +o dispatchmail + o are Mail-Headers already added? + +o workflow (PostThisLink) + o drag link from done google-search ... + o ... to container (at the current Task) + o a news-post is created automagically + o use this: + [smtp-header-fields] + From: expanded email-address resolved from Name|Nickname in Addressbook (via LDAP!) + Subject: googled for "" + [body] + o include into mime-part if not already included + o fetch from web on demand + +o ssl/tls for inn? + +o dispatchmail + o re-link as sub-/module-project under Torus::Content::Gateway (mail2news, mail2fax) + o -> Torus::Content - a content delivery engine + o -> additional idea: Torus::Content::Gateway is "just" the API to "Torus::Item::Router" in this case + o 'Torus::Content::Gateway' would then route 'Torus::Item::RFC822'-objects using 'Torus::Item::Router' + o look at sieve - jonen posted to nfo.links.computing: [r:Message-ID: ] + o re-link as sub-/module-project under Torus::Virtual (mail2folder, mail2mail) + o here it acts as a dispatcher from incoming mails - TARGET gets resolved via ldap-resolvement + o make possible: MAIL-IN -> mail2mail (via ldap-query) -> mail2fax|mail2news + o mail2news + x the "via-fetchmail"-solution + x su collector + x cd ~ + x chmod og-rwx .fetchmailrc + +o finally: do actually establish 'Torus' at 'nfo/perl/libs' + +o pod: checkout how to make references which expand to html-urls + o does pod handle this or do we need external link-expansion for this task? + o how to make references to news-messages? + e.g.: + o Message-ID: + o news://news.netfrag.org/nfo.links.computing + o proposal(s) for "news2http" (Torus::Content::Gateway/Torus::Item::???): + o http://news.netfrag.org/id=b0ppj7$7gv$1@quepasa.netfrag.org + o http://news.netfrag.org/nfo.links.computing/subject=FilteringMailWithSieve of wiki + o http://news.netfrag.org/nfo.links.computing/id=b0ppj7$7gv$1@quepasa.netfrag.org + +o what about the '.nws'-files on ms? (for news-messages) + +o display-mode: everything strictly hierarchical to get maximum overview!!! + +x Inventory: cleaned up local and master code repositories + +o add "last-updated" to "README.html" + +o search.netfrag.org + +o tool for the "DoThis", "DoHere", "DoAll" - series + o FaxThis (joko/ToolBox/Windows/FaxThis) + o tool "WinSync": (WinSync All) + x RsyncHere + o Contacts2Ldap + +o statistics-page: + o for cvs.netfrag.org: cvs-statistics (activeness, ...), sloccount + +x home2web + x finally - added complete /home/joko/ to cvs-repository in order to get a revisioned ".dispatchmailrc" + x ~/.bashrc - added line: export CVSROOT=/var/lib/cvs + x relogin: logout/login + x cd ~ + x joko@quepasa:~$ cvs checkout -d . joko (Fri Jan 24 00:43:18 CET 2003) + x cvs add TODO + x cvs add .bashrc .cronrc-hourly .forward + x added /home/joko/virtual/joko_mail + [as joko] + x cvs add virtual + x chmod g+w virtual/CVS/* + [as joko_mail + o shortcut for (e.g.): cvs commit -m "initial check-in" .bashrc .cronrc-hourly .forward + o cvsadd + o add /home/root (and maybe include there some other things "lying around") + +o alternative to all that Cyrus-stuff: just use the very "normal" imapd together with kerberos + +o make screenshots of log-output of dispatchmail when it's ready + +o base logging of 'dispatchmail' on DesignPattern::Object::Logger + +o dispatchmail-mail2folder: add feature to create folders recursively + +x archive mails + x su joko_mail + x cd ~ + x mv ilo.de/Inbox ~/MailHistory/ARCHIVED/ilo.de/2002-05-30\ -\ 2003-01-24 + x mkdir ~/MailHistory/ARCHIVED/netfrag.org/2003-01 + x mv netfrag.org/Info ~/MailHistory/ARCHIVED/netfrag.org/2003-01/ + x changed rule which formerly targeted to 'netfrag.org/Info' into 'me2myself' + x mv netfrag.org/Inbox ~/MailHistory/ARCHIVED/netfrag.org/2003-01/ + x mkdir ~/MailHistory/ARCHIVED/netfrag.org/2003-01/Status + x mv netfrag.org/Status/cashew.netfrag.org ~/MailHistory/ARCHIVED/netfrag.org/2003-01/Status/ + x mv netfrag.org/Status/h1.service.netfrag.org ~/MailHistory/ARCHIVED/netfrag.org/2003-01/Status/ + x mv Sent ~/MailHistory/ARCHIVED/Sent/Sent_2002-11-13_-_2003-01-24 + + +o investigate LDAP-entry "mailForwardingAddress" + +o establish "Mini-HowTo" + +o search (allover): /^.*\.netfrag\.org/ => find all hostnames to register + (they are scattered around in to-be-installed (web-)applications) + +o Mail::Audit::Dispatch::Lookup (csv-file, ::NetLDAP, => Data::Storage::Handler::Xyz => Data::Map) + +x switched mailing completely in outlook + o Evolution! + x now talking to 'wu-imapd' via ssl, too! - thanks to jonen! + Jan 24 04:55:17 quepasa imapd[11508]: connect from 217.231.123.57 + Jan 24 04:55:17 quepasa imapd[11508]: imaps SSL service init from 217.231.123.57 + Jan 24 04:55:18 quepasa imapd[11508]: Login user=joko_mail host=pD9E77B39.dip.t-dialin.net [217.231.123.57] + x now my outlook sends via 'mail.netfrag.org' using 'TLS' - thanks to jonen! + Jan 24 04:53:09 quepasa sm-mta[11499]: STARTTLS=server, relay=pD9E77B39.dip.t-dialin.net [217.231.123.57], version=TLSv1/SSLv3, verify=NO, cipher=RC4-MD5, bits=128/128 + Jan 24 04:53:10 quepasa sm-mta[11499]: h0O3r91D011499: from=, size=435, class=0, nrcpts=1, msgid=<008c01c2c35c$5701d2a0$240aa8c0@grasshopper>, proto=ESMTP, daemon=MTA, relay=pD9E77B39.dip.t-dialin.net [217.231.123.57] + +o use IMAPFilter!!! + +o refactor old TODOs using 'home2web' + +o webgate (like dispatchmail) + +o zeit anhalten! (alle grauen männer umbringen!) + +o add to cvs: + o /home/service/ + o /home/service/virtual/collector + o /home/service/virtual/tracker + o /home/service/virtual/fetcher + o /home/service/virtual/archiver + +o use 'wCron' to automagically do a 'cvs commit -m "+ updated/added content" joko/doc' + x mkdir -p C:\Programme\WCron + x unzip -j "C:\home\amo\develop\netfrag.org\rabit\wCron\releases\WCron-0.62-pre.zip" -d C:\Programme\WCron + o win2000: change/check permissions: right-click/Properties/Security Settings/Read, Execute = enabled + x run it + x add task + x implement shortcut-script: joko/Scripts/shortcuts/cvs_commit_joko-doc.bat + x add lines: + x cd C:\home\amo\develop\netfrag.org\joko + x cvs commit -m "+ updated/added content" doc + + +o on Windows it's called "QuickLaunch" .... + +o plugins for nautilus/gnome/kde: + show arbitrary data-structures (from anywhere): here we may get the drag & drop - functionality "on-the-fly" + +o new user "gateway": + x adduser --home /home/service/virtual/gateway gateway (pass: gw%R%) + x mkdir /var/lib/cvs/gateway + x chown -R gateway.gateway /var/lib/cvs/gateway + x su gateway + x cvs -d /var/lib/cvs checkout -d ~ gateway +x error on quepasa: + Jan 24 19:00:09 quepasa sm-mta[17960]: STARTTLS=server, relay=pD9E77B39.dip.t-dialin.net [217.231.123.57], version=TLSv1/SSLv3, verify=NO, cipher=RC4-MD5, bits=128/128 + Jan 24 19:00:09 quepasa sm-mta[17960]: h0OI081D017960: ruleset=check_rcpt, arg1=, relay=pD9E77B39.dip.t-dialin.net [217.231.123.57], reject=550 5.7.1 ... Relaying denied. Proper authentication required. + x add to /etc/mail/default-auth-info + sendmail + sendmail + sendmailpwd + quepasa.netfrag.org + x /etc/init.d/sendmail restart + +o Torus::Publish::Research::Web + o googling for something automagically opens a new task + o all links directly or indirectly coming out of this are sorted below this task + o the user can end this task on demand: timetracking is done automagically as well + +o register tutos.netfrag.org + +o qpopper with tls, sasl and kerberos5? + +o off realtime! the only thing that happens at realtime is MailMiltering. + x cvs checkout of joko/doc is done via cron + x mail2news-dispatching is now done via cron (would be possible "in realtime" via '.forward'ing the mail *directly* to dispatchmail) + +o ctlinnd newgroup nfo.csm (Collaborative System Management) + +o make possible: + o after "cvs update" make question: "Found new items in "" while scanning. Should i add them to the repository?" + o drag & drop arbitrary items out of outlook (.msg, .nws, etc.) - search for them while scanning the fs and sync them + against *original* source. (e.g. 'Message-ID: ') + +x CVSSpam -> nfo.log.cvs + x su root + x cd /etc/mail + x nano virtusertable + x add line: + x cvs-log@netfrag.org gateway + x make virtusertable + x su gateway + x cd ~ + x nano .dispatchmailrc + x add lines: + $self->copy('Newsgate', 'nfo.log.cvs') + if $to =~ m/cvs-log/; + x exit (to logout) + x cvs update CVSROOT/loginfo + x add to CVSROOT/loginfo (to the end of the line starting with '^nfo '): + --to cvs-log@netfrag.org + x cvs commit -m "+ added new notification target: 'cvs-log@netfrag.org'" CVSROOT/loginfo + x tested with some mini-howto + x removed '--to joko@netfrag.org --to jonen@netfrag.org --to bareface@netfrag.org --to janosch@netfrag.org ' + from CVSROOT/loginfo for module 'nfo' + x announce this + x added to '/etc/news/nnrp.access': + *:Read Post:bareface:bareface:* + x /etc/init.d/inn reload + +x add 'gateways'-repository to chora + x nano /data/www/doc/horde/chora/config/cvsroots.php + x add lines: + # 2003-01-24, joko + $cvsroots['gateway'] = array( + 'name' => 'gateway', + 'location' => '/var/lib/cvs/gateway', + 'title' => "$titlePrefix gateway's CVS Repository", + 'cvsusers' => $cvsusers, + ); + +x configured Apache for serving news.netfrag.org + x cleaned up /data/www/virtual/netfrag/conf/httpd.conf + x ./test.conf + x comments + x /etc/init.d/apache reload + x test: http://news.netfrag.org/ + + + +o new module for cvs-repository? + o nfo/layouts/fs/skel/data2 + o checkout to /data on quepasa.netfrag.org + x done: + x su root + x cd /var/lib/cvs + x mkdir -p nfo/layouts/fs/skel/data + x mkdir -p nfo/layouts/fs/skel/data2 + x mkdir -p nfo/hosts/quepasa.netfrag.org/data + x cvs -d /var/lib/cvs checkout -d /data nfo/hosts/quepasa.netfrag.org/data + x *mungle everything and commit!* look at the repository! + x add special group with access to this repository: 'rootsrc' + x groupadd rootsrc + x usermod -G src,staff,rootsrc joko + x usermod -G src,staff,rootsrc jonen + x usermod -G rootsrc root + x change permissions + x cd /var/lib/cvs/nfo/ + x chown -R .rootsrc hosts + x chmod -R g+w hosts + + +x add to system-conf-repository: + x /etc/mail + x php: cvs-redirect + x + +o extend WCron + x show (per-task) if it's currently running or not: provide buttons to (start, stop, pause, resume or cancel a task...) + x use as a frontend for administering nfo/libs/perl/ - backend - tasks(???) + +x install Horde/Troll + x install troll + x cd /home/service/download + x mkdir horde + x cd horde + x wget ftp://ftp.horde.org/pub/troll/troll-0.0.2.tar.gz + x tar -xzf troll-0.0.2.tar.gz --directory=/data/www/doc/horde/ + x configure horde + x cd /data/www/doc/horde/ + x nano config/registry.php + x add lines: + $this->applications['troll'] = array( + 'fileroot' => dirname(__FILE__) . '/../troll', + 'webroot' => $this->applications['horde']['webroot'] . '/troll', + 'icon' => $this->applications['horde']['webroot'] . '/troll/graphics/troll.gif', + 'name' => _("News"), + 'allow_guests' => true, + 'show' => true + ); + x configure Troll + x cd troll/config + x conf.php + x cp conf.php.dist conf.php + x nano conf.php + x edit: + x $conf['news']['server'] = 'news.netfrag.org'; + x $conf['news']['mailserver'] = 'mail.netfrag.org'; + x servers.php + x cp servers.php.dist servers.php + x add: + $servers['netfrag.org'] = array( + 'name' => 'news.netfrag.org', + 'server' => 'news.netfrag.org', + 'port' => 119, + ); + x prefs.php + x cp prefs.php.dist prefs.php + x html.php + x cp html.php.dist html.php + x permissions + x chmod o+r *.php + + + x test: http://netfrag.org/horde/ + o another (more bright) skin for horde@netfrag.org!!! + +o Warum nicht überall Horde? Sondern TUTOS? + o Horde ist sehr breit angelegt, dafür fehlt es jedoch an vielen Stellen noch ein wenig im Detail. + o mittlerweile: mit Hermes & Co.? nochmal ansehen! + +o just do automated operations (like cvs commit) only if system is idle + +o automagically redirect http://netfrag.org/horde/ to https://netfrag.org/horde/ + o with an Apache - rewrite-rule? + +x how to map TUTOS-groups to newsgroups? + x ctlinnd newgroup nfo.tutos.sysadmin + x add dispatching for sysadmin@netfrag.org + x add to /home/service/virtual/gateway/.dispatchmailrc + $self->copy('Newsgate', 'nfo.tutos.sysadmin') if $to =~ m/sysadmin/; + x add to /etc/mail/virtusertable: + # --- news.netfrag.org - joko, 2003-01-24 + sysadmin@netfrag.org gateway + make virtusertable! + x write welcome-mail + root@quepasa:~$ mail sysadmin@netfrag.org + Subject: Welcome to the sysadmin-newsgroup at netfrag.org! + Have fun! + greets, joko. + + . + Cc: + x test: do "refresh newsgroups" at your favourite news-reader + x this has been refactored to: [news:id=b0shbj$l9s$1@quepasa.netfrag.org] + x HEADERS: + x Message-ID: + x Subject: Re: Welcome to the sysadmin-newsgroup at netfrag.org! + o newsgate + o http://news.netfrag.org/nfo.tutos.sysadmin/id/b0shbj$l9s$1@quepasa.netfrag.org + o http://news.netfrag.org/nfo.tutos.sysadmin/subject/Re: Welcome to the sysadmin-newsgroup at netfrag.org! + +o Erkenntnis aus UML (Kernel 2.4): schwierig mit gleichzeitigem Zugriff + +o gave up trying to get Troll running + +x setup alternatives to Horde for public access + o viewcvs + x apt-get install libapache-mod-python + + o WebNewsViewer + +o release the user from having to send email-messages to actually post urls with content (e.g. "FirstPage") + +o parse .url-files! + +o have newsgroup-structure backed in ldap-container (ou) somehow (Data::Map!) + +x new email-addresses@netfrag.org: + x sysadmin@netfrag.org + x faq@netfrag.org + +x setup newsportal (by Florian Amrhein) + x url: http://florian-amrhein.de/newsportal/ + x cd /home/service/download + x mkdir newsportal + x cd newsportal + x wget http://florian-amrhein.de/newsportal/download/newsportal-0.24.tar.gz + x mkdir -p /data/www/virtual/netfrag/sites/news/apps/newsportal/ + x tar -xzf newsportal-0.24.tar.gz --directory=/data/www/virtual/netfrag/sites/news/apps/newsportal/ + +o rework apache-layout - check into repository as something root is responsible for! + +o NfoWeb + o add WikiPages: + o Overview + o Projects + o MiniHowTo + (o Search) + o modify HomePage + o change Projects to Overview + +o yakka & pod + o convert pod to tavi + o perl first (pod2tavi) + o php afterwards (pod2tavi-php) + o then refactor to a YakkaPlugin (an "input-filter"?) ('yakka-filter-pod'?) + o address "files" outside the normal/configured default YakkaRepository + o introduce: "ExplicitAddressingOfArbitraryTargets" + o via HttpHeader (GET/POST) (HtmlUrlArgument, HtmlFormField) + o introduce "YakkaContainers": aim: group a bunch of targets/items together as a kind of "MetaRepository" + +o viewcvs & yakka + o a filesystem-adapter for yakka's storage-handler-system + o show "view in yakka" if document-type eq 'tavi|tavi,v|pod' + +o IconForNetfrag.Org? + o fav.ico? + +x install viewcvs + x apt-get install viewcvs + x configured: + x /var/lib/cvs + x email-address (new): cvs-admin@netfrag.org -> dev@netfrag.org + x no forbidden modules (do this via unix permissions!) + x allow tarball generation? yes! + x Hint: add "Alias /viewcvs/ /usr/share/viewcvs/" to /etc/apache/conf/httpd.conf for online documents and icons + x added to '/data/www/virtual/netfrag/conf/applications.conf' in our case + x added '' to '/etc/viewcvs/templates/header.ezt' + +o rendering proposals for TaviWorkflow + o Linking|Referencing (WikiWords, PureExplicitLinkExtrapolation, NamedLinks) + o Coloring + o [o=red, x=green, R=red, r=green] + +o shortcut: TestApache to run 'apachectl configtest' (WikiForSystemAdministration) + +x web-based newsreader? twig! + x apt-get install twig + +o shutdown horde (for now: "pause") + +o viewcvs & apache-mod-python? + +o home2web, .home2webrc + --before: buildhtml --source=pod|tavi + --after: say "ready" + +x added root of quepasa to cvs + x su root + x cd /var/lib/cvs/nfo/hosts/quepasa.netfrag.org + x mkdir root + x chown -R .rootsrc root/ + x chmod -R g+w root/ + x cd /tmp + x cvs -d /var/lib/cvs checkout -d / nfo/hosts/quepasa.netfrag.org/root + x start with /etc + x cd /etc + x cvs add etc + x cvs add viewcvs + x cd viewcvs + x cvs add .... + x cvs commit -m "+ initial commit" + +x How to get a single file from cvs for download: (e.g.) + wget http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/viewcvs/viewcvs/templates/header.ezt?rev=1.2 + +x cvsgraph still missing: apt-get install cvsgraph + +x chora -> viewcvs + o change logo at /usr/share/viewcvs/images + x removed from template + x cvsview-query.cgi didn't work yet! + x error was: + x tail -f /data/www/virtual/netfrag/log/error_log + Traceback (most recent call last): + File "/usr/lib/cgi-bin/viewcvs-query.cgi", line 50, in ? + import query + File "/usr/lib/python2.1/viewcvs/query.py", line 42, in ? + import cvsdb + File "/usr/lib/python2.1/viewcvs/cvsdb.py", line 34, in ? + import dbi + File "/usr/lib/python2.1/viewcvs/dbi.py", line 17, in ? + import MySQLdb + ImportError: No module named MySQLdb + [Sat Jan 25 11:16:55 2003] [error] [client 217.231.127.85] Premature end of script headers: /usr/lib/cgi-bin/viewcvs-query.cgi + x solution is: + x apt-get install python-mysqldb + x use mysql; + x insert into db values ('localhost', 'ViewCVS', 'viewcvs', 'Y','Y','Y','Y','Y','Y','N','Y','Y','Y'); + x insert into db values ('%', 'ViewCVS', 'viewcvs', 'Y','Y','Y','Y','Y','Y','N','Y','Y','Y'); + x insert into user (host, user, password) values ('localhost', 'viewcvs', password('viewcvs')); + x flush privileges; + x cd /usr/lib/viewcvs + x ./make-database + x + o mail to author of viewcvs + + +o docu about uml and filesystem-layer running on gharb for MiniHowTo? + +o search.php?wiki=1&cvs=1&index=1 + +o get mnoGoSearch running + e apt-get install mnoGoSearch + +o it's not tavi nor tavi-workflow - it's: JustWrite? it's todo! (.todo -> .justdo -> .justwrite -> .done) + +o ScanToWeb + +o look at Mailman: http://www.list.org/features.html + +o use cvsup!? + +o alien.netfrag.org - (package-conversion) --> alien.packages.netfrag.org + +o chora2viewcvs - How to migrate from Horde/Chora to viewcvs. + +o LinuxInCvs (linux2cvs) + +o TestApacheConfig, StopApache, StartApache have to work without any running Apache - of course! + +o through "viewcvs" we loose the ability to "publish" documents via former chora: + viewcvs takes care to keep documents like they are in their original - so ".html"-files should be shown with text/plain + +o re-integrate .cvslink/JumpToCvs with dispatchurl + +o WikiWords in CvsCommitMessages? (via yakka?) + +x http://cvs.netfrag.org/bareface/yakka/?tarball=1 + + +
+$Id: joko_2003-01.html,v 1.39 2003/01/25 14:03:21 joko Exp $ +