<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Rob:<div>Thanks for sending this my way. You've 1) turned me on to a new and interesting podcast :) and 2) helped me wrap my head around some things I hadn't thought about.&nbsp;</div><div><br></div><div>All:</div><div>For those of you without 50 minutes to spare, I've typed up a few of the points that I found particularly interesting:</div><div><br></div><div>---</div><div><br></div><div>A plugin architecture has 4 important roles:</div><div>1. Finding plugins and loading plugins</div><div>2. Keeping track of loaded plugins and their extension points</div><div>3. Managing inter-plugin dependencies.&nbsp;</div><div>4. Providing a communication layer between application to plugin, or plugin to plugin</div><div><br></div><div>There are different "flavors" of plugin architectures.&nbsp;</div><div>1. An application that is useful in and of itself, which defines extension points for "add-ons", or additional functionality &nbsp; (An add-on plugin system)</div><div>2. An application built entirely of plugins, where plugins can extend existing extension points and provide new extension points for other plugins. (A pure-plugin system, similar to Eclipse) &nbsp;</div><div><br></div><div>In both cases, an application must not depend on a particular plugin.&nbsp;</div><div><br></div><div>It may not make sense to use a plugin framework for tiny applications. But anything with more than a few classes could benefit. &nbsp;And, applications that DO use a plugin system, allow for future growth. (In the podcast, they were describing cases where DECADES could go by using the same code-base with a plugin system...interesting)</div><div><br></div><div>---</div><div><br></div><div>Overall, this was a pretty interesting podcast. Here's a link if anybody wants to listen: &nbsp;</div><div><a href="http://www.se-radio.net/podcast/2008-07/episode-104-plugin-architectures">http://www.se-radio.net/podcast/2008-07/episode-104-plugin-architectures</a></div><div><br></div><div>Update on my Python Plugin System:</div><div>After searching, researching, and checking out existing plugin systems for Python (Twisted, setuptools, Sprinkltes, etc), I decided that none really fit the bill of simplicity that I am looking for. So, I finished writing one.&nbsp;With a few tweaks and code refactoring, this could be incredibly useful tool for others. I'll probably be setting up it up as an open-source project in the near future. If anybody is interested in the meantime, feel free to email me.&nbsp;</div><div><br></div><div>Thanks again for all of your help!</div><div><br></div><div>Best,</div><div>Jordan&nbsp;</div><div><br></div><div><br></div><div><br></div><div><br><div><div>On Sep 13, 2008, at Sep 13 &nbsp; 6:57 PM, Rob Kapteyn wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Jordan:</div><div>I like listening to podcasts while I exercise, and I just listened to a good one on this subject:</div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Lucida Grande'; ">"Software Engineering Radio - the podcast for professional software developers"</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Lucida Grande'; ">"Episode 104: Plugin Architectures" &nbsp;dated 7/20/08.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Lucida Grande'; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Lucida Grande'; ">I don't think it deals with python at all, but it did bring up a number of issues I might&nbsp;not have considered.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Lucida Grande'; ">It might be worth a listen.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Lucida Grande'; ">-Rob</div></div><br><div><div>On Sep 12, 2008, at 2:10 PM, Dan Krol wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Perhaps this won't end up applying to you, but you should check into<br>Swig and Pyrex. They make interfacing C with Python a lot simpler.<br><br>On 9/12/08, Jordan Sherer &lt;<a href="mailto:jordan@widefido.com">jordan@widefido.com</a>> wrote:<br><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">My understanding is that setuptools includes a simple framework for<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">this, which Trac (among other projects) uses for its plugins; I<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">tried googling a bit to throw you a link, though, and couldn't find<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">anything really definitive.<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Thanks for the effort :) That is what I've heard as well, but haven't<br></blockquote><blockquote type="cite">found anything definitive there.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">The library I have written so far *has* proved to be somewhat useful<br></blockquote><blockquote type="cite">(although buggy at the moment). I am just wondering if there is an<br></blockquote><blockquote type="cite">existing and/or better way to accomplish this.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">If not, maybe I can work on my code a little bit more, extending it,<br></blockquote><blockquote type="cite">and then open source it for all. If I go this route, does anybody have<br></blockquote><blockquote type="cite">any suggestions for specific functionality of a plugin framework?<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Thanks for your help.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Best,<br></blockquote><blockquote type="cite">Jordan<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">Chicago mailing list<br></blockquote><blockquote type="cite"><a href="mailto:Chicago@python.org">Chicago@python.org</a><br></blockquote><blockquote type="cite"><a href="http://mail.python.org/mailman/listinfo/chicago">http://mail.python.org/mailman/listinfo/chicago</a><br></blockquote><blockquote type="cite"><br></blockquote>_______________________________________________<br>Chicago mailing list<br><a href="mailto:Chicago@python.org">Chicago@python.org</a><br><a href="http://mail.python.org/mailman/listinfo/chicago">http://mail.python.org/mailman/listinfo/chicago</a><br></div></blockquote></div><br></div>_______________________________________________<br>Chicago mailing list<br><a href="mailto:Chicago@python.org">Chicago@python.org</a><br>http://mail.python.org/mailman/listinfo/chicago<br></blockquote></div><br></div></body></html>