Thoughts on Presentations
Presenting a Solid Tutorial at PyCon
Proposals for tutorials at PyCon 2009 are now being accepted through October 31st.
Due to many projects I have going on right now I probably won't be able to propose a tutorial myself but I thought I'd share some thoughts from last year when Feihong Hsu and I presented Secrets of the Framework Creators.
Here's what went well...
- All our materials were available on disk. We had flash drives and CDRs and we actually had to use them because the Internet was very spotty. We didn't really need people to install anything but in case of this you should think of making a folder with everything they need. Or, you could ask Titus about his grand plan to run a server at the hotel for easy_install to use.
- Every concept was documented and laid out in a logical structure for attendees to follow during or after the tutorial (see link above). This was mostly Feihong's doing and I didn't think it would be so crucial to success but it was. We had several people comment afterwards that it was the most organized tutorial they had attended. Also, this format enables people to go more in-depth after the tutorial is over.
- We finished ahead of schedule. This was probably just luck but we did make an effort to time out what it would take us to complete the tutorial. We also were conscious during discussions to keep things moving along. In fact, we were so worried about running over time that we only focused on a small sampling of what we had planned for the tutorial. Since we finished early we then held a vote for what sections to go back into. By the end we had gotten through all but one or two sections (IIRC).
- One person demo'd code, the other talked. This is a typical format and I think it works well. It took some practice to get right though. When two people do this it takes pressure off the one demoing and allows the speaker to think about what the audience needs to know, thus providing a good overview of what's happening.
- We took breaks on time. Breaks are important! It's also important to follow the schedule so that everyone gets a cookie.
Here's what could have gone better...
- We should have burned more CDRs! Have at least 20 CDRs on hand with the materials, the more the better.
- The video didn't turn out too well. I only glanced at the video footage but I think it would be hard to follow as a standalone tutorial. Mainly this was because the audio was recorded poorly. We also only had one mic to share between the both of us so there were a few non-sensical soundbites. We mentioned this to the committee afterwards so hopefully it will be addressed next year.
- Not everyone reads your "prerequisites." We actually planned for this and allowed for some voting like "who here is not familiar with pdb?" Then we did a quick intro on it. All in all I think we were lucky — no one seemed to get stuck — but we probably could have planned for more of those mini-intros if needed.
It was fun. Plus, you get paid!! :) I'd highly recommend giving a tutorial of your own. There's even a page on ideas for tutorials if you can't think of one.
- 3 comments
- read comments
- post comment
- permalink
How To Get Started Writing Open Social Applications
I started learning about Google's Open Social API and gave a lightning talk on it at the last Chicago Python User Group meeting. It wasn't much more than a brief overview and fodder for "diving in" to the Open Social platform. Here it is again, in more of a tutorial form, so dive in!
What Is It?
It's a set of programming interfaces to let you build "applications" that run inside social networking websites. By applications, think "widgets." The interfaces consist of a JavaScript API to build the screens and interactivity and a REST API (Atom publishing API + XML) for the "container" site to implement.
The official "container" sites so far include Friendster, MySpace, Orkut (Google's own), Hi5, Ning, and several others. Some interesting facts from the video : Orkut has an overwhelming presence in Brazil and India and Hi5 is the largest Spanish-speaking social site. Ning is unique in that it's a "meta" social site. It's a social site that enables you to build your own social sites until your head explodes.
The Role of An Open Social Application
I predict that the dark energy of the universe (that is, energy generated by the free time of cunning web developers like you and I) will bring hundreds of cool social apps into existence. It's the same collaboration concept that makes open source software so successful. And more similarly, what makes Firefox so customizable through Extensions. This kind of thing gets me excited about the Web reminiscent of when RSS became a standard. To be honest, I don't think social networking is that interesting and I am still waiting for the fad to die out, but Open Social might encourage other sites to standardize additional container/application APIs.
Let's See Some Code
To test out an Open Social app you can use the Orkut Sandbox. It needs to conform to the Google Gadget API; here is the simplest app you can build:
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Boring Hello App">
<Require feature="opensocial-0.5"/>
</ModulePrefs>
<Content type="html">
<![CDATA[
<script type="text/javascript">
function start_hello() {
document.getElementById('message').innerHTML = "Hello!";
}
_IG_RegisterOnloadHandler(start_hello);
</script>
<div id="message"> </div>
]]>
</Content>
</Module>
Since this isn't very exciting and doesn't show off and of the API features, there are plenty more examples in the Open Social docs.
Some Gotchas
The Orkut sandbox has a fierce cache. To use your application uncached, you have to add this on to the end of your app's URL:
http://.../?...&bpc=1
Since the app is just HTML, you can use the script tag to pull in 3rd party JavaScript libraries. But keep in mind you will face some problems due to to JavaScript's Same Origin security policy. Although, the JavaScript libs automatically available will probably let you do most of the remote-call things you need, like fetching JSON. There also might be some workarounds with the Dojo framework's iframe strategy.
Have fun!
- 1 comment
- read comments
- post comment
- permalink
Python on TextMate demo (Chicago area)
If you are in or around the Chicago area, I will be demo-ing some techniques for coding Python in TextMate, an editor for Mac OS X. It's part of the Snakes On Apples themed Chipy (Chicago Python Users) meeting. It's at 7pm, Thursday August 9th; click the link for more info and directions.
I'll try to cover the basics but then also some of the more advanced stuff like creating custom Bundles to automate tasks (Commands / Snippets/ Macros). And if all goes well, I'll be able to show off my somewhat-working, revisted version of running an interactive doctest session directly in the docstring of a python file. I started working on this a while back but had set it aside.
- 2 comments
- read comments
- post comment
- permalink
