<?xml version="1.0"?>
<!-- RSS generated by Radio UserLand v8.0.8 on Sat, 13 Dec 2003 18:10:49 GMT -->
<rss version="2.0">
	<channel>
		<title>David Brown: Radio Python</title>
		<link>http://radio.weblogs.com/0100039/categories/radioPython/</link>
		<description>Information about the Python Tool</description>
		<copyright>Copyright 2003 David Brown</copyright>
		<lastBuildDate>Sat, 13 Dec 2003 18:10:49 GMT</lastBuildDate>
		<docs>http://backend.userland.com/rss</docs>
		<generator>Radio UserLand v8.0.8</generator>
		<managingEditor>ddb@namshub.org</managingEditor>
		<webMaster>ddb@namshub.org</webMaster>
		<category domain="http://www.weblogs.com/rssUpdates/changes.xml">rssUpdates</category> 
		<skipHours>
			<hour>0</hour>
			<hour>1</hour>
			<hour>2</hour>
			<hour>3</hour>
			<hour>4</hour>
			<hour>5</hour>
			<hour>6</hour>
			<hour>7</hour>
			</skipHours>
		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>
		<ttl>60</ttl>
		<item>
			<title>pyobjc exploration</title>
			<description>I started to check out the 1.0 release of &lt;ahref=&quot;http://pyobjc.sf.net&quot;&gt;PyObjC&lt;/a&gt; last night.I&apos;m impressed.  You have several options for creating applications --Completely standalone, Mostly standalone (but requires a pre-existingpython installation), or an application that requires a pre-existingPyObjC installation as well as a pre-existing python installation (whichcomes with OS X by default).I&apos;ve played with it before, and while I was amazed at what the PyObjCteam has accomplished (my hat is off to you, guys), I was a littlesurprised at how long it took an application to start up.  In the 1.0version, startup time has drastically improved, and you can create anentire standalone application without ever starting Project Builder(although you&apos;ll need to use Interface Builder to create your NIBfiles).The examples provided with the installation are quite impressive, andthe Python Object Browser example (using multi-column tree views) wasbreathtaking, in that it demonstrates something that I&apos;ve wanted verybadly.  I love it when I see something that causes me to coalesce anumber of ideas into a project plan, and I think exactly that ishappening.  I expect to soon begin coding quite a bit, and I hope tohave something to demonstrate eventually.  There is a project that hasbeen taking shape in my head for years, and I think I finally have allthe pieces I need to make it come together.By the David Brown &quot;How much excitement does it generate&quot; 1-10 scale ofcoolness, PyObjC gets a 9.  (If it was cross-platform, it would be a10.)Download it, check it out, build something cool.  I&apos;ll be right therewith you.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2003/10/16.html#a416</guid>
			<pubDate>Thu, 16 Oct 2003 18:09:26 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=416&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2003%2F10%2F16.html%23a416</comments>
			</item>
		<item>
			<title>pyobjc hits 1.0</title>
			<description>Cool.  It looks like &lt;a
href=&quot;http://www.python.org/pypi?:action=display&amp;name=pyobjc&amp;version=1.0
&quot;&gt;PyObjC&lt;/a&gt; has hit 1.0.  Now I&apos;ll have to actually try using it for
something.

For those that don&apos;t know, PyObjC provides a way to write Cocoa programs
in Python.  So Python can have a real Mac OS X GUI without using
something like &lt;a href=&quot;http://www.wxpython.org&quot;&gt;wxPython&lt;/a&gt; (although
wxPython is quite cool in and of itself).</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2003/10/10.html#a410</guid>
			<pubDate>Fri, 10 Oct 2003 23:58:42 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=410&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2003%2F10%2F10.html%23a410</comments>
			</item>
		<item>
			<title>ipython: quick recommendation</title>
			<description>Quick recommendation -- if you like using the Python interactive prompt
for quick explorations and calculations, check out &lt;a
href=&quot;http://ipython.scipy.org/&quot;&gt;IPython&lt;/a&gt;.  It&apos;s almost enough to
replace your bash or tcsh shell.

I used to use a spiritual predecessor of IPython -- &lt;a
href=&quot;http://www.idyll.org/~n8gray/code/index.html&quot;&gt;Lazy Python&lt;/a&gt;, and
IPython does everything that Lazy Python did and more.

