Networking with Twisted -- ETech 2004

  1. Networking with Twisted -- ETech 2004
  2. Part 1 - Introduction
  3. Networking models
  4. Applied Bistromathics 101
  5. The event driven waiter
  6. Threads (a caricature)
  7. Event-driven programming
  8. Writing an event-driven program
  9. When do we want threads?
  10. The Framework of Your Internet
  11. Project Stats
  12. Part 2 - Basic Networking With Twisted
  13. Internet!
  14. Basic Definitions - Reactor
  15. Events in Twisted
  16. Basic Definitions - Transport
  17. Basic Definitions - Protocol
  18. All Together Now -- 1000 Words
  19. All Together Now -- Image
  20. How To Implement A Protocol
  21. How To Not Implement A Protocol
  22. How To Really Implement A Protocol
  23. Factories
  24. A Server Factory
  25. Connecting A Factory To A TCP Port
  26. Transport Independence
  27. Server Factory Lifecycle 1
  28. Server Factory Lifecycle 2
  29. Server Factory Lifecycle 3
  30. Client Side Factories
  31. Client Side Factories 2
  32. Connection API
  33. Client Factory Lifecycle 1
  34. Client Factory Lifecycle 2
  35. Client Factory Lifecycle 3
  36. Buffering
  37. Part 3 - Implementing Protocols
  38. Presence Server
  39. Our protocol
  40. Example transcript
  41. State machines
  42. Server implementation
  43. Code 2
  44. Code 3
  45. Code 4
  46. Code 5
  47. Discussion
  48. Better implementation
  49. Better implementation 2
  50. Further enhancements
  51. Client implementation
  52. Client implementation
  53. Client implementation
  54. Client implementation
  55. Example of using client
  56. Part 4 - Deferreds
  57. Waiting for results
  58. Waiting for results -- callbacks
  59. Waiting for results -- callbacks
  60. Problems with callbacks
  61. Deferreds
  62. Deferred example
  63. Failures
  64. Error handling
  65. Callback chain
  66. Common idioms - blocking call
  67. Common idioms - published methods
  68. Published method example
  69. Common idioms - Deferred per ID
  70. Example - DocmaServer
  71. Common problems
  72. Part 5 - Testing
  73. Why testing?
  74. twisted.trial: Testing with Twisted
  75. Writing tests
  76. Testing example
  77. Testing example
  78. Running tests
  79. Running tests example
  80. Part 6 - Processes and Threads
  81. Running processes
  82. spawnProcess example
  83. spawnProcess example 2
  84. Threads
  85. Calling Twisted from threads
  86. Running code in threads
  87. Running code in threads 2
  88. Thread utility functions
  89. Thread example code
  90. Part 7 - RDBMS
  91. Talking to RDBMS with adbapi
  92. Connection pools
  93. Simple queries
  94. Simple operations
  95. Complicated interactions
  96. Part 8 - More about networking
  97. DNS Lookups
  98. Using Twisted's native DNS
  99. Factory Resources
  100. Factory Resources 2
  101. Producers and Consumers
  102. Producers
  103. Consumers
  104. Sample Pull Producer
  105. Sample Push Producer
  106. Sample Push Producer continued
  107. Scheduling
  108. Example - twisted.web sessions
  109. Choosing a Reactor - Why?
  110. Choosing a Reactor
  111. Example GTK Program
  112. Summary: Events in Twisted
  113. Summary: Events in Twisted 2
  114. Part 9 - Applications
  115. Logging
  116. Logging Errors
  117. Applications
  118. Services
  119. Services 2
  120. twistd - Application Runner
  121. twistd Features
  122. Making a runnable application
  123. Running twistd
  124. TAPs: Pre-configured deployment
  125. Example of using TAPs
  126. Creating mktap plugins
  127. Example -- Bannerfish
  128. plugins.tml
  129. tapmaker.py
  130. Deploying mktap applications
  131. tap2deb, rpm2deb, tap2ntsvc
  132. Part 10: Further Bits and Pieces
  133. Other twisted.internet Features
  134. Protocol implementations
  135. Cred (twisted.cred)
  136. Component Architecture
  137. Network Server Frameworks
  138. Microdom
  139. Perspective Broker
  140. Lore
  141. Learning more