<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/1.5.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
>

<channel>
	<title>fdiv.net</title>
	<link>http://fdiv.net</link>
	<description>the floating point divide</description>
	<pubDate>Wed, 30 Jul 2008 17:51:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.2</generator>
	<language>en</language>

		<item>
		<title>Python&#8217;s Flying Circus</title>
		<link>http://fdiv.net/2008/02/22/pythons-flying-circus/</link>
		<comments>http://fdiv.net/2008/02/22/pythons-flying-circus/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 19:35:35 +0000</pubDate>
		<dc:creator>cwright</dc:creator>
		
	<category>kineme</category>
	<category>Antisocial Story</category>
	<category>Language</category>
	<category>Software Development</category>
		<guid>http://fdiv.net/2008/02/22/pythons-flying-circus/</guid>
		<description><![CDATA[	
	Lately I&#8217;ve been working on integrating (or, more accurately, attempting to integrate) the Python scripting language into some plugins for an application we develop plugins for.  We&#8217;ve wrapped many libraries with varying levels of success, so this one wasn&#8217;t going to be much different.  Or, so we thought.
	Technically, we&#8217;re interested in &#8220;Embedding&#8221; Python [...]]]></description>
			<content:encoded><![CDATA[	<p><img src="http://img.b33p.net/pub/cwIngHlMs0BtBweZ0BcHJrnBo3K6wYeW/thumbnail-256" align="right" alt="Python Logo" /></p>
	<p>Lately I&#8217;ve been working on integrating (or, more accurately, attempting to integrate) the Python scripting language into some plugins for an application we develop plugins for.  We&#8217;ve wrapped many libraries with varying levels of success, so this one wasn&#8217;t going to be much different.  Or, so we thought.<a id="more-118"></a></p>
	<p>Technically, we&#8217;re interested in &#8220;Embedding&#8221; Python &#8212; We have a native Objective-C application that needs to make use of the Python interpreter at various stages of execution.  The Python scripts are user-supplied, and are exceptionally free-form:  the functions they write can take variable numbers of inputs, produce variable numbers of outputs, and can use any Python modules they have installed.</p>
	<p>Unfortunately, this makes the embedding process somewhat complicated:  From Objective-C, we need to be able to parse the script, find all its functions, and get all those functions&#8217; input and output parameters.  From this data, we can expose the Python module&#8217;s interface usefully.  Unfortunately, Python does not appear to allow this kind of introspection from the outside (and it&#8217;s questionable whether or not it&#8217;s even possible from the inside.)</p>
	<p>In searching for information on this, <a href="http://davidf.sjsoft.com/mirrors/mcmillan-inc/embed.html">Numerous</a> <a href="http://www.developer.com/lang/other/article.php/2217941">Documents</a> are <a href="http://twistedmatrix.com/users/glyph/rant/extendit.html">Found</a> that <a href="http://www.linuxjournal.com/article/8497">Needlessly</a> <a href="http://www.python.org/doc/current/ext/embedding.html">Complicate</a> or Obfuscate the difference between Embedding and Extending.  As if it&#8217;s really that difficult (<strong>embed</strong> means &#8220;fix firmly and deeply in a surrounding mass&#8221; while <strong>extend</strong> means &#8220;cause to cover a larger area; make longer or wider&#8221;.  From these obvious definitions, we can infer that &#8220;Embedding&#8221; means putting something inside, while &#8220;Extending&#8221; means adding functionality or abilities.  Maybe it&#8217;s not so clear for non-native english speakers.  I don&#8217;t know.)</p>
	<p>Another annoying side-trip of this research was an overwhelmingly smug idea that almost reeks of Java.  This side effect is the recorded smarmy discussion of why one should &#8220;Extend&#8221; rather than &#8220;Embed&#8221; (these reasons are then used to explain away why there isn&#8217;t any good documentation on actually embedding Python).  The arguments go something like this:</p>
	<ul>
	<li>Python&#8217;s so good, cross-platform, and flexible that it&#8217;s actually more cost-effective to <em>Throw Out All Your C/C++/ObjC Code And Rewrite Everything In Python.</em></li>
	<li>Embedding is so cumbersome to code, and so difficult compared to embedding Python in Python, that you should <em>Throw Out All Your C/C++/ObjC Code And Rewrite Everything In Python.</em></li>
	<li>High-performance code can be written in C, and then called from within Python&#8217;s runtime when you actually need to performance boost.  Why not just <em>Throw Out All Your C/C++/ObjC Code And Rewrite Everything In Python</em> Except for the fast bits?</li>
	<li>If you embed Python, you&#8217;ll annoy Python developers who can&#8217;t access the modules they&#8217;re used to using.  Why not <em>Throw Out All Your C/C++/ObjC Code And Rewrite Everything In Python</em> so you don&#8217;t annoy your Python developers?</li>
	</ul>
	<p>These arguments cover some pretty diverse ground there.  Unfortunately, there are 2 fatals flaws in the list above.  </p>
	<p>First, embedded Python _Can_ in fact use installed modules just like raw Python, so point 4 above is flagrantly incorrect.  There are some suggestions that it&#8217;s simply annoying to develop in such an environment because namespaces are all strange (or wrong) and nothing works quite right.  Guess What:  Welcome To Plugin Development!  It&#8217;s like these Python developers have never worked on real projects before or something.</p>
	<p>Second, All of the above points assume that it&#8217;s possible to discard your entire code-base and rewrite everything.  While this is technically possible, it&#8217;s not very likely when you don&#8217;t have access to the source of the application to be discarded (in our case).  The unfortunate downside is that _All The Listed &#8220;Solutions&#8221; Hinge On This One Idea_.</p>
	<p>What&#8217;s with these non-solutions from allegedly flexible languages?  Even Objective-C, a compiled language, and the (totally undocumented) JavaVM-ObjC bridge, offer enough introspection to at least find methods and parameter counts without too much hassle.  Maybe Python does this just as simply, but if so, no one&#8217;s talking about it&#8230;
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2008/02/22/pythons-flying-circus/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>The Feast, it&#8217;s Ruined &#8212; My Quest For Eggo Waffles</title>
		<link>http://fdiv.net/2007/09/13/the-feast-its-ruined-my-quest-for-eggo-waffles/</link>
		<comments>http://fdiv.net/2007/09/13/the-feast-its-ruined-my-quest-for-eggo-waffles/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 13:09:46 +0000</pubDate>
		<dc:creator>mradcliffe</dc:creator>
		
	<category>Social Story</category>
	<category>Antisocial Story</category>
	<category>softpixel</category>
	<category>Language</category>
		<guid>http://fdiv.net/2007/09/13/the-feast-its-ruined-my-quest-for-eggo-waffles/</guid>
		<description><![CDATA[	Updated: now with response.
	
	I thought to myself this morning &#8212; I want an Eggo Waffle.  You see, I have never had one, but have always been interested.  There were some in the freezer that Robert had bought, removed from their packaging because of his space-saving ways.
	Naturally I found the need to prepare an [...]]]></description>
			<content:encoded><![CDATA[	<p><em><strong>Updated:</strong> now with response.</em></p>
	<div style="float: right;"><img src="http://softpixel.com/~mradcliffe/Eggo-waffles.jpg" alt="Eggo Waffles" /></div>
	<p>I thought to myself this morning &#8212; I want an Eggo Waffle.  You see, I have never had one, but have always been interested.  There were some in the freezer that Robert had bought, removed from their packaging because of his space-saving ways.</p>
	<p>Naturally I found the need to prepare an Eggo Waffle to the correct specifications as I wanted to make sure that I was having the correct Eggo experience (microwave, toast, pan fry, what?).  To my surprise <a href="http://www.snickers.com/feast/">the feast was ruined</a> (<i>credit for the title</i>), and breakfast was not <i>magically delicious</i>.</p>
	<p><a id="more-111"></a></p>
	<blockquote><p>
Dear Kellogg&#8217;s,</p>
	<p>I thought to myself this morning &#8212; I want an Eggo Waffle.  You see, I have never had one, but have always been interested.  There were some in the freezer that Robert had bought, removed from their packaging because of his space-saving ways.</p>
	<p>However I could NOT find any directions on how to actually make an Eggo Waffle.  So I thought to myself &#8212; Hey, <a href="http://www.leggomyeggo.com">Eggo&#8217;s web site</a> might have this pertinent and useful information!  To my surprise I found that the Eggo web site was designed like shit.</p>
	<p>No, I cannot enjoy an Eggo waffle for the first time because I simply do not know the proper instructions.  This information is surprisingly absent from a web site.  Instead I have useless information thrust into my vision in a flash animated piece of shit.  </p>
	<p>My breakfast appetite is ruined.  I am no longer interested in having an Eggo Waffle because your shitty web site design team put me off.</p>
	<p>This might be humorous to you or your team, but this is no laughing matter to me.  I think I will have some General Mills Cheerios instead.</p>
	<p>Love <a href="http://softpixel.com/~mradcliffe/">mradcliffe</a>
</p></blockquote>
	<p>You might be amused to find my difficulty with preparing an Eggo Waffle.  In my search for deliciousness I did come across one link <a href="http://www.wikihow.com/Enjoy-a-Dish-of-Eggo-Waffles">to enjoy Eggo Waffles</a>, which I admit did look interesting.  However I wanted to pursue slightly more official instructions.   And I did receive an update from Kellogg&#8217;s though it came into my inbox a bit too late in the day for <i>breakfast</i>.</p>
	<p><strong>Update</strong>:  Kellogg&#8217;s responded!  I bet I made someone&#8217;s day.</p>
	<blockquote><p>
Thank you for contacting us regarding Eggo&reg; website.</p>
	<p>The feedback you provided on our website is valuable to us.  We will pass along your comments to our advertising and marketing departments.  As you know, things change quickly on the web, so we hope you will visit us again to see what&#8217;s new!</p>
	<p>We hope you give our product another opportunity.  For future information you can contact us toll free at 1-800-962-1413 so one of our service representatives could answer your questions.
</p></blockquote>
	<p>I am quite surprised that Eggo has a toll free number.  So whomever comes across this post &#8212; if you need to learn &#8220;How-To Make an Eggo Waffle&#8221; because you&#8217;ve never had one before you can call <b>1-800-962-1413</b>.</p>
	<p>Operators are standing by to assist you with your breakfast endeavor.</p>
	<p>The final lesson to be learned is that I am grumpy in the mornings.  <b>Never get between a Radcliffe and his breakfast</b>.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2007/09/13/the-feast-its-ruined-my-quest-for-eggo-waffles/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>&#8220;Warum gabst du uns die tiefen Blicke&#8221; Translated</title>
		<link>http://fdiv.net/2006/10/31/warum-gabst-du-uns-die-tiefen-blicke-translated/</link>
		<comments>http://fdiv.net/2006/10/31/warum-gabst-du-uns-die-tiefen-blicke-translated/#comments</comments>
		<pubDate>Tue, 31 Oct 2006 19:36:39 +0000</pubDate>
		<dc:creator>bbinkovitz</dc:creator>
		
	<category>Social Story</category>
	<category>Language</category>
		<guid>http://fdiv.net/2006/10/31/warum-gabst-du-uns-die-tiefen-blicke-translated/</guid>
		<description><![CDATA[	I searched for this in English and couldn&#8217;t find it with a Google once-over.  So I decided to translate Warum gabst du uns die tiefen Blicke myself (with the help of leo.org).  This translation is a bit creative, especially with the punctuation.  But I think Goethe would understand.
	Why give us insight?
by Johann [...]]]></description>
			<content:encoded><![CDATA[	<p>I searched for this in English and couldn&#8217;t find it with a Google once-over.  So I decided to translate <em>Warum gabst du uns die tiefen Blicke</em> myself (with the help of <a href="http://leo.org">leo.org</a>).  This translation is a bit creative, especially with the punctuation.  But I think Goethe would understand.</p>
	<p><strong><em>Why give us insight?</em></strong><br />
<em>by Johann Wolfgang von Goethe, translated from the German by me.</em></p>
	<p>Why give us the ability<br />
to see consciously our destiny:<br />
our love, our earthly happiness,<br />
and to blissfully fancy<br />
that we can ignore our foreboding?<br />
<a id="more-64"></a></p>
	<p>Why give us, O Fate, the vision<br />
to look each other in the heart,<br />
to seek out, in the crush of crowds,<br />
our true connection?</p>
	<p>Oh, so many thousands of people<br />
in their bland oblivion<br />
barely even know their own hearts.<br />
They wander aimlessly, run<br />
hopelessly in sourceless hurt,<br />
cheering again when quick joy<br />
comes with the unexpected blush of dawn.</p>
	<p>Only to us, both unfortunate, full of love,<br />
is that fickle happiness denied:<br />
to love each other without understanding,<br />
each seeing in the other what never really was,<br />
going about in an illusion of happiness<br />
and shrinking only from imaginary dangers.</p>
	<p>Happy, who is busied with empty dreams!<br />
Happy, whose premonition is false!<br />
Each presence and each glance for us<br />
only fortifies both dream of happiness<br />
and knowledge of our fate.</p>
	<p>Tell me, what does fate think it is doing?<br />
Tell me, how are we so uncannily connected in life?<br />
Oh, you were in some past existence, long ago<br />
already my sister or my wife.</p>
	<p>You understood every tremor of my being,<br />
sensed how the purest nerve rang,<br />
could read me with a glance<br />
that was as heavy as dying,</p>
	<p>measured drop for drop my hot blood,<br />
righted my wild, haphazard steps,<br />
and in your angelic arms<br />
my ruined heart calmed itself again.</p>
	<p>You healed my heart with magical ease,<br />
wound me back together,<br />
and ordered my days.<br />
What bliss filled every blessed hour<br />
that I laid that heart at your feet<br />
and felt it swell next to yours,<br />
felt good in your eyes,<br />
brightened all my senses,<br />
and quieted my rushing blood!</p>
	<p>And above all floats a memory<br />
still only in the unconscious heart<br />
that feels the ancient truth forever just barely contained,<br />
and the new circumstance turns it into pain.<br />
And we feel that we are each only half-souled;<br />
twilight is for us the brightest day.<br />
Happy, that the fate that torments us<br />
at least could not take that away.</p>
]]></content:encoded>
			<wfw:commentRSS>http://fdiv.net/2006/10/31/warum-gabst-du-uns-die-tiefen-blicke-translated/feed/</wfw:commentRSS>
	</item>
	</channel>
</rss>