I just wish the color options worked with Win32.  Maybe if someone tied
it together with &lt;a
href=&quot;http://sourceforge.net/projects/pycrust/&quot;&gt;PyCrust&lt;/a&gt;...</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2003/10/09.html#a407</guid>
			<pubDate>Thu, 09 Oct 2003 18:44:37 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=407&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2003%2F10%2F09.html%23a407</comments>
			</item>
		<item>
			<title>ruby</title>
			<description>Since my &lt;a
href=&quot;http://radio.weblogs.com/0100039/2003/10/07.html#a404&quot;&gt;Python
post&lt;/a&gt; the other day, I&apos;ve seen some mention of Ruby as well as a &lt;a
href=&quot;http://davew.typepad.com/42/2003/10/python_a_good_c.html&quot;&gt;post&lt;/a&gt;
about how someone couldn&apos;t get Python to do what he wanted, but Java
solved the problem nicely.

I&apos;ve looked at Ruby, and while the bits that look like Smalltalk are
appealing, it&apos;s the bits that look like Perl that get to me.  I&apos;ve tried
to like Perl, but I just can&apos;t seem to do it.  The bits that look like
line noise just turn me off, and when I start seeing the same things in
other languages, I have to start resisting the tendency to judge those
languages the same way.

Mats talks about Ruby following the &quot;principle of least surprise.&quot;  The
problem is, I keep being surprised.  It&apos;s as if the Principle is really
about least surprise for those people who are used to programming in
Perl.

Don&apos;t get me wrong -- I&apos;m not here to shove Python down your throats.  I
admit to an obvious bias, and I don&apos;t try to hide it.  Perl holds the
internet together, and I&apos;ve seen some amazing things done in Ruby (like
the new &lt;a href=&quot;http://blog.blogware.com/blog&quot;&gt;Weblog system from
Tucows&lt;/a&gt;).  They just don&apos;t seem to work well in my head.

Oh, and Java?  Java has paid my bills for a few years now.  I&apos;m familiar
with it&apos;s shortcomings and it&apos;s power.  I&apos;ve solved a lot of problems
with it.

Now if I could make Python sign my paycheck, I&apos;d be happy.  I&apos;d be
delirious if I could work in Python and be able to buy food and make my
house payment.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2003/10/09.html#a406</guid>
			<pubDate>Thu, 09 Oct 2003 17:41:36 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=406&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2003%2F10%2F09.html%23a406</comments>
			</item>
		<item>
			<title>python is a time bomb (in a good way)</title>
			<description>Python is a time bomb.  Or perhaps, it&apos;s a time-release mind bomb.  I
love watching people get it.  Lately I&apos;ve been trading email with a &lt;a
href=&quot;http://weblog.berserk.org&quot;&gt;friend&lt;/a&gt; who has been bitten by the
Python bug.

He&apos;s known about Python for a while, and he&apos;s a smart guy.  I just knew
that if I waited long enough, that he&apos;d start to see the things that I
see.  That having a programming environment that helps you get things
done, rather than having you struggle with the mundane is a good thing.

A while back, I made the observation that it seemed that to be taken
seriously as a language, it has to do as little as possible for you.  I
think that was an attitude that hearkens back to the days of computers
that measured their clock speed in the low 10&apos;s of megahertz.  Back when
every cycle counted, you didn&apos;t want the computer doing anything that
you didn&apos;t know about when you wrote a program, so languages like C were
highly prized, because you got the advantages of a high level language
(better control structures, et cetera) along with the control inherent
in a low level language.

Nowadays, it becomes harder to see a language like C as being high
level.  Mid level at best, I would say, these days.  Now, if a language
can do things for me, I&apos;m all for it.  Manage my memory for me.  Do all
those various string manipulations for me.  Help me with error
processing.  I don&apos;t need to write another hashing routine or another
link list.  I&apos;ve proved I know how to do that already, and I&apos;m more
interested in debugging the bigger problem rather than finding out that
I screwed up some tiny special case in my list management.

Python is a time bomb.  I&apos;ve yet to see someone run with it the first
time they are exposed to it.  We all know the drill.  &quot;Indenting for
block structure?&quot;  &quot;Why should I use Python when I can do all that in
Perl?&quot;  and the ever popular &quot;Scripting languages are not for serious
programs.&quot;

