Beispiel #1
0
# title graphic: PB peanut butter jar, "Twist(ed)" on lid
lecture = Lecture(
    "Perspective Broker: Translucent RPC in Twisted",
    # intro
    Raw(
        "Title",
        """
    <h1>Perspective Broker: Translucent RPC in Twisted</h1>
    <h2>PyCon 2003</h2>
    <h2>Brian Warner &lt; warner @ lothar . com &gt; </h2>
    """,
    ),
    Slide(
        "Introduction",
        Bullet("Overview/definition of RPC"),
        Bullet("What is Perspective Broker?"),
        Bullet("How do I use it?"),
        Bullet("Security Issues"),
        Bullet("Future Directions"),
    ),
    Slide(
        "Remote Procedure Calls",
        Bullet(
            "Action at a distance: separate processes, safely telling each other what to do",
            SubBullet("Separate memory spaces"),
            SubBullet("Usually on different machines"),
        ),
        Bullet("Frequently called RMI these days: Remote Method Invocation"),
        Bullet("Three basic parts: Addressing, Serialization, Waiting"),
    ),
gtkreactor.install()
import gtk
w = gtk.GtkWindow(gtk.WINDOW_TOPLEVEL)
w.show_all()
from twisted.internet import reactor
reactor.run()
"""

lecture = Lecture(
    "The twisted.internet Tutorial of Doom",
    Slide("Part 1 - Introduction"),
    # there are different ways to do networking
    # mention processes are not cross-platform
    Slide(
        "Choosing a networking paradigm for the enterprise",
        Bullet("Event driven"),
        Bullet(Bad("Threads")),
        Bullet("Others which we will ignore (processes, SEDA, ...)"),
    ),
    # it's a metaphor!
    Slide(
        "Applied Bistromathics 101",
        Bullet("Consider a restaurant as a network application"),
        Bullet("Clients come in, make requests to the waiters"),
        Bullet("Waiters act on clients' choices"),
    ),
    # an event loop is efficient, doesn't waste time
    # event loop is also used for GUIs
    Slide(
        "The event driven waiter",
        Bullet("One waiter, serving all tables"),
Beispiel #3
0
        self.title = title
        self.html = html

    def toHTML(self):
        return self.html


class HTML(Raw):
    def __init__(self, html):
        self.html = html

lecture = Lecture(
    "BuildBot: Build/Test Automation",
    Slide("The BuildBot: Build/Test Automation",
          Bullet("Home page: ",
                 URL("http://buildbot.sourceforge.net/"),
                 ),
          Bullet("Brian Warner  < warner-buildbot @ lothar . com >"),
          ),

    # quick description of what it does
    # motivation: what is the problem it is trying to solve
    # architecture: master+slaves
    # design
    #  starting the build: changes, tree-stable timers
    #  doing the build: builders, processes
    #  describing the build: status
    #  status clients
    # configuration: examples of Step, setup script
    # demos: glib, show twisted status page
    # future directions
Beispiel #4
0
#!/usr/bin/python2.2

from slides import Lecture, NumSlide, Slide, Bullet, SubBullet, PRE, URL

lecture = Lecture(
    "High-Level Database Interaction with SQLObject",
    Slide(
        "What is SQLObject?",
        Bullet("YAORM -- Yet Another Object-Relational Mapper"),
        Bullet(
            "Allows you to map your Python classes to your database schema"),
        Bullet("Takes the 'SQL' out of 'Database Programming'"),
        Bullet("No special XML files to create, just normal Python classes")),
    Slide(
        "Why Do I Care?",
        Bullet(
            "Storing things in databases is fairly common in day-to-day programming"
        ),
        Bullet(
            "SQL is the standard language used to manipulate data in a database"
        ), Bullet("Writing SQL is boring, repetitive and depressing"),
        Bullet("SQLObject relieves you of the burden of writing SQL"),
        Bullet("...but still lets you write SQL when you need to")),
    Slide(
        "How does SQLObject differ from other ORM's?",
        Bullet(
            "Simple is better than complex; SQLObject is very simple to use"),
        Bullet("Mappings are defined using normal Python classes"),
        Bullet(
            "Uses properties instead of wordy get/set methods for column attributes"
        ),