<?xml version="1.0" encoding="UTF-8"?> <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/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>toxicsoftware.com &#187; Open Source</title> <atom:link href="http://toxicsoftware.com/tag/open-source/feed/" rel="self" type="application/rss+xml" /><link>http://toxicsoftware.com</link> <description>RANDOMIZE USR 0</description> <lastBuildDate>Thu, 22 Dec 2011 03:35:22 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>TouchCode Donations</title><link>http://toxicsoftware.com/touchcodedonate/</link> <comments>http://toxicsoftware.com/touchcodedonate/#comments</comments> <pubDate>Fri, 24 Oct 2008 15:17:19 +0000</pubDate> <dc:creator>schwa</dc:creator> <category><![CDATA[Default]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[iphone development]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[touchcode]]></category><guid isPermaLink="false">http://toxicsoftware.com/?p=393</guid> <description><![CDATA[TouchCode is mostly a labour of love. I wrote most of the code because it was useful to me at the time I wrote it, or for a forthcoming project. I choose to release it under the an Open Source &#8230; <a href="http://toxicsoftware.com/touchcodedonate/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a href="http://code.google.com/p/touchcode/">TouchCode</a> is mostly a labour of love. I wrote most of the code because it was useful to me at the time I wrote it, or for a forthcoming project. I choose to release it under the an Open Source license because the community as a whole benefits.</p><p>I would like to continue improving and adding to TouchCode, but my time is finite and I&#8217;m unable to work on it as much as I would like. So when I do work on TouchCode, I appreciate that other people rely on the code and as such I make it a priority to fix bugs before adding new features or components. Other contributors to TouchCode have helped a lot. A lot of bugs and memory leaks have been found and fixed. This is all great. But it is obvious that TouchCode needs more work, it especially needs more unit tests and documentation. To help make time available to improve this I&#8217;ve decided to ask TouchCode users for donations via PayPal.</p><ul><li>You do NOT need to donate to use TouchCode (the code is still Open Source under very permissive licenses).</li><li>TouchCode will always remain Open Source. Donations will not change that.</li><li>Donations will be set aside and will allow me to spend more time working on TouchCode &#8211; especially the less sexy fun of TouchCode. I will not be using the funds to buy a new MacBook Pro (however tempting that may be).</li><li>Donations will be made with no strings attached. I will not be adding feature X to component Y just because you&#8217;ve donated to the project. However if you have an urgent need for something in TouchCode (output support in NSXMLDocument perhaps?) <a href="http://toxicsoftware.com/contact/">contact me</a> and we can talk.</li><li>No donation too small, no donation too big. Every donation appreciated.</li></ul><p>And here&#8217;s the PayPal donate button:</p><form action="https://www.paypal.com/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_s-xclick"> <input type="hidden" name="hosted_button_id" value="644832"> <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt=""> <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"></form> ]]></content:encoded> <wfw:commentRss>http://toxicsoftware.com/touchcodedonate/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>TouchMap Teaser</title><link>http://toxicsoftware.com/touchmap-teaser/</link> <comments>http://toxicsoftware.com/touchmap-teaser/#comments</comments> <pubDate>Wed, 01 Oct 2008 20:58:20 +0000</pubDate> <dc:creator>schwa</dc:creator> <category><![CDATA[Default]]></category> <category><![CDATA[Cocoa]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[touchcode]]></category> <category><![CDATA[TouchMap]]></category><guid isPermaLink="false">http://toxicsoftware.com/?p=374</guid> <description><![CDATA[A quick teaser for TouchMap. I&#8217;m hoping to release this on TouchCode later today. TouchMap.mov]]></description> <content:encoded><![CDATA[<p>A quick teaser for TouchMap. I&#8217;m hoping to release this on <a href="http://code.google.com/p/touchcode/">TouchCode</a> later today.</p><p><a href="http://toxicsoftware.com/uploads/TouchMap/TouchMap.mov">TouchMap.mov</a></p> ]]></content:encoded> <wfw:commentRss>http://toxicsoftware.com/touchmap-teaser/feed/</wfw:commentRss> <slash:comments>9</slash:comments> <enclosure url="http://toxicsoftware.com/uploads/TouchMap/TouchMap.mov" length="269" type="video/quicktime" /> </item> <item><title>TouchCode Wins Best Open Source Project at iPhoneDevCamp</title><link>http://toxicsoftware.com/touchcode_wins/</link> <comments>http://toxicsoftware.com/touchcode_wins/#comments</comments> <pubDate>Mon, 04 Aug 2008 16:46:17 +0000</pubDate> <dc:creator>schwa</dc:creator> <category><![CDATA[Default]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[iPhoneDevCamp]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[touchcode]]></category><guid isPermaLink="false">http://toxicsoftware.com/?p=358</guid> <description><![CDATA[I&#8217;m really happy to be able to say that TouchCode won the &#8220;Best Open Source Project&#8221; at iPhoneDevCamp this weekend. The prize was a gift certificate for an iPhone 3G (a big thank you to Apple Phone Show for sponsoring &#8230; <a href="http://toxicsoftware.com/touchcode_wins/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>I&#8217;m really happy to be able to say that <a href="http://code.google.com/p/touchcode/">TouchCode</a> won the &#8220;Best Open Source Project&#8221; at <a href="http://www.iphonedevcamp.org/">iPhoneDevCamp</a> this weekend. The prize was a gift certificate for an iPhone 3G (a big thank you to <a href="http://applephoneshow.com/">Apple Phone Show</a> for sponsoring this award). Very awesome.</p><p>While it was really gratifying to be recognised by the judges of the competition, it was even more gratifying to see portions of TouchCode in use by the some of other winning contestants. The Taxi application in particular stood out as a great use-case for TouchJSON and I really expect Taxi to sell like hot cakes when it gets uploaded to the AppStore.</p><p>I had a great time talking to other iPhoneDevCamp attendees, some of which wanted to thank me for parts of TouchCode. Other attendees were interested in the project and I relished the chance to tell them all about. Hopefully I&#8217;ll be able to add more projects to my &#8220;<a href="http://toxicsoftware.com/touchcode-usage/">who uses TouchCode</a>&#8221; blog post.</p> ]]></content:encoded> <wfw:commentRss>http://toxicsoftware.com/touchcode_wins/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>iPhone Development</title><link>http://toxicsoftware.com/iphone_dev/</link> <comments>http://toxicsoftware.com/iphone_dev/#comments</comments> <pubDate>Mon, 10 Mar 2008 20:50:03 +0000</pubDate> <dc:creator>schwa</dc:creator> <category><![CDATA[Default]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[nu]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[sqlite]]></category> <category><![CDATA[touchcode]]></category> <category><![CDATA[touchxml]]></category><guid isPermaLink="false">http://toxicsoftware.com/iphone_dev/</guid> <description><![CDATA[I don&#8217;t need to say too much about the iPhone and the newly released SDK. I have however created a Google source code repository for iPhone/Cocoa Touch related projects. So far I&#8217;ve added three projects to the repository: TouchXML: A &#8230; <a href="http://toxicsoftware.com/iphone_dev/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>I don&#8217;t need to say too much about the iPhone and the newly released SDK. I have however created a <a href="http://code.google.com/p/touchcode/">Google source code</a> repository for iPhone/Cocoa Touch related projects.</p><p>So far I&#8217;ve added three projects to the repository:</p><ul><li><p>TouchXML: A Foundation <a href="http://developer.apple.com/documentation/Cocoa/Conceptual/NSXML_Concepts/NSXML.html">NSXML</a> style API for parsing XML files (based on libxml2)</p></li><li><p>TouchSQL: Yet another library for talking to sqlite databases. This is actually old code that I&#8217;m bringing up to date for 10.5, the iPhone and objc-2.0</p></li><li><p>TouchJSON: My [CocoaJSON] project brought up to date.</p></li></ul><p>I&#8217;m trying to add Unit Tests and documentation to all three projects so they&#8217;ll be suitable for public consumption.</p><p><a href="http://blog.neontology.com/">Tim Burks</a> has also graciously added <a href="http://programming.nu/">nu</a> makefiles and unit tests for each project too. Thanks Tim.</p><p>Oh and&#8230;</p><p>Yes I am potentially interested in iPhone related consulting work. <a href="mailto:jwight@mac.com">jwight@mac.com</a></p> ]]></content:encoded> <wfw:commentRss>http://toxicsoftware.com/iphone_dev/feed/</wfw:commentRss> <slash:comments>16</slash:comments> </item> <item><title>Run Python Script</title><link>http://toxicsoftware.com/run-python-script/</link> <comments>http://toxicsoftware.com/run-python-script/#comments</comments> <pubDate>Fri, 14 Dec 2007 16:14:16 +0000</pubDate> <dc:creator>schwa</dc:creator> <category><![CDATA[Default]]></category> <category><![CDATA[Automator]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[public]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Source]]></category><guid isPermaLink="false">http://toxicsoftware.com/run-python-script/</guid> <description><![CDATA[Important see updates at end of post I&#8217;ve written an Automator action that allows you to write python scripts directly inside your Automator workflow. &#8220;Run Python Script&#8221; Automator action (catchy title) is written using Python and PyObjC (now built-in to &#8230; <a href="http://toxicsoftware.com/run-python-script/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><em>Important</em> see updates at end of post</p><p>I&#8217;ve written an Automator action that allows you to write python scripts directly inside your Automator workflow.</p><p><a href="http://www.flickr.com/photos/61285556@N00/2110974754" title="View 'RunPythonScriptIcon' on Flickr.com"><img src="http://farm3.static.flickr.com/2237/2110974754_6e5540298b_o.png" alt="RunPythonScriptIcon" /></a></p><p>&#8220;<a href="http://bitbucket.org/schwa/toxic-public/src/tip/Projects/Automator/RunPythonScriptAction/Output/Run%20Python%20Script.action.tar.bz2">Run Python Script</a>&#8221; Automator action (catchy title) is written using Python and <a href="http://pyobjc.sourceforge.net/">PyObjC</a> (now built-in to Mac OS X 10.5). Apple already provides &#8220;Run AppleScript&#8221; and &#8220;Run Shell Script&#8221; actions with Automator which give Automator a high degree of flexibility. However Python is my preferred scripting language and by writing a custom action purely for Python I was able to take advantage of some PyObjC features that in my opinion make my action superior to the provided Apple scripting action. I&#8217;m releasing all the <a href="http://bitbucket.org/schwa/toxic-public/src/tip/Projects/Automator/RunPythonScriptAction/">source code</a> to the action under the <a href="http://www.opensource.org/licenses/bsd-license.php">BSD Open Source</a> license.</p><p>One of the main advantages of the action is that Python (with the help of PyObjC) understands the AppleEvent descriptors that Automator uses to pass data between workflow actions. This allows the user to create a custom action that accepts and provides data of any type. In contrast Apple&#8217;s &#8220;Run Shell Script&#8221; action can only accept and provide text (usually limited to file paths). Some work does need to be done to make working with any data (which is represented by NSAppleEventDescriptor objects) more convenient.</p><p>The default Python script for a new action in a workflow follows:</p><pre><code>import sys