But then, because you&apos;re curious, you start using it.  The first thing
you notice is that (if you had good formatting habits to begin with) the
indenting issue goes away.  You were going to do it that way anyway,
right?  Then you notice that you got the job done in less time than you
realized it would take.  Personally, that&apos;s my favorite bit.  The &quot;It&apos;s
done already?  And it works?&quot; feeling.  I love it.

You find yourself prototyping ideas in Python.  We&apos;ve all experienced
the &quot;executable pseudocode&quot; bit as well.  That rough sketch of code you
wrote on a napkin?  Chances are it&apos;s going to work as it is, or with
only minor modifications.  You didn&apos;t really mean to write it in Python,
you say, it just happened.

The Perl issue is handled when you go back to those Python programs
after a few months.  Even the first ones you wrote, before you had a
feel for the way the language wants to be used, even those first steps,
are readable.  You can still tell what you meant to do with them.  Maybe
it&apos;s just me and my friends, but going back to old Perl code, unless it
was incredibly well documented, makes you wish for a cuniform
dictionary.  (It&apos;s 10pm, do you know what context you are in?)

The final domino to fall, the &quot;serious application&quot; domino, is easy
enough.  We&apos;ve already heard the litany.  Google.  Zope.  Twisted.  The
list grows longer each day.

Welcome to Python, Cameron.  The water&apos;s fine.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2003/10/07.html#a404</guid>
			<pubDate>Tue, 07 Oct 2003 17:35:49 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=404&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2003%2F10%2F07.html%23a404</comments>
			</item>
		<item>
			<title>dynamic languages play with your mind.</title>
			<description>I went through an interesting thought process while working on the code to drive the radio.

My initial thought was to do a full blown interface for the radio.  Do the classic gui representation of a radio, with knobs and lights and all that.  I may still do that, but as I asked myself what I really wanted to do, the effort shifted gears, and what I ended up with is a set of classes and functions that just make it really easy to make the radio do what you want it to do.

So instead of writing this general purpose application, you can create a special purpose radio for whatever service you are monitoring.  And since it&apos;s all being done in Python, it&apos;s easy to do some nifty things like writing code that searches for certain radio channel activity and use the results to write a program that specifically scans for those channels.

Yeah, that sounds confusing, but metaprogramming is always much harder to describe than it is to do.  Writing programs that write programs is kind of fun.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2003/09/19.html#a377</guid>
			<pubDate>Sat, 20 Sep 2003 03:47:28 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=377&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2003%2F09%2F19.html%23a377</comments>
			</item>
		<item>
			<description>&lt;a name=&quot;l9187a7a9c639f12a6eb37f9d56568861&quot;&gt;&lt;a href=&quot;http://archipelago.phrasewise.com/&quot;&gt;Daniel Berlinger asks&lt;/a&gt; why I think the syntactically relevant indentation of Python was a breakthrough. There are a couple of reasons...&lt;a href=&quot;http://scriptingnews.userland.com/backissues/2002/04/16#l9187a7a9c639f12a6eb37f9d56568861&quot;&gt;&lt;img src=&quot;http://www.scripting.com/images/2001/09/20/sharpPermaLink3.gif&quot; height=&quot;9&quot; width=&quot;6&quot; border=&quot;0&quot;&gt;&lt;/a&gt; [&lt;a href=&quot;http://scriptingnews.userland.com/&quot;&gt;Scripting News&lt;/a&gt;]

