Networking with Twisted -- ETech 2004
- Networking with Twisted -- ETech 2004
- Part 1 - Introduction
- Networking models
- Applied Bistromathics 101
- The event driven waiter
- Threads (a caricature)
- Event-driven programming
- Writing an event-driven program
- When do we want threads?
- The Framework of Your Internet
- Project Stats
- Part 2 - Basic Networking With Twisted
- Internet!
- Basic Definitions - Reactor
- Events in Twisted
- Basic Definitions - Transport
- Basic Definitions - Protocol
- All Together Now -- 1000 Words
- All Together Now -- Image
- How To Implement A Protocol
- How To Not Implement A Protocol
- How To Really Implement A Protocol
- Factories
- A Server Factory
- Connecting A Factory To A TCP Port
- Transport Independence
- Server Factory Lifecycle 1
- Server Factory Lifecycle 2
- Server Factory Lifecycle 3
- Client Side Factories
- Client Side Factories 2
- Connection API
- Client Factory Lifecycle 1
- Client Factory Lifecycle 2
- Client Factory Lifecycle 3
- Buffering
- Part 3 - Implementing Protocols
- Presence Server
- Our protocol
- Example transcript
- State machines
- Server implementation
- Code 2
- Code 3
- Code 4
- Code 5
- Discussion
- Better implementation
- Better implementation 2
- Further enhancements
- Client implementation
- Client implementation
- Client implementation
- Client implementation
- Example of using client
- Part 4 - Deferreds
- Waiting for results
- Waiting for results -- callbacks
- Waiting for results -- callbacks
- Problems with callbacks
- Deferreds
- Deferred example
- Failures
- Error handling
- Callback chain
- Common idioms - blocking call
- Common idioms - published methods
- Published method example
- Common idioms - Deferred per ID
- Example - DocmaServer
- Common problems
- Part 5 - Testing
- Why testing?
- twisted.trial: Testing with Twisted
- Writing tests
- Testing example
- Testing example
- Running tests
- Running tests example
- Part 6 - Processes and Threads
- Running processes
- spawnProcess example
- spawnProcess example 2
- Threads
- Calling Twisted from threads
- Running code in threads
- Running code in threads 2
- Thread utility functions
- Thread example code
- Part 7 - RDBMS
- Talking to RDBMS with adbapi
- Connection pools
- Simple queries
- Simple operations
- Complicated interactions
- Part 8 - More about networking
- DNS Lookups
- Using Twisted's native DNS
- Factory Resources
- Factory Resources 2
- Producers and Consumers
- Producers
- Consumers
- Sample Pull Producer
- Sample Push Producer
- Sample Push Producer continued
- Scheduling
- Example - twisted.web sessions
- Choosing a Reactor - Why?
- Choosing a Reactor
- Example GTK Program
- Summary: Events in Twisted
- Summary: Events in Twisted 2
- Part 9 - Applications
- Logging
- Logging Errors
- Applications
- Services
- Services 2
- twistd - Application Runner
- twistd Features
- Making a runnable application
- Running twistd
- TAPs: Pre-configured deployment
- Example of using TAPs
- Creating mktap plugins
- Example -- Bannerfish
- plugins.tml
- tapmaker.py
- Deploying mktap applications
- tap2deb, rpm2deb, tap2ntsvc
- Part 10: Further Bits and Pieces
- Other twisted.internet Features
- Protocol implementations
- Cred (twisted.cred)
- Component Architecture
- Network Server Frameworks
- Microdom
- Perspective Broker
- Lore
- Learning more