def main(input, *args, **kwargs):
    '''Your script goes here.'''
    print 'Hello world'
    return sys.stdout
</code></pre><p><a href="http://www.flickr.com/photos/61285556@N00/2110978140" title="View 'RunPythonScriptMain' on Flickr.com"><img src="http://farm3.static.flickr.com/2286/2110978140_4c336656f7_m.jpg" alt="RunPythonScriptMain" /></a></p><p>This is pretty simple. The action will optionally convert the input into Python types (currently limited to converting typeAlias AppleEvent descriptors into path strings) to allow simple processing. Output is (optionally) converted from Python types to native Automator types. See the Examples directory for more.</p><p>The following screenshot shows the action used in a real workflow. This workflow asks the user for a keyword and then the Python action downloads photos from the <a href="http://morguefile.com/">morguefile</a> public stock photo archive that are related to the keyword. Once download it performs some processing on the files (scales them to 640 by 480) and produces a PDF &#8220;Contact Book&#8221; from the images.</p><p><a href="http://www.flickr.com/photos/61285556@N00/2110196661" title="View 'RunPythonScriptScreenshot' on Flickr.com"><img src="http://farm3.static.flickr.com/2169/2110196661_e9f178f475_m.jpg" alt="RunPythonScriptScreenshot" /></a></p><p>The <a href="http://bitbucket.org/schwa/toxic-public/src/tip/Projects/Automator/RunPythonScriptAction/">source code</a> uses a 10.5 specific technique to create Python based bundles. It also has a simple Python syntax colouring NSTextView (using Python itself to colourise the source).</p><p>I&#8217;m calling the Action a 0.1 release and have some plans/ideas for further releases. See the <a href="http://bitbucket.org/schwa/toxic-public/src/tip/Projects/Automator/RunPythonScriptAction/TODO.txt">TODO list</a>.</p><p><em>Update</em>: I&#8217;ve added a <a href="http://toxicsoftware.com/s3_uploader/">sample script</a> showing how to upload files to Amazon S3 from within a workflow.</p><p>The code in subversion is a lot newer than the binary I&#8217;m linking to. If possible do a  checkout and build the plugin yourself.</p><p><em>Update</em>: This Automator action has issues on Snow Leopard and some Leopard versions. Use at your own risk.</p><p><em>Update</em>: Automator&#8217;s &#8220;Run Terminal Script&#8221; looks like it supports and understands Python native. That means, although my .action was better (syntax highlighting, better control of input and output, better logging, etc), I probably won&#8217;t bother to update it to Snow Leopard.</p><p><img src="http://toxicsoftware.com/wordpress/wp-content/uploads/Screen-shot-2009-10-16-at-11.02.36-AM.png" alt="Screen shot 2009-10-16 at 11.02.36 AM.png" border="0" width="25%" height="25%" /></p> ]]></content:encoded> <wfw:commentRss>http://toxicsoftware.com/run-python-script/feed/</wfw:commentRss> <slash:comments>22</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic
Database Caching 2/25 queries in 0.008 seconds using disk: basic
Object Caching 478/527 objects using disk: basic

Served from: toxicsoftware.com @ 2012-02-08 14:29:05 -->