Yeah.  What he said.  (&lt;a href=&quot;http://scriptingnews.userland.com/backissues/2002/04/16#l9187a7a9c639f12a6eb37f9d56568861&quot;&gt;go read it.&lt;/a&gt;)</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/04/16.html#a180</guid>
			<pubDate>Tue, 16 Apr 2002 21:26:16 GMT</pubDate>
			<source url="http://scriptingnews.userland.com/xml/scriptingNews2.xml">Scripting News</source>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=180&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F04%2F16.html%23a180</comments>
			</item>
		<item>
			<description>&lt;i&gt;&lt;a name=&quot;l79bc4ca9919192e8434afe7ce6ed223b&quot;&gt;&lt;a href=&quot;http://doc.weblogs.com/2002/04/12#ie5wExclusivityIsEvil&quot;&gt;Doc trashed&lt;/a&gt; Oddpost for being MSI5/Win only and &lt;a href=&quot;http://doc.weblogs.com/discuss/msgReader$1709&quot;&gt;Doug Hacker pushes back&lt;/a&gt; and speaks for me. Pushing the envelope is great no matter what. Doc&apos;s feelings are irrelevant. In the past users, esp Mac users, have pushed this button to quickly. If a breakthrough happens and users flock to Oddpost, that&apos;s good. I see Mac users these days getting lots of stuff that Windows users don&apos;t have (I use Windows) and that&apos;s cool too.&amp;nbsp;&lt;a href=&quot;http://scriptingnews.userland.com/backissues/2002/04/12#l79bc4ca9919192e8434afe7ce6ed223b&quot;&gt;&lt;img src=&quot;http://www.scripting.com/images/2001/09/20/sharpPermaLink3.gif&quot; height=&quot;9&quot; width=&quot;6&quot; border=&quot;0&quot;&gt;&lt;/a&gt; [&lt;a href=&quot;http://scriptingnews.userland.com/&quot;&gt;Scripting News&lt;/a&gt;]&lt;/i&gt;

I think I know where Doc is coming from.  But I tend to agree with Dave.  A few years back, I remember Dave posting about another web site that was trying to design pages with broadband in mind, so they were very graphic heavy, and had a lot of JavaScript for interaction.  I remember thinking that it was very pretty and fun to play with, but I also felt like it was threatening my bandwidth.

You know when you get a new fast computer, and then companies start adding feature after feature to the software, so that the computer ends up feeling as slow as the one you replaced?  That web page made me fear that the same thing was going to happen to my bandwidth.  Web pages were going to bloat more and more, until my cable modem started feeling like a 28.8k connection again.

But it never happened, because the increase in broadband speed and adoption has not followed Moore&apos;s law.

I have since changed my mind.  We DO have to keep pushing the edges.  We have to keep having faith in Moore&apos;s law.  We have to believe that we will continue moving forward, because the alternative is stagnation.  I see that now.

In fact, some of the design decisions that I&apos;ve been making for my current Python project have been based on what I think will get faster, rather than what is fast today.  The code I&apos;ve been writing to play with the Radio ODB from Python uses the following transformations:

ODB -&gt; table.tableToXml() -&gt; XML-RPC -&gt; &lt;a href=&quot;http://www.jerf.org/resources/fTableXML.html&quot;&gt;fTableXML&lt;/a&gt; -&gt; python

and then back as:

python -&gt; XML-RPC -&gt; table.xmlToTable() -&gt; ODB

The problem is that it is slow.  It&apos;s been suggested that I toss XML-RPC and try to go direct, but I don&apos;t see that as gaining much.  The XML-RPC overhead is not as big as you would expect.  By far the most processing time is being spent in table.xmlToTable and table.tableToXml.  I have a very good reason to keep using XML-RPC and the table verbs, and that is that UserLand is VERY committed to the utility of XML in general, and XML-RPC in particular, so I see those verbs as primed for kernelization, thus getting rid of most of my speed problem.

So, yeah, it&apos;s a faith thing, but I can see it happening.

Of course, another way to go about it is to add Python hooks to Radio, or expose the ODB entry points so I could write some C to couple Python to Radio.  It should be somewhat simple to make Radio call Python.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/04/12.html#a179</guid>
			<pubDate>Fri, 12 Apr 2002 21:37:31 GMT</pubDate>
			<source url="http://scriptingnews.userland.com/xml/scriptingNews2.xml">Scripting News</source>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=179&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F04%2F12.html%23a179</comments>
			</item>
		<item>
			<description>To sum up:

I went to my first 2002 Mariner&apos;s Game tonight.  Exciting, and yet ultimately quite disappointing.  Oh well.  I still have 15 more games to see.

While exploring the &lt;a href=&quot;http://www.jerf.org/irights/&quot;&gt;iRights site&lt;/a&gt; looking through the Radio/Jabber interop work that is happening (I enjoy interop a lot), I happened upon &lt;a href=&quot;http://www.jerf.org/resources/fTableXML.html&quot;&gt;this&lt;/a&gt;.

I find that project very interesting, because it fills a hole for me.  It makes it much easier to do Python/Radio interop.

I will have code to play with very soon.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/04/07.html#a172</guid>
			<pubDate>Mon, 08 Apr 2002 07:08:10 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=172&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F04%2F07.html%23a172</comments>
			</item>
		<item>
			<description>Okay, I came up with a fix for the execution problem.  Now, instead of using execscript(), I&apos;m quietly writing out a patched version of the script that bundles up the ouput and sends it back to Radio.

Refresh the code to get the fixes.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/03/02.html#a94</guid>
			<pubDate>Sat, 02 Mar 2002 18:22:15 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=94&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F03%2F02.html%23a94</comments>
			</item>
		<item>
			<description>Argh.  I just hit a showstopper in the Python Tool.  It might be a bug in the execfile() routine, but I can&apos;t be sure.

It goes like this...  With the following code:

&lt;pre&gt;
class A:
    def __init__(self):
        print &quot;A.__init__&quot;
&lt;/pre&gt;

&lt;pre&gt;
class B(A):
    def __init__(self):
        A.__init__(self)
        print &quot;B.__init__&quot;
&lt;/pre&gt;

&lt;pre&gt;
test = B()
&lt;/pre&gt;

If I run this directly through Python, it&apos;s fine.  If I run it through my execution framework (which uses execfile() to run the actual script), it causes a NameError, which claims that it has no idea what A.__init__ is.

Ideas?  Need more information?</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/03/02.html#a93</guid>
			<pubDate>Sat, 02 Mar 2002 17:54:11 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=93&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F03%2F02.html%23a93</comments>
			</item>
		<item>
			<description>One of the things I wish to build for the Python IDE is a web services framework.  This means that I would like to support both XML-RPC and SOAP.  There is already a decent XML-RPC package that comes with Python 2.2+ (and can ve installed separately for other versions).  I&apos;m looking for a good SOAP library &lt;b&gt;that works on OSX&lt;/b&gt;.

I&apos;ve downloaded and tried to use &lt;a href=&quot;http://pywebsvcs.sourceforge.net/&quot;&gt;ZSI&lt;/a&gt;, but there are some problems with ZSI and OSX (the value they try to use for Inf and NaN cause an overflow when ZSI is imported).  I&apos;m exploring other implementations, but from what I&apos;d seen, ZSI is the most complete.

Leave a comment if you have an idea.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/27.html#a79</guid>
			<pubDate>Thu, 28 Feb 2002 06:37:16 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=79&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F27.html%23a79</comments>
			</item>
		<item>
			<description>I&apos;ve finally gotten email that tells me that someone other than me got the Python IDE to work.  Thanks, Joe.

If anyone else is using the tool, could you drop me a line and let me know how it&apos;s going?  Just a quick note that says that it works would suffice.

Problem reports and feature suggestions are always welcome as well.

As someone who likes to produce tools, the best part is when someone else finds the tool useful.  The worst part is wondering if anyone is actually using it.

Is there somewhere on the radio.weblogs.com machine that will give a traditional access log?  I&apos;d love to know how often the tool got downloaded.  Yes, I check my referer log too often as well.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/25.html#a72</guid>
			<pubDate>Tue, 26 Feb 2002 01:49:17 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=72&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F25.html%23a72</comments>
			</item>
		<item>
			<description>I&apos;ve updated the current version of the Python Tool to include the ability to refresh the code (like the myPictures tool that Dave did), so you don&apos;t have to keep checking the site, you can just use the &apos;Refresh Code...&apos; menu item to automatically incorporate any changes I have made.

I also fixed a bug dealing with setting up the executionTemplate, so if you&apos;ve ssen that error, get the new code.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/24.html#a69</guid>
			<pubDate>Mon, 25 Feb 2002 01:27:26 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=69&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F24.html%23a69</comments>
			</item>
		<item>
			<description>Upon reflection, it&apos;s stupid to make Python projects live in separate databases, at least in terms of playing nice with Radio.  I&apos;m thinking that what I really want to do is give the ability to import and export Python Tool-compatible files.  I also need to work on importing Python source files from text.

There are some things I need to understand about how Radio figures out the outline indentation when importing a text file.  Normally it just &quot;get&apos;s it right&quot; when converting Python source to a Radio outline, but there are some strange times when it doesn&apos;t.  I have my suspicions as to what is going on, but I haven&apos;t been able to prove anything yet.  Once I have that straightened out, I&apos;ll put out a tool that plays nicer with established Python installations.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/24.html#a68</guid>
			<pubDate>Sun, 24 Feb 2002 20:22:01 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=68&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F24.html%23a68</comments>
			</item>
		<item>
			<description>Okay, so the bundling bit works fine, but I&apos;m pulling my hair out about execution.

I think I&apos;m going back to the framework, and just advise people to restart it if they think the environment has been corrupted.

On the other hand, I&apos;m having a hell of a time trying to use sys.unixShellCommand to launch anything that calls back to Radio using XML-RPC.

It worked fine with the weirdo Python I used to have installed.  I got it from &lt;a href=&quot;http://redivi.com/~bob/&quot;&gt;here&lt;/a&gt;.  It&apos;s a 35M download, and was built to be used with PyGame, a game framework for Python.

I may just recommend that particular Python for use on OS X.

Why is this weirdo build of Python the only version of Python on OS X that seems to sensibly support application launching?</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/17.html#a58</guid>
			<pubDate>Mon, 18 Feb 2002 07:36:30 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=58&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F17.html%23a58</comments>
			</item>
		<item>
			<description>I&apos;ve been reminded that a bundle also introduces a level of scoping, and that it can improve performance.

It&apos;s a little harder doing the same thing in Python.  I could get the scoping improvement by translating bundles into &quot;if 1:&quot;, but I am unsure about whether that would actually make things &lt;i&gt;worse&lt;/i&gt;.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/17.html#a57</guid>
			<pubDate>Mon, 18 Feb 2002 03:28:09 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=57&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F17.html%23a57</comments>
			</item>
		<item>
			<description>I&apos;ve been reminded that a bundle also introduces a level of scoping, and that it can improve performance.

It&apos;s a little harder doing the same thing in Python.  I could get the scoping improvement by translating bundles into &quot;if 1:&quot;, but I am unsure about whether that would actually make things &lt;i&gt;worse&lt;/i&gt;.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/17.html#a55</guid>
			<pubDate>Mon, 18 Feb 2002 00:16:51 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=55&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F17.html%23a55</comments>
			</item>
		<item>
			<description>I hate it when I find these things.

It turns out I didn&apos;t have a standard install of Python on my machine.  I thought I had MacPython installed, but when I tested it against the standard MacPython installation I discovered that it doesn&apos;t work with the launch.appWithDocument verb I was using in Radio.

So I&apos;m going to make it work with the Fink version of python, and assume that it&apos;s installed in the standard Fink location of /sw/bin/python.  I&apos;ll also include documentation that describes how to fix that path if it&apos;s wrong.

So here we go again.  Sorry about that.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/17.html#a53</guid>
			<pubDate>Sun, 17 Feb 2002 23:05:15 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=53&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F17.html%23a53</comments>
			</item>
		<item>
			<description>I&apos;ve changed the way that Python Scripts are run.  The XML-RPC framework is fast, because you don&apos;t have to launch the Python interpreter each time, but there was always the danger that a Python Script could modify the execution environment in a way that would affect subsequent executions.  So now I write out a small script that redirects stdout, executes the script, and passes back the results to Radio via XML-RPC.

Slower, but safer.  This also means that it works more reliably on OS X.

I&apos;ve updated the docs &lt;a href=&quot;http://radio.weblogs.com/0100039/stories/2002/02/13/radioAsAPythonIde.html&quot;&gt;here&lt;/a&gt; to reflect the new version.  Oh yeah, download a &lt;a href=&quot;http://radio.weblogs.com/0100039/gems/python.root&quot;&gt;new copy&lt;/a&gt; if you want the changes.

Next up -- multiple Python Projects.

Want to get working -- integrated debugging, better error message processing, more Radio connectivity</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/14.html#a47</guid>
			<pubDate>Fri, 15 Feb 2002 06:40:28 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=47&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F14.html%23a47</comments>
			</item>
		<item>
			<description>A news feed specifically about the Python Tool can be found &lt;a href=&quot;http://radio.weblogs.com/0100039/categories/radioPython/rss.xml&quot;&gt;here&lt;/a&gt;.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/14.html#a42</guid>
			<pubDate>Thu, 14 Feb 2002 16:12:40 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=42&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F14.html%23a42</comments>
			</item>
		<item>
			<description>Some notes...  This is NOT a Mac OS X ONLY tool.  I used OS X for development at home, and stole slow time at work to make sure it ran well on WinXP.  I have a WinXP screen shot, I just haven&apos;t uploaded it.  I guess the lack of an OS X Python IDE is why it is getting noticed in the Mac world first...

Also, for the Mac version, I tested it with the MacPython 2.2 build.  If you are using the command-line Python, the method I&apos;m using to locate Python will fail (you won&apos;t be able to use the File Dialog to navigate to /usr/local/bin or whereever it is).  You could try jumping to pythonData.prefs.pythonApp and putting the path in there directly, but Radio wants a Macintosh path, with &apos;:&apos;s, rather than the Unix path that OS X will support but not require.

I&apos;m already having to do a little path hackery when passing file paths to already running Python programs (they want the Unix version), so perhaps there is hope there.

Remember, this is a first release.  There are bugs.  The bug-free experience probably does not exist right now.  To steal a line from UserLand, this is Shitty Software, with Bugs.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/14.html#a41</guid>
			<pubDate>Thu, 14 Feb 2002 16:09:07 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=41&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F14.html%23a41</comments>
			</item>
		<item>
			<description>People are noticing the Python tool:

&lt;a href=&quot;http://www.schockwellenreiter.de/2002/02/14.html#a3816&quot;&gt;http://www.schockwellenreiter.de/2002/02/14.html#a3816&lt;/a&gt;

&lt;a href=&quot;http://www.deadlybloodyserious.com/Radio/2002/02/14.html#a488&quot;&gt;http://www.deadlybloodyserious.com/Radio/2002/02/14.html#a488&lt;/a&gt;

&lt;a href=&quot;http://radio.weblogs.com/0100438/2002/02/13.html#a433&quot;&gt;http://radio.weblogs.com/0100438/2002/02/13.html#a433&lt;/a&gt;

&lt;a href=&quot;http://radio.weblogs.com/0001258/categories/tigmarksMac/2002/02/14.html#a96&quot;&gt;http://radio.weblogs.com/0001258/categories/tigmarksMac/2002/02/14.html#a96&lt;/a&gt;

Yes, I&apos;ve fallen victim to obsessing over my referererererer log.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/14.html#a40</guid>
			<pubDate>Thu, 14 Feb 2002 16:03:08 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=40&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F14.html%23a40</comments>
			</item>
		<item>
			<description>Of course, as soon as I let the cat out of the bag about the Python Tool, I start having thoughts about how to radically change things.

Like getting rid of the framework.  I can use the whole &apos;Radio renders Python&apos; idea to new levels.

I can use frontier.openDataFile to implement Python Projects.

I can provide Transcripts and Workspaces.  I could do a browser.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/14.html#a39</guid>
			<pubDate>Thu, 14 Feb 2002 09:39:20 GMT</pubDate>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=39&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F14.html%23a39</comments>
			</item>
		<item>
			<description>David Brown: &lt;a href=&quot;http://radio.weblogs.com/0100039/stories/2002/02/13/radioAsAPythonIde.html&quot;&gt;Radio as a Python IDE&lt;/a&gt;. &amp;ldquo;The Python Tool allows Radio UserLand to be used as a Python IDE. Radio&amp;rsquo;s integrated outliner turns out to be a wonderful tool for Python editing, and the Tool provides an efficient way to write, debug, and deploy Python code.&amp;rdquo; [&lt;a href=&quot;http://radio.weblogs.com/0001020/&quot;&gt;mac.scripting.com&lt;/a&gt;]

Heh.  Recursive blogrolling.</description>
			<guid isPermaLink="false">http://radio.weblogs.com/0100039/categories/radioPython/2002/02/13.html#a38</guid>
			<pubDate>Thu, 14 Feb 2002 06:20:25 GMT</pubDate>
			<source url="http://mac.scripting.com/rss.xml">mac.scripting.com</source>
			<comments>http://radiocomments.userland.com/comments?u=100039&amp;amp;p=38&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0100039%2F2002%2F02%2F13.html%23a38</comments>
			</item>
		</channel>
	</rss>
