Here are some numbers, and whether or not they are prime:
�
<%for i in range(1, 101):%>
<%if isprime(i):%>
<%=i%> is prime!
<%end%><%else:%>
<%=i%> is not prime.
<%end%>
<%end%>
���Zg��f��gfgfgfgfgf gfgfgfgfgfg��f�g�f�<g�f�g�f�g�f�g��gg��f��g��gg��f�g�g��gg��g�f�g�g��gg��gg��f�g�g��gg��
g�f�g�g��gg��f�g�f�g��gg��f��HEz
�a"��PSP Directives����<%@ page imports= module, package.module, package:module %>
equivalent to at module level:
import module
import package.module
from package import module
<%@ page extends= MyPSPBaseClass %>
makes the generated servlet derive from the specified class
<%@ page method= writeContent %>
makes the body of your PSP be placed into a writeContent method instead of the writeHTML method.
<%@ page indentType= braces %>
Ignores indentation; uses braces for grouping
�=?%<"a .<d��d�d�d�
d��d��d��d��d��d�$d��d�;d�d�!d��d�,d�
d��d�
d��d� d��.d�@�t�20
<�b#��PSP: Braces Example��'<%@page indentType="braces"%>
<%
def isprime(number): {
if number == 2: {
return 1
} if number <= 1: {
return 0
} for i in range(2, number/2+1): {
for j in range(2, i+1): {
if i*j == number: {
return 0
}
}
}
return 1
}
%>
Here are some numbers, and whether or not they are prime:
<%
for i in range(1, 101): {
if isprime(i): { %>
<%=i%> is prime!
<%} else: {%>
<%=i%> is not prime.
<%}%>
<%}%>��(Zg��f�g��f��gfgfgfgfgf&gf!gfgfgf
gf gfgfgfgfg��f��<g�f�g�f�g��f��gfgg��f��g�g��gg��g�f�g�g�� gg��f��g��gg��g�f�g�g��gg��f��g�f�g��gg���Prx�c$��PSP: Four Ways To Include��&<%@ include file= myinclude.psp %>
Includes the specified file at compile time and parses it for PSP content, like #include in C
If included file's contents changes, you must restart the app server to pick up the change
<psp:include path= myinclude >
Equivalent to self.includeURL('myinclude')
Changes to the included file's contents are reflected immediately
<psp:insert file= myinclude.html >
File is included verbatim in the output. No PSP parsing.
File is read from disk for every request, so changes to the included file's contents are reflected immediately
<psp:insert file= myinclude.html static= 1 >
Includes the specified file at compile time verbatim, without parsing for PSP content.
If included file's contents changes, you must restart the app server to pick up the change�F#Z�ZZmZ#Z�Z.Z�Z"f��f��]f�f�Zf�f�f��f��f�f��f�Af�f�"f��f��9f�f�nf�f�-f��f��Vf�f�Zf�B�� �
E � ��d%��PSP: Methods���hAdding methods to a PSP servlet with the psp:method directive:
<psp:method name= add params= a,b >
return a + b
</psp:method>
�
100 + 200 = <%=self.add(100, 200)%>
Here's a slightly less contrived example:
<%@ page method= writeContent %>
�
<psp:method name= title >
return 'Prime Numbers'
</psp:method>�D@f,c?f�f�$f��f��ff
f��f��f�f�f�f��ff��f�f�*f�f�!f��f�f�f�f��f��ff
f��f����
l/ �e'��Web Services: XML-RPC����Turn your Webware site into a web service
Write a servlet derived from XMLRPCServlet
Define exposedMethods() method that lists the methods you want to expose through XML-RPC
Write your methods�TWlI
����T�Z
"
W�f(��%Web Services: XML-RPC Servlet Example����
from WebKit.XMLRPCServlet import XMLRPCServlet
class XMLRPCExample(XMLRPCServlet):
def exposedMethods(self):
return [ multiply , add ]
def multiply(self, x, y):
return x*y
def add(self, x, y):
return x+y
�8������
��g)��$Web Services: XML-RPC Client Example�$���import xmlrpclib
servlet = xmlrpclib.Server(
http://localhost/webkit/Examples/XMLRPCExample )
print servlet.add( foo , bar )
print servlet.multiply( foo , 3)
Print servlet.add( foo , 3) # This raises an exception�������
�h*��Web Services: XML-RPC continued����Exceptions are propagated as XML-RPC Faults
Configuration setting IncludeTracebackInXMLRPCFault controls whether or not the full traceback is included in the Fault
Easy to customize XML-RPC Servlet behavior
Just override call() in a subclass
Examples:
Suppose you want an authentication token or session ID to be the first parameter of every method
Rather than add that parameter to every method, just write a custom call() method��,x+-�,��D+������>B! 4��u8�� PickleRPC�
� ��BBrand-new in Webware CVS
Uses Python s pickle format instead of xmlrpc format
Advantages:
Works correctly with all Python types that can be pickled, including longs, None, mx.DateTime, recursive objects, etc.
Faster (?)
Disadvantages:
Python-specific
Security holes (may be addressed soon)�LZ�7Z�7�Z
,ej�v9��ShutDown handlers�� ���As we learned before, the contextInitialize(application, path) function in an __init__.py in a context is a good place to put global initialization code
Where do you put global finalization code?
Answer:
Register a shutdown handler function with application.addShutDownHandler(func)
On shutdown, all functions that have been registered using addShutDownHandler get called in the order they were added.
New in CVS����%����s*$��<��)�l,�=3�{>��
Tracebacks�
���If an unhandled exception occurs in a servlet:
Application.config settings:
If ShowDebugInfoOnErrors = 1, an HTML version of the traceback will be shown to the user; otherwise, a short generic error message is shown.
You can configure WebKit so that it sends the traceback by email: EmailErrors, ErrorEmailServer, ErrorEmailHeaders
Include fancy traceback using IncludeFancyTraceback and FancyTracebackContext
Your users will NOT report tracebacks, so set up emailing of fancy tracebacks!
��/QP/���������!����P�* b
�i+��Admin pages���fPassword-protected
Detailed activity log
Detailed error log
View configuration settings
Application.config
AppServer.config
View plug-ins
View servlet cache
Application Control
Shut down the app server
Clear the servlet cache
Reload selected modules
My opinion: probably NOT a good idea to enable the admin pages in a production site due to security concerns�jX$5ImX$5Im�Zd>��j-��One-Shot���7Webware automatically reloads servlets whose source code has changed on disk
Webware does NOT reload dependencies when they change
Solution: OneShot.cgi
CGI script that fires up the app server, handles one request, and shuts down
Very useful for debugging if you have a fast machine and are not using any libraries that take a long time to load
Otherwise, can be unbearably slow
Alternatives:
Custom WebKit.cgi that restarts the app server only if files have changed; see the Wiki
Put a restart icon on your desktop. Windows example:
net stop WebKit
net start WebKit����X6!������F6!���� &8�A?
�k.��Deployment issues: Unix���WebKit/webkit
Unix shell script launching WebKit at boot time using the standard init mechanisms
See the WebKit Install Guide and Wiki for hints
Monitor.py
This starts up WebKit and monitors its health, restarting it if necessary.
I ve never used this one
�V�e�����e��:P�l/��"Deployment issues: Windows NT/2000�"��Installing as a Service
Run python NTService.py install in your working dir
This creates a service called WebKit App Server with a short name of WebKit
Use the Services Control Panel to configure a user account and a startup policy (manual or automatic)
Controlling the service
Use the Services Control Panel
From the command-line:
net start WebKit
net stop WebKit
Removing the service
Stop the service
Run python NTService.py remove
Secret AppServer.config setting: NTServiceLogFilename (will change in the future)
�:Z�ZZ6Z!ZZ0ZUZ��3����g6!����#����# : � 0
�m0��IIS: wkcgi.exe�$��|CGI adapter written in C for greater speed
If you have to use IIS, this is your best option
Not as fast as Apache with mod_webkit
Download compiled version from http://webware.sourceforge.net/MiscDownloads/
Connects to localhost:8086 by default
If you need to connect elsewhere, place a webkit.cfg file in the same directory
See Webware/WebKit/Native/wkcgi/webkit.cfg for a sample�&������{ -
;���
0����n1��IIS: wkISAPI����Experimental ISAPI module for IIS that could result in speed equal to Apache with mod_webkit
Needs testing
Rumored to have memory leaks�$V+�o2�� MiddleKit� ��dObject-Relational mapper
Supports MySQL and MS SQL Server.
PostgreSQL support soon?
Can be used anywhere, not just WebKit applications.
Write an object model in a Comma-Separated Values (CSV) file using a spreadsheet
Inheritance is supported
Numbers, strings, enums, dates/times, object references, lists of objects (actually sets of objects)
Compile the object model
This generates Python classes for each of your objects that contain accessor methods for all fields
Also, an empty derived class is provided where you can add your own methods
And, a SQL script is generated that you can run to create the tables��;�~�;�~��t
-�� ��p3��MiddleKit continued�
��In your application code:
Create a singleton instance of SQLObjectStore pointing it to your SQL Database and your object model CSV file
Use store.fetchObjectsOfClass() to fetch objects from the store as needed
Create objects using their constructor
Modify the objects using the accessor methods that were generated for you
Add objects to the store using store.addObject()
Save changes to the database using store.saveChanges()
Delete objects using store.deleteObject()
See the MiddleKit documentation for all the details�&����9Jq I ,
"�q4��UserKit���SBasic framework for user and role management
Pre-alpha status; needs much more work�r5��TaskKit����Useful framework for scheduling periodic tasks
Can be used outside of WebKit
Example:
from TaskKit.Task import Task
from TaskKit.Scheduler import Scheduler
class MyTask(Task):
def run(self):
# Do something useful&
scheduler = Scheduler()
scheduler.start()
scheduler.addPeriodicAction(time() + 60*5, 60*5, MyTask(), MyTask )�.V�V�����F# L�s6��Cheetah���Chttp://www.cheetahtemplate.org/
A Python-powered template engine and code generator
Integrates tightly with Webware
Can also be used as a standalone utility or combined with other tools
Compared with PSP:
Much more designer-friendly
Perhaps less programmer-friendly?
Paper on Cheetah being presented from 3:30-5:00 PM today�6�>9�>9�"M����
0��t7��
FunFormKit�
���http://colorstudy.net/software/funformkit/
A package for Webware that does:
Form validation
Value conversion
HTML generation
Re-querying on invalid input
Compound HTML widgets (for example a Date widget)
LGPL license�6L�
L�
�"*����
0�*�w:��(Who s using Webware?�$���Public sites:
http://foreclosures.lycos.com/ - searchable database of foreclosure property
http://www.electronicappraiser.com/ - online home valuations
http://www.vorbis.com/ - home page for ogg vorbis audio encoding technology
Private sites intranets and extranets
Parlance Corporation: reporting and administrative capabilities for their customers
HFD: The Monkey, a content management system
Juhe: a membership management system for the Austrian Youth Hostel Association
Several others listed in the Wiki�L�(��(��x/#�h���
0�,��!�
0�[~��"�
0����x;��Future Plans���?Releases:
New release every 2 months
Next release 0.7 in 2nd half of February
Planned features (partial list):
Comprehensive test suite
Improve documentation
Some features are undocumented
Install guide needs to be updated
PostgreSQL support in MiddleKit
Built-in HTTP server
Multi-application support
Distutils support��
D!/Aa
0!/Aa�H�
/
�y<��I Want To Contribute!�����See the Wiki for ideas on areas where we could use help
Contribute patches on SourceForge
Write a module for use with Webware
Could be useable independent of Webware (like Cheetah)
Could be Webware-specific (like FunFormKit)
Give it a Kit suffix
If it needs to hook into WebKit, make it a Plug-In
See WebKit/PlugIn.py for details
PSP is an example of a plug-in that happens to be included with Webware
Please follow the Webware Style Guidelines
See the documentation��~c5i+~c5i+��A!
2L'�z=��That s All!���Any questions?��� `� ����������33��PP��`� ���33�����33�`� ���___������MMM���`� ��������1�����3���`� ���333f�p�KN�ā�v�I`� ������j@v۩�ῑ���H`� ������Q_{������������>��?" dd@��������� ����?n<d�@���������`7� `2�@`7�``2� �n��?" dd@���������� @@``��P�R @ ` �`�p�>��>N�F�
���
�( �����������������
���
��
��<�Tv�������"�������
�@�����
��
��
��T��y����������d���"�����w�
�@�����
�
��
��<��|�������"�����
�@�����
��
��
��T�4����������d���"�������
�@�����
��
��
��N�,�������������"����a�
�@�����
�
��
��<�L��������"���|��
�@�����
��
��
C�x�D�����?�������d���?��"����n��
�@�����
��
� �
��6���������� "������a���
�T�� Click to edit Master title style�!�
!�$
�
�
��0��������� "����� `���
���RClick to edit Master text styles
Second level
Third level
Fourth level
Fifth level�!
�
S��
��
��6�ȑ������� "����@�����
�\��*�����
��
��6��������� "����@`��� �
�^��*�����
�
�
��6��������� "�����`����
�^��*����B
��s�*������h�� ?� ���33�����33� �Blends�s
� �#
�
P�� �( �����������������
����T �+�
���"���+��b�b ��P@
�#��"����Dwo�h
�
s�*������"����PP��
�
��B���������d���"��� P@�b�b ��P
0
�#��"���N�y�h
�
s�*������"����P
��
�
��B���������d���"����P
0�z
�
��<�����������"��� a*�h
�
s�*������"�������
��
�f���?�������d���?��"�����+)��
�
��<�lI������� ?"����p�P���
�T�� Click to edit Master title style�!�
!��
�
��0�lK������ "���� ` �
���
�W��#Click to edit Master subtitle style�$�
$��
�
��6�XG������� "���`p ����
�`��*�����
�
��6�䟁������ "���`p���� �
�b��*�����
�
��6�4������ "���`������
�b��*����B
�s�*������h�� ?� ���33�����33����
���0�t�0�( �
�t�x
�t c�$�H���� �����a��
�
���x
�t c�$��/���
���� `���
���H
�t��0�������h�� ?� ���33�����33����
����`�x�$�( �
�x�r
�x S��\݁�� �����a��
�
���r
�x S��ށ��
���� `���
���H
�x��0�������h�� ?� ���33�����33����
����p���$�( �
���r
�� S���N��� �����a��
�
���r
�� S���R���
���� `���
���H
����0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S���W��� �����a��
�
���r
�� S��xX���
���� `���
���H
����0�������h�� ?� ���33�����33��I�
����������( �
���r
�� S��,^��� �����a��
�
�����
��
�f���}��������?��?����P�
�;��Browser���
��
�f���}��������?��?��� p��
�:��Apache���
��
�f�d�}��������?��?���p��
�T��WebKit����R
�
�
�`��a��������?��?����
p@
�X��Servlets� ���R
��
�`�0f��������?��?����
0
�T��PSPs����
��
�f��i���������?��?����
��P
�>���
���
��
��T��n�������?��?���`� �G
�X��
Filesystem��
��
��
�f�,p���������?��?������`
�b��
mod_webkit�����
��
�f��t���������?��?������
�B��XML-RPC client���B
��
�f��D������?��?���@0 ��B
��@
�f��D������?��?���� ���
��
�`�y���������?��?���`0 0
4
�6��80����
��
�`��|���������?��?���`
4
�6��80���B
��
�f��D������?��?���` �
�
��
��
��T�,��������?��?���P
�`
$
�8��8086���B
���
�`��D�����?��?����P
�
�
��B
���
�`��D�����?��?�����
�
�"
��
C�x�̃����G�
�������?��?����@��
�l��
WebKit.cgi��$��B
��
�f��D������?��?���� 0 0 ��
��
��T�<��������?��?���P
` @$
�8��8086��H
����0�������h�� ?�� ���33�����33����
��������$�( �
���r
�� S��<���� �����a��
�
���r
�� S�������
���� `���
���H
����0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S��@���� �����a��
�
���r
�� S�������
���� `���
���H
����0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S������� �����a��
�
���r
�� S��\����
���� `���
���H
����0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S������ �����a��
�
���r
�� S������
���� `���
���H
����0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S������ �����a��
�
���r
�� S������
���� `���
���H
����0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S��D��� �����a��
�
���r
�� S�����
���� `���
���H
����0�������h�� ?� ���33�����33����
�������$�( �
���r
�� S��H��� �����a��
�
���r
�� S�����
���� `���
���H
����0�������h�� ?� ���33�����33����
�������$�( �
���r
�� S�� /��� �����a��
�
���r
�� S���/���
���� `���
���H
����0�������h�� ?� ���33�����33����
���� ���$�( �
���r
�� S���4��� �����a��
�
���r
�� S���5���
���� `���
���H
����0�������h�� ?� ���33�����33����
����0���$�( �
���r
�� S���9��� �����a��
�
���r
�� S���:���
���� `���
���H
����0�������h�� ?� ���33�����33����
����@���$�( �
���r
�� S������� �����a��
�
���r
�� S��<����
���� `���
���H
����0�������h�� ?� ���33�����33����
����@���$�( �
���r
�� S��O��� �����a��
�
���r
�� S��,-���
���� `���
���H
����0�������h�� ?� ���33�����33����
����P��$�( �
��r
� S��0���� �����a��
�
���r
� S������
���� `���
���H
���0�������h�� ?� ���33�����33����
����`��$�( �
��r
� S��TW��� �����a��
�
���r
� S��X���
���� `���
���H
���0�������h�� ?� ���33�����33����
����p��$�( �
��r
� S������ �����a��
�
���r
� S�������
���� `���
���H
���0�������h�� ?� ���33�����33����
������ �$�( �
� �r
� S���a��� �����a��
�
���r
� S��@g���
���� `���
���H
� ��0�������h�� ?� ���33�����33����
������,�$�( �
�,�r
�, S���~�� �����a��
~
���r
�, S��h~��
���� `��~
���H
�,��0�������h�� ?� ���33�����33����
������4�$�( �
�4�r
�4 S��X~�� �����a��
~
���r
�4 S��~��
���� `��~
���H
�4��0�������h�� ?� ���33�����33����
������<�$�( �
�<�r
�< S��8=~�� �����a��
~
���r
�< S���=~��
���� `��~
���H
�<��0�������h�� ?� ���33�����33����
������D�$�( �
�D�r
�D S��@2~�� �����a��
~
���r
�D S���2~��
���� `��~
���H
�D��0�������h�� ?� ���33�����33����
������P�$�( �
�P�r
�P S��@q��� �����a��
�
���r
�P S���q���
���� `���
���H
�P��0�������h�� ?� ���33�����33����
������X�$�( �
�X�r
�X S��\y��� �����a��
�
���r
�X S��z���
���� `���
���H
�X��0�������h�� ?� ���33�����33����
������h�$�( �
�h�r
�h S������ �����a��
�
���r
�h S�������
���� `���
���H
�h��0�������h�� ?� ���33�����33����
�����l�$�( �
�l�r
�l S������� �����a��
�
���r
�l S�������
���� `���
���H
�l��0�������h�� ?� ���33�����33����
�����t�$�( �
�t�r
�t S������ �����a��
�
���r
�t S�������
���� `���
���H
�t��0�������h�� ?� ���33�����33����
���� �|�$�( �
�|�r
�| S��ؖ��� �����a��
�
���r
�| S�������
���� `���
���H
�|��0�������h�� ?� ���33�����33����
����0���$�( �
���r
�� S��ȝ��� �����a��
�
���r
�� S�������
���� `���
���H
����0�������h�� ?� ���33�����33����
����@���$�( �
���r
�� S��x���� �����a��
�
���r
�� S��4����
���� `���
���H
����0�������h�� ?� ���33�����33����
����P���$�( �
���r
�� S��t���� �����a��
�
���r
�� S��0����
���� `���
���H
����0�������h�� ?� ���33�����33����
����`���$�( �
���r
�� S������� �����a��
�
���r
�� S��0����
���� `���
���H
����0�������h�� ?� ���33�����33����
����p���$�( �
���r
�� S��@ ��� �����a��
�
���r
�� S��� ���
���� `���
���H
����0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S��0��� �����a��
�
���r
�� S��|���
���� `���
���H
����0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S��l���� �����a��
�
���r
�� S��(����
���� `���
���H
����0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S������ �����a��
�
���r
�� S��H����
���� `���
���H
����0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S������ �����a��
�
���r
�� S��(����
���� `���
���H
����0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S��`���� �����a��
�
���r
�� S������
���� `���
���H
����0�������h�� ?� ���33�����33����
������T�$�( �
�T�r
�T S��\���� �����a��
�
���r
�T S������
���� `���
���H
�T��0�������h�� ?� ���33�����33����
������\�$�( �
�\�r
�\ S��\���� �����a��
�
���r
�\ S������
���� `���
���H
�\��0�������h�� ?� ���33�����33����
���� ���$�( �
���r
�� S������ �����a��
�
���r
�� S��`���
���� `���
���H
����0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S������ �����a��
�
���r
�� S��8����
���� `���
���H
����0�������h�� ?� ���33�����33����
�������$�( �
���r
�� S��h#��� �����a��
�
���r
�� S��d&���
���� `���
���H
����0�������h�� ?� ���33�����33����
�������$�( �
���r
�� S���.��� �����a��
�
���r
�� S��t/���
���� `���
���H
����0�������h�� ?� ���33�����33����
���� ��$�( �
��r
� S���3��� �����a��
�
���r
� S��x4���
���� `���
���H
���0�������h�� ?� ���33�����33����
����0��$�( �
��r
� S���:��� �����a��
�
���r
� S��|;���
���� `���
���H
���0�������h�� ?� ���33�����33����
����@��$�( �
��r
� S���?��� �����a��
�
���r
� S���@���
���� `���
���H
���0�������h�� ?� ���33�����33����
����P��$�( �
��r
� S��P��� �����a��
�
���r
� S��LB���
���� `���
���H
���0�������h�� ?� ���33�����33����
����`�$�$�( �
�$�r
�$ S��<\��� �����a��
�
���r
�$ S���\���
���� `���
���H
�$��0�������h�� ?� ���33�����33����
����p�,�$�( �
�,�r
�, S��@a��� �����a��
�
���r
�, S���a���
���� `���
���H
�,��0�������h�� ?� ���33�����33����
������4�$�( �
�4�r
�4 S��l��� �����a��
�
���r
�4 S���l���
���� `���
���H
�4��0�������h�� ?� ���33�����33����
������<�$�( �
�<�r
�< S���p��� �����a��
�
���r
�< S���q���
���� `���
���H
�<��0�������h�� ?� ���33�����33����
������H�$�( �
�H�r
�H S������� �����a��
�
���r
�H S��萀��
���� `���
���H
�H��0�������h�� ?� ���33�����33����
������d�$�( �
�d�r
�d S��t���� �����a��
�
���r
�d S���h���
���� `���
���H
�d��0�������h�� ?� ���33�����33����
������l�$�( �
�l�r
�l S������� �����a��
�
���r
�l S��D����
���� `���
���H
�l��0�������h�� ?� ���33�����33����
������t�$�( �
�t�r
�t S��p���� �����a��
�
���r
�t S��,����
���� `���
���H
�t��0�������h�� ?� ���33�����33����
��������$�( �
���r
�� S��\���� �����a��
�
���r
�� S������
���� `���
���H
����0�������h�� ?� ���33�����33��&x��Ykl�>3��כ����`�b��3;�v����� �ĉ��!�w�����vwLB`�R�������(RUE��*ZP�T��*��Tm�Pio�{���/�8P�����9s�=�{w_���W����Wi�H�/5R}�L��%���|�T*�K����\b�(�6�
@�=�����\l��?�1\���^2��Gqʢ�ӑũ�i#"�ܗ�uG^*���'����\n��H��yi\H.d��~�
u�6�����>KSc���T��ն{TX1�i��)��^�gy�����gk���gf���w��^�'�+��Xh.Z�ˈ�ѧ6ś���@+p%p�i�\
��B�5���N`���t~�[�QPDz�^`;����@?�w�g���=
�1 $�`�� ����|
��p3�����4���V�6�va�A�w��;�$}�9T���E�ϼD�VY~��r-��tB��kN'&��ƴ�HK e�1/�[����A�K-����F�y�Ϗ���z���{#I�b�J��~���
H-i�z�Ź�&�y�[��*JQQ�PP��J�3Jn�IjV��kW��v�ڣ�=4D��G�,}�T�)��2h�}xO��%˜IZ3��J'cÓ��Tݩ�p��I,�Tωؗ��X����%�1%������J@���X���Dz�Z�X�>+~m*O�_"c�̤�f�윴|��q�c�P4��ӆ���}}݊oxBz�|{2�d���b��K�$���:����A��YCPS�T_����h��F������~�K�'��b�U��꺴��Wk���4ɫ-H]���ٛ`Naվ��l'�Ӹ/�Wy���{RN�?/���i��%VE,��Y�h��g�$���ى��V?�5�|��}��&�o��Rz�[!���;�*��¹*��
�p-��
�Z�|���).T��nG���W�Z�$�E��y��-2�ɬTj�Z�_Ƴ��2�;��1������O�i_`�ަ*��8⛲��ݦ�|R�k���S<>�5�d�[�������s���fn%��-�3�
0'���Ȉ\��A�m��K�˨��z�{��X�����bz6�"��f㯣��gɁ�o���2���!�\��}09{�Y5��tΗ���V�5�7�S$�Ӑ�B��G�]g$��>y�Ts^��9���xb>e��s��)���ZA�[An,����u�7I���3<�/\�ko�����^
KI�Y�/���o�Ò�N�y�w�{��ω{�TNR�c��|fb�"�7�J���
�x����q/�8��(��#V�q_RE�`u\,_&�ap�|�!�����k�p��^Q��Ǝ�^{�d�c���%��:�̈�)Q�*�FQ/ �[yy�Q|���\��c���E�kY���Wצ�����V���*/�\�~>��G�j�l��~{|�Ů�&�@�|'�:�L�=1?�SYO�xx�D��HGFə+9��s�������5W�t��J��p�+W�B2��(m�.m�G�J�]�6_��%O������7�-�Å-$zd:��uׅ���s%r��z�钽�D�-��S�z3�z���s���m%�&�9�[@0�3������ʷ�L/Dx�A�q�{�p�F�*aϴ\Y>1v��F�sqMt\<#�Jag�IaՂ����W�)�b�[�^@�f�5b��9�o2�/��?���c?~��S�VI��B�,�Kd�?l+�����];�Q���7�k��C.�|��A\��d�vC��
��z�e����)F{�k�$�
�,����4��%���8�2����2i[��YԪ��R�}��5�k���=0��B�0m��C?V�r��������^�J���>�k�f��~:U��g��`����[l�_t7�zld��F�סg�^F�F�<�2�,��[)\�݅�).݃�ܾŧ�O.+�Er����X����`�}�Ga;��1� �W;��X[K�{���l�Bf�~u�k�]�i1��LƸ5Q>�$>�
����<�'g�ņ-W+�|�3m��J�c�Y�ms��+��Dڪ�%r�t�����Ʈ��j߈+�LKOZ���/��'�-A�4��5
�Bc���f��`8�ۆ�a���f$���E����M���_�E��7T������{�;��jP�^߂�w��������ZW��%�sL���/^�s�d���'ؠ�p?{�}�?������q���;sy��g-~n�]�K�N����wz���7e=�K�����z���m�UMl�R#,+9J�C��l��/���<�\\�+35mV�L�o��R3�-Q$ee��Gj��J��Q#��g��!��dvJ��zX���/m��ue3�T7`1���'U�>}��=�}#��t2�LYz����*��y����-{��5}+:�$af�����h����V�5�H��7���4S0��g��{�����0����K�j�D�(�����i=od������f:�!���J�3f���^j*[�,����[�>�
e��Z�^ׇfg&0���V�5
3�&X����u����z��I��4cV��ߪ�%9����/,�u"����
�ו��������\�n.I�걟c#�R!�����Ͳ��\���V�����$�62��J�����X��@0�����v%�E���#�ވ�'�Ɣ���)ʱ6�ێ�~��F��V]'��K7rQ����V ���Qs&�@�0��������(�Btp��-ND����`O-�46�ᩒP�}Z$��@��-�GԀ��B1�=��w����t>���I��}�.Ŧ@��`8��zC�?�Xۮ�Jl���T#�~�;���B���q~Բ�����I~Xt��?l��}�?�&��x(�W����'r�1-~C%jY����dJ?X^�~U��1��._O ��[�mY�\���im�_T_x�r9 ��$>�p/h1T3@5,7}HiJULAN-PRT�U�W�Y�[�]�_yaecQe1�=g)ikm�n�p[�r�t�v�xuza|M~9�%�����Չ��q�]�I�5�!�
����Ѣ������������m�Y�E������{t�������Oh��+'��0t5
px��
@LX
dpx�PowerPoint Presentation gtalvolat PLC:\Program Files\Microsoft Office\Templates\Presentation Designs\Blends.pot gtalvolam F30lMicrosoft PowerPointoso@P b@@@T�'��@����ֳ�G�3�����g �
C&������ &����&#����TNPP��2��OMi�
&
TNPP� &����&TNPP��
����-�-- !���-����-��-���--- !�2. --�-���q�w@�
/LS�wUS�w0- &����G iR&����-�-���=-$G Q QRGR���-�$Q [ [RQR����-�$[ e eR[R����-�$e i iReR-�--&����&���� �33�--- !�2,L,--�- &����RLy~&����--�JJ�-$RL\L\~R~����-�$\LfLf~\~����-�$fLpLp~f~����-�$pLyLy~p~-�--&����&���� &����E;q&����--&&��-$<E#<O��DD-�$<O#-<Y��kk-�$<Y-7<c����-�$<c7A<m����-�$<mAK<w����-�$<wKU<�����-�$<�U_<�����-�$<�_i<�����-�$<�iq<�$<�qq<�&&&����-&$Eq;q;E&&-&&
&&�-�&&r<E&&��-$<E#<O��DD-�$<O#-<Y��kk-�$<Y-7<c����-�$<c7A<m����-�$<mAK<w����-�$<wKU<�����-�$<�U_<�����-�$<�_i<�����-�$<�iq<�$<�qq<�&-�
--&����&���� �--- !�nC--�- &����!h�k&����--�-$!h+h+k!k� -�$+h5h5k+k�###-�$5h?h?k5k�&&&-�$?hIhIk?k�)))-�$IhShSkIk�,,,-�$Sh]h]kSk�///-�$]hghgk]k�222-�$ghqhqkgk�555-�$qh{h{kqk�888-�${h�h�k{k�<<<-�$�h�h�k�k�???-�$�h�h�k�k�CCC-�$�h�h�k�k�FFF-�$�h�h�k�k�HHH-�$�h�h�k�k�LLL-�$�h�h�k�k�OOO-�$�h�h�k�k�SSS-�$�h�h�k�k�WWW-�$�h�h�k�k�[[[-�$�h�h�k�k�^^^-�$�h�h�k�k�bbb-�$�h�h�k�k�fff-�$�hhk�k�jjj-�$hhkk�nnn-�$hhkk�rrr-�$h%h%kk�vvv-�$%h/h/k%k�zzz-�$/h9h9k/k�~~~-�$9hChCk9k����-�$ChMhMkCk����-�$MhWhWkMk����-�$WhahakWk����-�$ahkhkkak����-�$khuhukkk����-�$uhhkuk����-�$h�h�kk����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�hhk�k����-�$hhkk����-�$hhkk����-�$hhkk����-�$h)h)kk����-�$)h3h3k)k����-�$3h=h=k3k����-�$=hGhGk=k����-�$GhQhQkGk����-�$Qh[h[kQk����-�$[hehek[k����-�$ehohokek����-�$ohyhykok����-�$yh�h�kyk����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�h�h�k�k����-�$�hhk�k����-�$hhkk����-�$hhkk$h#h#kk����-�$#h-h-k#k����-�$-h7h7k-k$7hAhAk7k����-�$AhKhKkAk����-�$KhUhUkKk$Uh_h_kUk$_hihik_k����-�$ihshskik$sh}h}ksk����-�$}h�h�k}k-�--&����&���� &����_�)�&���� &����_���&���� --g�%l-- ����@"Tahomaw@�
LS�wUS�w0-� 33�.2
XuWebware' . 33�.2
X3
for Python
.--��x|-- 33�����@Wingdings�
5LS�wUS�w0-� 33�. 2
��n.����@"Tahomaw@�
LS�wUS�w0-� .2
��Developers:.����@Wingdings�
:LS�wUS�w0-� �. 2
��n.����@"Tahomaw@�
!LS�wUS�w0-� .2
��Chuck
. .2
�#
Esterbrook
.����@Wingdings�
?LS�wUS�w0-� �. 2
��n.����@"Tahomaw@�
#LS�wUS�w0-� .2
��Jay Love
.����@Wingdings�
DLS�wUS�w0-� �. 2
�n.����@"Tahomaw@�
%LS�wUS�w0-� .
2
�Tom . .2
Schwallerk
.����@Wingdings�
JLS�wUS�w0-� �. 2
7�n.����@"Tahomaw@�
'LS�wUS�w0-� .2
7�Geoff . .2
7Talvola
.����@Wingdings�
OLS�wUS�w0-� �. 2
]�n.����@"Tahomaw@�
)LS�wUS�w0-� .C2
]�(And many others have contributed patches
.����@Wingdings�
SLS�wUS�w0-� 33�. 2
��n.����@"Tahomaw@�
+LS�wUS�w0-� �.62
��http://webware.sourceforge.net/
.��--���y-��- ��{������@Wingdings
#LS�wUS�w0- � 33��y. 2
��n.����@"Tahomaw@�
-LS�wUS�w0-� �y.2
��Mailing lists:
. �y.2
�awebware. �y. 2
��-. �y.2
��discuss and
. �y.2
��webware. �y. 2
�-. �y.2
�&devel.����@Wingdings
.LS�wUS�w0- � 33��y. 2
��n.����@"Tahomaw@�
/LS�wUS�w0-� �y.2
��
Very helpful
. �y.
2
�]Wiki.����@Wingdings
5LS�wUS�w0- � 33��y. 2
�n.����@"Tahomaw@�
1LS�wUS�w0-� �y.<2
�#Birds of a Feather session 8:00 PM
. �y. 2
��. �y.2
�9:30 PM
. �y.2
:�tonight!.--����"System
0-�&TNPP &��������՜.��+,��D��՜.��+,��D������� �
��
��On-screen ShowParlance Corporationi-�|<� BArialTahoma
WingdingsTimes New RomanArial Unicode MSBlendsWebware for PythonWhat is Webware?What is in Webware?WebKit
ArchitectureInstalling WebwareWorking DirectoryWorking Directory continuedWebKit.cgimod_webkitmod_webkit continuedStarting the app server%Using the Example servlets and PSP�s Servlets ContextsThe Request-Response CycleThe Transaction ObjectHTTPRequest
HTTPResponsePage: Convenience Methods&Page: Methods Called During A RequestPage: .writeHead()Page: .writeBody()ActionsActions continuedForwarding
IncludingCalling Servlet Methods SessionsSession StoresSession OptionsPSP: Python Server PagesPSP ExamplePSP DirectivesPSP: Braces ExamplePSP: Four Ways To Include
PSP: MethodsWeb Services: XML-RPC&Web Services: XML-RPC Servlet Example%Web Services: XML-RPC Client Example Web Services: XML-RPC continued
PickleRPCShutDown handlersTracebacksAdmin pages One-ShotDeployment issues: Unix#Deployment issues: Windows NT/2000IIS: wkcgi.exe
IIS: wkISAPI
MiddleKitMiddleKit continuedUserKitTaskKitCheetahFunFormKitWho�s using Webware?
Future PlansI Want To Contribute!That�s All!Fonts UsedDesign Template
Slide Titles< 8@_PID_HLINKS�A�H http://webware.sourceforge.net/ http://webware.sourceforge.net/.http://webware.sourceforge.net/MiscDownloads/$http://localhost/cgi-bin/WebKit.cgihttp://localhost/webkit,http://localhost/webkit/MyContext/MyServlet.http://webware.sourceforge.net/MiscDownloads/ http://www.cheetahtemplate.org/+http://colorstudy.net/software/funformkit/http://foreclosures.lycos.com/$http://www.electronicappraiser.com/http://www.vorbis.com/� _��� ���gtalvolagtalvola
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~������������������������������������������������������������������������������������������������������������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Root Entry����������d�O�����)�����Current User������������SummaryInformation(����������5PowerPoint Document(����-�DocumentSummaryInformation8�������������������������������������������������