| 1 | <html> | 
| 2 | <head> | 
| 3 | <title>joko's sample notes - 2003-02 - ResourceIntegration</title> | 
| 4 | <link href="/horde/css.php?app=chora" rel="stylesheet" type="text/css" /> | 
| 5 | </head> | 
| 6 | <body> | 
| 7 |  | 
| 8 |  | 
| 9 | <pre> | 
| 10 |  | 
| 11 |  | 
| 12 | <hr/> | 
| 13 |  | 
| 14 | o flib: | 
| 15 | o include & boot | 
| 16 | o include-paths | 
| 17 | o configKey (servername) => servername/appname | 
| 18 | o make glib | 
| 19 | o RPC::Remote: just can talk to single rpc-server!!!! | 
| 20 | o app-cleanup: | 
| 21 | o replace ../img/ through img/ globally (in all files found) | 
| 22 | o grep -ri "../img" | modify.pl --regex=s/\.\.\/img/img/g [--in-type=filelist] | 
| 23 | o refactor replace_cvs.pl to: | 
| 24 | finder.pl -R --regex=/CVS/Root . | modify.pl --regex=s/:pserver:/:ext:/ [--in-type=filelist] | 
| 25 | o is it possible to actually parse settings && arguments (not just "options") using Getopt::Long?? | 
| 26 | o else: look at CPAN more detailed or make a CliCmd::Option + CliCmd::Argument = CliCmd::Setting!! | 
| 27 | O refactor Getopt::Simple to Getopt::Easy and add features!? a) argument/option-mechanism b) restrict option-mech | 
| 28 | symbol: O=Ongoing | 
| 29 | c use Getopt::Auto??? | 
| 30 | x make Getopt::Easy!!! | 
| 31 |  | 
| 32 |  | 
| 33 | o 0. Oef::Request -> ... | 
| 34 | o 1. CliCmd::Setting -> Oef::Request -> [hibernate] -> [wakup] -> Oef::Engine -> Oef::>Task -> Oef::Response | 
| 35 | o need to freeze a Oef::Request | 
| 36 | o 2. CliCmd::Setting -> Oef::Request -> Oef::Engine -> Oef::Task -> [hibernate] -> [wakup] -> Oef::Response | 
| 37 | o need to freeze a Oef::Engine | 
| 38 |  | 
| 39 | o Oef::Base bases on DesignPattern::Object and DesignPattern::Bridge | 
| 40 |  | 
| 41 | o refactor DesignPattern::Object::Logger to Oef::Base::Logger | 
| 42 |  | 
| 43 | o use phpHtmlLib - widgets in a wiki (yakka!) | 
| 44 |  | 
| 45 | o rename Data::Storage::Handler::NetLDAP to Data::Storage::Handler::LDAP | 
| 46 |  | 
| 47 | o register: data-storage.[perl.]netfrag.org | 
| 48 |  | 
| 49 | o look at '<meta  http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />'!!! | 
| 50 | o better use 'utf-8' to achieve full i18n? | 
| 51 |  | 
| 52 | o add descriptive words (undelete, etc.) and references to similar projects to mini-howto_trashcan-under-linux_libtrash.html | 
| 53 |  | 
| 54 | o proarc - professional document archiving, indexing, distributing and publishing | 
| 55 | o archiver | 
| 56 | archive --reference|meta|content --check-descents=*.txt <path> --type=file|document | 
| 57 | o indexer | 
| 58 | index <all>, use mnoGoSearch's indexer | 
| 59 | o manager | 
| 60 | o build sets of data | 
| 61 | o make distribution lists | 
| 62 | o manage global settings (base-paths/-urls, etc.) | 
| 63 | o edit object details (public-url, acls, etc.) | 
| 64 | o edit global and/or per-object metadata | 
| 65 | o to-be-published (@) | 
| 66 | o to-be-indexed | 
| 67 | o build manager-rules on top of that | 
| 68 | o distributor | 
| 69 | o prepare/distribute sets of data | 
| 70 | o publisher | 
| 71 | o publish data to given url@server | 
| 72 | a) prepared machine-readable sets for distribution | 
| 73 | b) human-readable material (e.g.: generated indexes, overviews, details, descent-documents) | 
| 74 | o add collaboration on top of that! | 
| 75 | o (technical) annotations, pbb, etc. | 
| 76 | o what is already there? | 
| 77 | x found: ProArc, OpenArc - but nothing seems to be truly *open*! | 
| 78 |  | 
| 79 | o Gtk Rules | phpRules - an abstract rule chain editor | 
| 80 | o modes: dispatchmail, dispatchrequest, ipchains? | 
| 81 | o look at Outlook 2000, Ximian Evolution, Horde | 
| 82 |  | 
| 83 | o iSerienbrief (mac & win32) | 
| 84 |  | 
| 85 | o freier xml-editor für win32? (nicht auf msxml3 basierend?) | 
| 86 |  | 
| 87 | o Data::Storage | 
| 88 | - overview | 
| 89 | - just gives you a handle to a preconfigured data-source. | 
| 90 | - it's a meta-module on our way to unified data access. | 
| 91 | - details | 
| 92 | It also lets you add additional methods to this handle from | 
| 93 | specified Perl-modules acting as "plugins". | 
| 94 | It's delivered with "Handlers" ready for talking to rdbms-databases, | 
| 95 | flat-file databases (csv, etc.), structured files (INPADOC, XML) and | 
| 96 | oo-rdbms-mappers (orms) - in our case "Tangram" (from CPAN). | 
| 97 |  | 
| 98 | o Resources, Ontologies, Information Delivery | 
| 99 | o RSS, RDF, RDFS | 
| 100 |  | 
| 101 | o modifier.pl | 
| 102 | o soap <-> rpc-xml | 
| 103 | o Tangram-Schema <-> RDF Schema (RDFS) | 
| 104 |  | 
| 105 | o use nntp//rss!!! | 
| 106 |  | 
| 107 | o cvssync | 
| 108 | o option AUTOCOMMIT | 
| 109 | o option AUTOADD | 
| 110 | o mode GUI | 
| 111 |  | 
| 112 | o sieve & XML??? | 
| 113 |  | 
| 114 | o cvs & kerberos??? | 
| 115 |  | 
| 116 | o enhance Mail::Audit::Dispatch | 
| 117 | x recieveMail -> dispatchmail & Mail::Audit::Dispatch | 
| 118 | o Mail::Audit::Dispatch::Folder::Mbox (by joko, the main part of the former recieveMail, just uses Mail::Audit) | 
| 119 | o Mail::Audit::Dispatch::Spool (by joko, a little part of the former recieveMail, just uses Mail::Audit) | 
| 120 | x Mail::Audit::Dispatch::Newsgate (by joko, uses Net::NNTP) | 
| 121 | o Mail::Audit::Dispatch::Folder::Cyrus1 (by jonen, acts as sendmail MDA instead of /usr/sbin/cyrdeliver, but re-dispatches to it again after resolving addresses against an arbitrary data source, see 'Data::Map' stuff....) | 
| 122 | o Mail::Audit::Dispatch::Faxgate (by janosch, uses /usr/bin/sendfax; still inside 'mail-handler', tbr) | 
| 123 | o Mail::Audit::Dispatch::Smsgate (by janosch, uses /usr/bin/yaps; still inside 'mail-handler', tbr) | 
| 124 | o could also use /usr/bin/smssend or some module from CPAN | 
| 125 | o Mail::Audit::Dispatch::Response (by joko, notifies sender that his/her mail was processed by arbitrary system) | 
| 126 | o send autoresponse with subject: "Your bug-request was filed." when mailing to bugs@netfrag.org (done by gateway@netfrag.org) | 
| 127 | o actually do file the message at nfo.support.queue (done by gateway@netfrag.org) | 
| 128 | o maybe cc: to or integrate with tutos or other ticketing system (bugzilla)???) | 
| 129 | o this should be the basic functionality needed to implement known features as "autoresponder" or "vacation" on top of this | 
| 130 |  | 
| 131 | o write about: | 
| 132 | o path-structure inside dev-cvs (->bareface, ->janosch) | 
| 133 | o path-structure inside sysadmin-cvs (hosts, skels) (->jonen) | 
| 134 | o path-structure at web/pub (->jonen) | 
| 135 |  | 
| 136 | o enhance newsportal | 
| 137 | o features for ArticleViewer: | 
| 138 | o embedded images | 
| 139 | o MIME capability | 
| 140 | o HTML frameset capability | 
| 141 | o show in external window | 
| 142 | o convert to HTML tables!? | 
| 143 |  | 
| 144 | o a StartingPoint: TUTOS Project/Product Overview | 
| 145 |  | 
| 146 | o generate some documentation for flib and glib automagically | 
| 147 | o use JavaDoc? see ->phpHtmlLib | 
| 148 | o use phpDoc? see ->Xyz | 
| 149 |  | 
| 150 | o yakka: | 
| 151 | o SeperationOfWikiCoreFeatures | 
| 152 | o revisioning | 
| 153 | o EnhancementOfCoreFeatures | 
| 154 | o object oriented linking/referencing | 
| 155 | o reference maintenance capabilities (copy, move, unlink) (+clone, +deep_copy) | 
| 156 | o reference structuring (make set, add more metadata) | 
| 157 | o use RDF and/or RDFS? | 
| 158 | o look at RDFWiki.... | 
| 159 | o EnhancementOfFrontend | 
| 160 | o ReIntegrationOfWikiCoreFeatures | 
| 161 |  | 
| 162 | o "outsource" mysql from quepasa.netfrag.org to h1.service.netfrag.org | 
| 163 |  | 
| 164 | o establish slapd on h1.service.netfrag.org | 
| 165 |  | 
| 166 | o faxabruf für w2hfax (sendfax -d <nummer> -p) | 
| 167 | o konvertiere empfanges dokument von ps nach pdf, tiff? | 
| 168 |  | 
| 169 | o look at bonsai? | 
| 170 |  | 
| 171 | o scripts from janosch | 
| 172 |  | 
| 173 | o LookAt php-4.3.0??? | 
| 174 |  | 
| 175 | o emacs? | 
| 176 |  | 
| 177 | o check if backend-logging still works!? | 
| 178 |  | 
| 179 | o LookAt PythonInPhp | 
| 180 | o integrate python-library from w2hfax (hfaxlib) into Horde!? | 
| 181 |  | 
| 182 | o task list | 
| 183 | start apache1 (click) | 
| 184 | start mysql (type net start mysql) | 
| 185 | start internet explorer (click) | 
| 186 | start explorer (press win-key & e) | 
| 187 | navigate to target | 
| 188 | open in ultraedit | 
| 189 |  | 
| 190 | o php-enhancements!? | 
| 191 | o mixin inheritance for php? | 
| 192 | o manipulating the symbol table? | 
| 193 |  | 
| 194 | o integrate timestamp into log-output of CPAN's Log::Dispatch!? | 
| 195 |  | 
| 196 | o integrate autogenerated api-documentation for code@netfrag.org | 
| 197 | use PhpDocumentor: http://phpdocu.sourceforge.net/ | 
| 198 |  | 
| 199 | o phpLdapBrowser using components from | 
| 200 | o PEAR (DB_ldap) | 
| 201 | o smarty (maybe some parts for gui rendering) | 
| 202 | o phpHtmlLib (abstraction of basic html tags and more highlevel widgets, gui/forms-to-data binding) | 
| 203 | o netfrag.org | 
| 204 | o yakka as navigation-backend | 
| 205 | o on-the-fly generation of navigation-structure | 
| 206 | o page-rendering, -dispatching and -layout | 
| 207 | o maybe integrate these together to get max. overview over all details | 
| 208 | to be able to provide enough abstraction in implementation: | 
| 209 | o current dispatcher from yakka (Engine 1.0?, Engine 2.0?) | 
| 210 | o dispatchrequest (the generic dispatcher which listens at http://cvs.netfrag.org and http://news.netfrag.org) | 
| 211 | o glib/Application/AbstractRequest (a component which grew out of a custom application once, | 
| 212 | but was refactored two times after that (<custom-app> -> flib/Site/Request -> org.netfrag.glib/Application/AbstractRequest) | 
| 213 | o org.netfrag.glib for tying all that together | 
| 214 |  | 
| 215 | o nfoweb: "powered by" - page | 
| 216 | o lamp: linux, apache, mysql, php | 
| 217 | o other daemon software: inn, OpenLDAP, OpenSSH, Kerberos 5, sendmail, amavis, Cyrus | 
| 218 | o other software: TWiki, phpWiki, viewcvs, newsportal | 
| 219 | o other languages: bash, perl, python, ruby, etc., etc. | 
| 220 | o make links... | 
| 221 | o include process view??? | 
| 222 | o link to "IntegratesWith"-page: PIMs, Offices | 
| 223 |  | 
| 224 | o Data::Storage and logging via Log::Dispatch - DEEP RECURSION again!!! | 
| 225 |  | 
| 226 | x build content-index of news.netfrag.org | 
| 227 | o mnoGoSearch's news-extension seems to require some more database-tuning  ;-( | 
| 228 | x ./sbin/indexer -a -v 5 -i -u http://www.netfrag.org/webnews/% | 
| 229 | o automate this: | 
| 230 | o cd /usr/local/mnogosearch | 
| 231 | o ./sbin/indexer | 
| 232 | x ./sbin/indexer -a -p 1 -u http://www.netfrag.org/webnews/% | 
| 233 | x deleted all "post.php"-documents from mnoGoSearch-index-database | 
| 234 | x place entry in indexer.conf *before* the "Allow"-rules: "Disallow Regex \/webnews\/post\.php.*" | 
| 235 | x ... so we have now (for newsportal) | 
| 236 | Disallow Regex \/webnews\/post\.php.* | 
| 237 | Allow Regex \/webnews\/ | 
| 238 | x run: ./sbin/indexer -a -v 5 -p 1 -u "http://www.netfrag.org/webnews/post.php%" | 
| 239 | x or (faster - and will not blow up your apache): | 
| 240 | ./sbin/indexer -a -u "http://www.netfrag.org/webnews/post.php%" | 
| 241 |  | 
| 242 | o refactor OEF::Why::Queue | 
| 243 | o Topics | 
| 244 | o ORM (Object Relational Mapper) | 
| 245 | o Data synchronization | 
| 246 | o Object persistence | 
| 247 | o Code passivation / Task control | 
| 248 | o ChangeLog | 
| 249 | o Todo | 
| 250 | o Ideas | 
| 251 |  | 
| 252 | o PEAR | 
| 253 |  | 
| 254 | o LookAt PEAR-1.0? | 
| 255 |  | 
| 256 | o PEAR::XML::RPC | 
| 257 | x remove custom patches | 
| 258 | x re-integrate functionality from these patches at another place | 
| 259 | o enhance patches | 
| 260 | o look at http://cvs.php.net/co.php/pear/XML_RPC/RPC.php | 
| 261 | o look at http://marc.theaimsgroup.com/?l=pear-dev&m=103578377822397&w=2 | 
| 262 | o provide better patch introducing new error-codes and messages for "local errors": | 
| 263 | o "could not connect to remote server, failed to open socket" | 
| 264 | o "could not send data, but socket is open" | 
| 265 |  | 
| 266 | x LookAt PEAR::Log-1.5.3 | 
| 267 | x does it have log-level-constants defined inside itself? yes! | 
| 268 | x re-integrate patches to have timestamp formatted in a different way | 
| 269 |  | 
| 270 | o integrate PEAR::Translation with smarty | 
| 271 | o look at http://pear.php.net/package-info.php?pacid=124&release=1.2.3 | 
| 272 | o look at http://smarty.php.net | 
| 273 |  | 
| 274 | o send patch for PEAR/Log/file.php | 
| 275 |  | 
| 276 | o make patch for PEAR/XML/RPC.php | 
| 277 |  | 
| 278 | o refactor to PEAR::DB - drivers | 
| 279 | o glib/Data/Driver/Proxy.php | 
| 280 | o glib/Data/Driver/RPC/Remote.php | 
| 281 | o the name??? (DB::RPC?, DB::Remote?, DB::Virtual?) | 
| 282 |  | 
| 283 | o PEAR::Auth::Kerberos??? | 
| 284 |  | 
| 285 | o integrate glib/Data/Driver/Proxy with PEAR::Cache | 
| 286 | o use DB::RPC for this! | 
| 287 |  | 
| 288 | o integrate Application::Config with PEAR::Config | 
| 289 |  | 
| 290 | o use PEAR::Tree | 
| 291 | o look at http://opensource.visionp.de/modules/project/tree.php | 
| 292 | o as base data container for "app::menu", "phpHtmlLib::TreeNav" | 
| 293 |  | 
| 294 | o integrate Data::Encode with PEAR::I18N - Internationalization??? | 
| 295 |  | 
| 296 | o prepare patches for pear.php.net | 
| 297 | o configurable timestamp format for PEAR::Log::file | 
| 298 | o no fatal php errors from PEAR::XML::RPC | 
| 299 |  | 
| 300 | x why not PEAR::Config? | 
| 301 | * This class allows for parsing and editing of configuration datasources. | 
| 302 | * Do not use this class only to read datasources because of the overhead | 
| 303 | * it creates to keep track of the configuration structure. | 
| 304 |  | 
| 305 | o auf "tune": Programm beenden... "should not see me" | 
| 306 |  | 
| 307 | o non-proportional-font-angebots-generator | 
| 308 |  | 
| 309 | o archiving: manager & cataloguer | 
| 310 |  | 
| 311 | o schema-convertors | 
| 312 | o ldap-schema -> rdfs? | 
| 313 | o tangram-schema -> rdfs? | 
| 314 | o DBIx::DBSchema <-> rdfs? | 
| 315 | o => web-based rdfs-browser/-editor??? | 
| 316 |  | 
| 317 | o glossary: Abstract Syntax Notation Basic Encoding Rules (ASN.1/BER) records | 
| 318 |  | 
| 319 | o add some notes about licenses: | 
| 320 | o code: use GPL/LGPL? (GNU General Public License) | 
| 321 | ->http://www.gnu.org/copyleft/gpl.html | 
| 322 | o documentation and stuff: use OpenContent License (OPL)? | 
| 323 | ->http://opencontent.org/opl.shtml? | 
| 324 |  | 
| 325 | o found: LDSU | 
| 326 |  | 
| 327 | o what about the missing posts to news.netfrag.org? | 
| 328 | o e.g. "Wo finde ich .pod-Dokumente auf netfrag.org?" | 
| 329 | o auto-rotated to some nirvana by a cron-daily? | 
| 330 |  | 
| 331 | o nfo/Overview | 
| 332 | o edit | 
| 333 | ~natraj: redirect to ../optix | 
| 334 | ~xabbu: redirect to vortex.sytes.net | 
| 335 | ~janosch: fill with scripts/PerlFileMover.pl, scripts/mail-handler.pl and scripts/conrad-c-control-xyz | 
| 336 | download: link to http://psl.no-ip.com/public/download/ | 
| 337 | o change css-styles? | 
| 338 | o reduce width of inner text-field? | 
| 339 |  | 
| 340 | o netfrag.org - IntegrationPhase2 | 
| 341 | o integrate user-accounts and passwords | 
| 342 | o inn | 
| 343 | o phpWiki | 
| 344 |  | 
| 345 | o mnoGoSearch - modify search-interface | 
| 346 | o simpler form: | 
| 347 | o just two fields/areas: a) searchword b) (restrict) searcharea-/scope (by word, by checkboxing) | 
| 348 | o remember "last recent searches" | 
| 349 | o give user possibility to "mark search as private" | 
| 350 | o focus input-field on page load (javascript!) | 
| 351 |  | 
| 352 | o describe how to add a button to ie (via javascript) (or moz? via XUL?) which triggers | 
| 353 | a "search at netfrag.org" automagically | 
| 354 |  | 
| 355 | o distributed backup system with central/global administration point | 
| 356 | o it's just metadata | 
| 357 | o transportable via xml | 
| 358 | o storable in xml, rdbms, ldap | 
| 359 |  | 
| 360 | o search::OpenContact | 
| 361 |  | 
| 362 | o add copyright information to source-code!!! | 
| 363 |  | 
| 364 | o import directory layout (esp. /home/service) of h1.service.netfrag.org to cvs.netfrag.org | 
| 365 |  | 
| 366 | o add possibility to search for *arbitrary* *unlinked* words against a pre-configured WordExpander, | 
| 367 | which expands words to refs (e.g. http-url) automagically | 
| 368 | o add javascript-link: "search for selected word/phrase" against search.netfrag.org | 
| 369 |  | 
| 370 | o add new topic: "filter" | 
| 371 | o Regexp::Group | 
| 372 | o Data::Filter | 
| 373 | o Mail::Audit | 
| 374 | o Content-Filters | 
| 375 | o wiki, tavi, etc. | 
| 376 | o QuickNote to HTML (what about the name 'iNote'?) | 
| 377 |  | 
| 378 | o janosch's PerlFileMover | 
| 379 | o use unlink together with File::Spec instead of doing a "del" via system | 
| 380 | o use File::List (look at File::Iterator also) | 
| 381 | o use some directory watcher module or make one from that? | 
| 382 | o POE::Component::DirWatch | 
| 383 | http://search.cpan.org/author/CHOLET/POE-Component-DirWatch-0.01/DirWatch.pm | 
| 384 |  | 
| 385 | o replace? look at sandr! (Search AND Replace?) (from french university/organization...) | 
| 386 |  | 
| 387 | o install? look at DLAI! (DownLoad And Install?) (from french university/organization...) | 
| 388 |  | 
| 389 | o search::phpDocServ | 
| 390 |  | 
| 391 | o search::[outlook contact sync] | 
| 392 |  | 
| 393 | o pages for patches | 
| 394 |  | 
| 395 | o pages & screenshots for sync | 
| 396 |  | 
| 397 | o redesign layout of article-/message viewer in newsportal etc. | 
| 398 |  | 
| 399 | o setup cvstrac on quepasa.netfrag.org | 
| 400 |  | 
| 401 | o search::[trouble ticket] | 
| 402 |  | 
| 403 | o try lxr? (from sf.net) | 
| 404 |  | 
| 405 | o search::lyra | 
| 406 |  | 
| 407 | o google::[outlook ldap] | 
| 408 |  | 
| 409 | o search::LDAP Search Error | 
| 410 |  | 
| 411 | o nice layout: http://depts.washington.edu/cac/cchome/mis.html | 
| 412 |  | 
| 413 | o split up custom gui: | 
| 414 | o two parts (topics): "notes" & "ideas" (& "visions"?) | 
| 415 | o *both* may have contexts (are associated with one or more other arbitrary items) | 
| 416 | o these may be StartingPoints when having a number of things cross referenced | 
| 417 |  | 
| 418 | o [search::some news posts got purged, sorry] | 
| 419 |  | 
| 420 | o [search::quepasa moves slow] | 
| 421 |  | 
| 422 | o mail output from "df" at quepasa.netfrag.org | 
| 423 |  | 
| 424 | o tell rabit about ps-lxr (lxr-ps?) (the ps filter and link-expander) | 
| 425 |  | 
| 426 | o search::Business::OnlinePayment | 
| 427 |  | 
| 428 | o enhance CVSSpam's ruby-scanner's keywords (TODO, FIXME, etc.) | 
| 429 | o REVIEW | 
| 430 | o think about different mechanism of how to say "to this with that" to 'cvsspam.rb' | 
| 431 | o couple 'cvsspam.rb' and the not-yet-ready | 
| 432 | link-expansion/item-interpolation WebService on quepasa.netfrag.org | 
| 433 | o filter incoming content through that! forward via mail afterwards! | 
| 434 |  | 
| 435 | o do the same thing described above with inn: | 
| 436 | o couple the inn-perl-filters with the mentioned InterpolWebService  ;-) | 
| 437 | o or should we name it "ExtrapolWebService"? | 
| 438 |  | 
| 439 | o hehe: search::interpol | 
| 440 |  | 
| 441 | o search::it's too hard | 
| 442 |  | 
| 443 | x what's new in perl 5.8.0? | 
| 444 | x Unicode | 
| 445 | x Threads | 
| 446 | x IO | 
| 447 | x Signals | 
| 448 | x Speed | 
| 449 |  | 
| 450 | o use WWW::Mechanize!!! | 
| 451 |  | 
| 452 | o compare DesignPattern::Bridge with Class::Inner! | 
| 453 |  | 
| 454 | o refactor the DesignPattern::-namespace to the Class::-namespace (perl & php!)!!! | 
| 455 |  | 
| 456 | o have seperated search-spaces for | 
| 457 | o nfoweb & co. | 
| 458 | o news | 
| 459 | o cvs-logs | 
| 460 | o .... but: still let the feature to search the whole index ... | 
| 461 |  | 
| 462 |  | 
| 463 |  | 
| 464 |  | 
| 465 |  | 
| 466 | </pre> | 
| 467 |  | 
| 468 | <hr/> | 
| 469 | $Id: joko_2003-02.html,v 1.36 2003/02/08 05:14:21 joko Exp $ | 
| 470 |  | 
| 471 | </body> | 
| 472 | </html> |