<?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>MAB Blog</title>
	<atom:link href="http://mabblog.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://mabblog.com/blog</link>
	<description>Web-Dev &#038; Programming</description>
	<lastBuildDate>Thu, 02 Sep 2010 20:42:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Economic Analysis &amp; The App Store</title>
		<link>http://mabblog.com/blog/2010/09/economic-analysis-the-app-store/</link>
		<comments>http://mabblog.com/blog/2010/09/economic-analysis-the-app-store/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 20:42:02 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=365</guid>
		<description><![CDATA[I read two articles &#8211; the app bubble and bad news about iphone economics &#8211; which surprised me a bit.
Their analysis, which doesn&#8217;t account for gain in human capital and the value of lock-in (or alternatively the cost of switching), seems to posit that the App Store is bad for everyone. I could be completely misevaluating [...]]]></description>
			<content:encoded><![CDATA[<p>I read two articles &#8211; <a href="http://www.fastcompany.com/1684020/the-great-app-bubble">the app bubble</a> and <a href="http://communities-dominate.blogs.com/brands/2010/06/full-analysis-of-iphone-economics-its-bad-news-and-then-it-gets-worse.html">bad news about iphone economics</a> &#8211; which surprised me a bit.</p>
<p>Their analysis, which doesn&#8217;t account for gain in <a href="http://en.wikipedia.org/wiki/Human_capital" target="_blank">human capital</a> and the <a href="http://en.wikipedia.org/wiki/Vendor_lock-in" target="_blank">value of lock-in</a> (or alternatively the <a href="http://en.wikipedia.org/wiki/Switching_barriers" target="_blank">cost of switching</a>), seems to posit that the App Store is bad for everyone. I could be completely misevaluating the arguments presented, but I believe that if you dig into the arguments presented significant benefits are not being accounted for.</p>
<h2>Apple is Paid to Advertise</h2>
<blockquote><p><strong>Apps aren&#8217;t very profitable for Apple either.</strong> According to <a href="http://www.appleinsider.com/articles/10/01/26/app_store_wildly_successful_but_not_hugely_profitable_for_apple.html">Apple Insider</a>, &#8220;Apple has long maintained that the App Store isn&#8217;t meant to be a profit generator, as much as a means of attracting customers to the iPhone and iPod touch.&#8221; The <a href="http://www.appleinsider.com/articles/10/06/23/19_of_software_on_apples_app_store_is_paid_with_1_49_average_price.html">App Store&#8217;s gross profits</a> amount to just 1 percent of Apple&#8217;s total gross profits.</p></blockquote>
<p>If something is a &#8216;means of attracting customers&#8217; then it is a valuable asset, a marketing tool. Even if Apple were losing money running the App Store they would still continue to operate the store because it is incredible marketing tool. The fact is that Apple is <em>being paid to advertise the iOS platform.</em> There is alot of time and money being pumped into advertising individual iOS applications and the more those applications are being designed and developed vendor lock-in takes place which is <em>extremely valuable </em>(vendor lock-in is what makes Microsoft so valuable, valuable enough that <a href="http://daringfireball.net/linked/2010/08/19/intel-mcafee" target="_blank">Intel just bet 7.68 billion</a> on a more-or-less Microsoft specific technology). Many smaller companies have to choose between the iOS platform and the Android phone (it really isn&#8217;t a platform&#8230; yet) and most &#8211; in my opinion &#8211; are choosing the iPhone. Every application that is released on the App Store increases the marketing value of the App Store.</p>
<h2>iOS Apps Keep Customers Happy</h2>
<p>The decision to adopt a technology sometimes depends on whether or not your current hardware will support it. This is why <a href="http://www.squarespace.com/iphone" target="_blank">Square Space</a> developed an iOS app &#8211; it keeps customers happy and helps future customers more easily make the choice to using Square Space. Additionally, developing an App Store application to tie in with your product prevents a second-mover from jumping into the uncaptured market and pulling customers into a separate service which integrates with your free / paid iOS application (ex: some sort of Square Space competitor).</p>
<h2>Experience is Valuable</h2>
<p>Developers don&#8217;t develop open source applications such as <a href="http://seashore.sourceforge.net/The_Seashore_Project/About.html" target="_blank">Seashore</a>, <a href="http://www.sequelpro.com/" target="_blank">Sequel Pro</a>, and <a href="http://www.sequelpro.com/" target="_blank">Adium</a> for profit. Open source applications are developed for the experience and for the gratification that comes with knowing you are the master of something (<a href="http://www.youtube.com/watch?v=A3oIiH7BLmg" target="_blank">this video</a> has some thought provoking ideas about the reason people spend time on tasks which do not result in a direct monetary gain). Developers are more valuable when they can bring an idea from conception to release and when they can prove their ability to quickly master new technologies. Having an iOS application published on the App Store gives concrete evidence to an employer that an employee has those skills &#8211; it is a <a href="http://en.wikipedia.org/wiki/Screening_(economics)" target="_blank">screening device</a>. Yes, an individual developer may not make a profit on an app they developed, but if it allows them to earn 20% over the next 5 years then there is most definitely a net gain.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2010/09/economic-analysis-the-app-store/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML For Email Newsletters &amp; Image Links</title>
		<link>http://mabblog.com/blog/2010/07/html-for-email-newsletters-image-links/</link>
		<comments>http://mabblog.com/blog/2010/07/html-for-email-newsletters-image-links/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 00:18:06 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Web-Dev]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=353</guid>
		<description><![CDATA[Recently I&#8217;ve made some minor adjustments on newsletter bound HTML documents. One particular document was made in the iContact WYSIWYG editor and as you can expect the HTML markup was horrendous. Even worse than the markup was the various ways the email displayed in different email viewing environments. Hotmail, Outlook, and Gmail all displayed this [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve made some minor adjustments on newsletter bound HTML documents. One particular document was made in the iContact WYSIWYG editor and as you can expect the HTML markup was horrendous. Even worse than the markup was the various ways the email displayed in different email viewing environments. Hotmail, Outlook, and Gmail all displayed this same email differently.</p>
<p>The main issue I was experiencing was a mysterious 3px bottom &#8216;padding&#8217; given to all img elements wrapped in an anchor tag and lined up horizontally using tds (apparently tables are <a href="http://www.reachcustomersonline.com/2010/01/23/09.27.00/#step1" target="_blank">still the norm</a> for email marketing). No actual CSS padding or margin was being applied to the img or any of its container elements. I&#8217;m still not entirely sure what was causing the 3px &#8216;padding&#8217; but adding style=&#8221;display:block&#8221; to each img element fixed the problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2010/07/html-for-email-newsletters-image-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AppleScript Tips &amp; Tricks</title>
		<link>http://mabblog.com/blog/2010/07/applescript-tips-tricks/</link>
		<comments>http://mabblog.com/blog/2010/07/applescript-tips-tricks/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 20:14:03 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=332</guid>
		<description><![CDATA[I&#8217;ve done a fair amount of applescript work (mostly automation &#38; UI scripting related projects) over the last couple months and &#8211; although very frustrating &#8211; applescript can allow you to achieve some incredible automation tasks. I&#8217;ve compiled a disjointed lists of tips, tricks, and source code that some trying to wade through applescript (specifically [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve done a fair amount of applescript work (mostly automation &amp; UI scripting related projects) over the last couple months and &#8211; although very frustrating &#8211; applescript can allow you to achieve some incredible automation tasks. I&#8217;ve compiled a disjointed lists of tips, tricks, and source code that some trying to wade through applescript (specifically ui scripting which can be especially tricky) might find useful.</p>
<h2>Enable Access for Assistive Devices</h2>
<div class="codecolorer-container applescript dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="applescript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;System Events&quot;</span><br />
<span style="color: #ff0033; font-weight: bold;">set</span> UI elements enabled <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #0066ff;">true</span><br />
<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span></div></div>
<h2>When &#8220;set value of text field&#8221; Won&#8217;t Work</h2>
<div class="codecolorer-container applescript dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="applescript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0033; font-weight: bold;">set</span> value <span style="color: #ff0033; font-weight: bold;">of</span> attribute <span style="color: #009900;">&quot;AXValue&quot;</span> <span style="color: #ff0033; font-weight: bold;">of</span> <span style="color: #0066ff;">text</span> field 1 <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #009900;">&quot;String&quot;</span></div></div>
<h2>How To Iterate Through Rows in a Table</h2>
<div class="codecolorer-container applescript dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="applescript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0033; font-weight: bold;">repeat</span> <span style="color: #ff0033; font-weight: bold;">with</span> r <span style="color: #ff0033; font-weight: bold;">in</span> rows <span style="color: #ff0033; font-weight: bold;">of</span> table 1 <span style="color: #ff0033; font-weight: bold;">of</span> <span style="color: #0066ff;">window</span> 1<br />
log r<br />
<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">repeat</span></div></div>
<h2>Retrieve Every UI Element Available in a Window</h2>
<div class="codecolorer-container applescript dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="applescript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;System Events&quot;</span><br />
<span style="color: #ff0033; font-weight: bold;">tell</span> process <span style="color: #009900;">&quot;Process Name&quot;</span><br />
<span style="color: #ff0033; font-weight: bold;">set</span> visible <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #0066ff;">true</span><br />
<span style="color: #ff0033; font-weight: bold;">return</span> <span style="color: #ff0033;">every</span> UI element <span style="color: #ff0033; font-weight: bold;">of</span> <span style="color: #ff0033;">front</span> <span style="color: #0066ff;">window</span><br />
<span style="color: #ff0033; font-weight: bold;">return</span> <span style="color: #0066ff;">name</span> <span style="color: #ff0033; font-weight: bold;">of</span> <span style="color: #ff0033;">every</span> UI element <span style="color: #ff0033; font-weight: bold;">of</span> <span style="color: #ff0033;">front</span> <span style="color: #0066ff;">window</span><br />
<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span><br />
<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span></div></div>
<h2>Get a List of the Children of a UI Element</h2>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">return value of attribute &quot;AXChildren&quot; of UI element 1</div></div>
<h2>Create / Update / Connect Network Preferences VPN Services</h2>
<p>Although since OS X 10.5 we have been given better applescript access to network preference settings, it still isn&#8217;t possible to create / update services / interfaces through applescript. With some tricky UI scripting and the help of the <a href="http://developer.apple.com/mac/library/samplecode/UIElementInspector/Introduction/Intro.html" target="_blank">UI Element Inspector</a> (or the advanced <a href="http://pfiddlesoft.com/uibrowser/" target="_blank">UI Browser</a>) it is possible to create and update VPN service information. I also wrote a couple functions that allow you to check the existence of a VPN service and the connection status. You can check out the source code <a href="http://gist.github.com/462760" target="_blank">here</a>. Note that although the code is VPN service specific it wouldn&#8217;t be terribly hard to modify the code for use in automating the creation of aiport, ethernet, etc services.</p>
<h2>Take a Screenshot of a SWF</h2>
<p>This is a bit more complex that one would expect. Because the Flash Player isn&#8217;t built using cocoa it doesn&#8217;t support alot of native applescript methods and getting a screenshot of the actual content (not containing the title bar!) of the swf is actually pretty challenging. The script will take a screenshot of <em>only the content</em> of the actual swf. This is useful if you have a flash app that has loadable swf components that the user should be able to preview through a thumbnail. Coupling <a href="http://gist.github.com/399121" target="_blank">the script</a> with the following bash script allows you to easily generate thumbnails for all the swfs in the specified directory.</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:300px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#!/bin/bash</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> normalize_path<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
<span style="color: #7a0874; font-weight: bold;">eval</span> <span style="color: #ff0000;">&quot;NORMALIZED_PATH=$1&quot;</span><br />
<span style="color: #007800;">NORMALIZED_PATH</span>=<span style="color: #000000; font-weight: bold;">`</span>php <span style="color: #660033;">-r</span> <span style="color: #ff0000;">&quot;echo realpath('<span style="color: #007800;">$NORMALIZED_PATH</span>');&quot;</span><span style="color: #000000; font-weight: bold;">`</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
<span style="color: #c20cb9; font-weight: bold;">find</span> ..<span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>swfdirectory <span style="color: #660033;">-name</span> <span style="color: #ff0000;">&quot;*.swf&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> line; <span style="color: #000000; font-weight: bold;">do</span><br />
<span style="color: #666666; font-style: italic;"># remove the relative reference</span><br />
normalize_path <span style="color: #ff0000;">&quot;<span style="color: #007800;">$line</span>&quot;</span><br />
<span style="color: #007800;">line</span>=<span style="color: #007800;">$NORMALIZED_PATH</span><br />
<br />
<span style="color: #666666; font-style: italic;"># open the flas</span><br />
open <span style="color: #660033;">-a</span> <span style="color: #ff0000;">&quot;Flash Player&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$line</span>&quot;</span><br />
<br />
<span style="color: #c20cb9; font-weight: bold;">sleep</span> 1<br />
<br />
<span style="color: #007800;">thumbnailPath</span>=<span style="color: #800000;">${line/.swf/.jpg}</span><br />
osascript slide_preview.scpt <span style="color: #ff0000;">&quot;<span style="color: #007800;">$thumbnailPath</span>&quot;</span><br />
<br />
<span style="color: #c20cb9; font-weight: bold;">killall</span> <span style="color: #ff0000;">&quot;Flash Player&quot;</span><br />
<span style="color: #000000; font-weight: bold;">done</span><br />
<br />
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span></div></div>
<h2>Other Applescript Code Snippets:</h2>
<ul>
<li><a href="http://snipplr.com/view/36666/quit-application-by-process-name/" target="_blank">Quit Application by Process Name</a></li>
<li><a href="http://snipplr.com/view/15606/xcode-build-and-run-using-applescript/" target="_blank">XCode Build &amp; Run</a></li>
<li><a href="http://snipplr.com/view/36665/toggle-vpn-connection/" target="_blank">Toggle First VPN Connection in Network Preferences</a></li>
<li><a href="http://snipplr.com/view/24208/os-x-mail-mark-as-replied/" target="_blank">Mark Selected Message as Replied</a></li>
</ul>
<h2>Helpful Applescript Articles</h2>
<ul>
<li><a href="http://aurelio.net/doc/as4pp.html" target="_blank">Applescript for Python Programmers</a></li>
<li><a href="http://www.mactech.com/articles/mactech/Vol.22/22.03/AdvAppleScript/index.html" target="_blank">Details on Applescript Variable Types</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2010/07/applescript-tips-tricks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Going Social</title>
		<link>http://mabblog.com/blog/2010/06/going-social/</link>
		<comments>http://mabblog.com/blog/2010/06/going-social/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 17:55:47 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=328</guid>
		<description><![CDATA[It is often hard for me to find the time to actually finish a blog post for this site, I have many many drafts that are about 70% complete but as of now I can&#8217;t find the time to finish them and get them out onto this blog.
However, I&#8217;ve still been trying to push as [...]]]></description>
			<content:encoded><![CDATA[<p>It is often hard for me to find the time to actually finish a blog post for this site, I have many many drafts that are about 70% complete but as of now I can&#8217;t find the time to finish them and get them out onto this blog.</p>
<p>However, I&#8217;ve still been trying to push as much work as I can out into the public realm. Here are some sides that I frequently post code / projects / findings onto:</p>
<ul>
<li><a href="http://github.com/iloveitaly">GitHub</a></li>
<li><a href="http://snipplr.com/users/iloveitaly/">Snipplr</a></li>
<li><a href="http://gist.github.com/iloveitaly">Gist</a></li>
<li><a href="http://twitter.com/iloveitaly3">Twitter</a></li>
</ul>
<p>Hopefully you will find some of the code / ideas I post on those sites useful.</p>
<p>As an aside, I&#8217;ve been fascinated with Twitter: there is no &#8216;right way&#8217; to use Twitter. Facebook is pretty straightforward &#8211; connect and stay and in touch with others. Twitter is a generic searchable database accessible from anywhere with easy ways to create relationships between different pieces of data and connect with the larger web as a whole. I use my Twitter account mainly as a bookmarking service; I find the traditional bookmarking model to be very lacking, I&#8217;m surprised Apple / Google / Startup will reinvent the wheel. It will be interesting to see what these different massive social sites end up turning into.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2010/06/going-social/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compiling PHP 5.2.11 on OS X 10.5.8</title>
		<link>http://mabblog.com/blog/2010/05/compiling-php-5-2-11-on-os-x-10-5-8/</link>
		<comments>http://mabblog.com/blog/2010/05/compiling-php-5-2-11-on-os-x-10-5-8/#comments</comments>
		<pubDate>Thu, 13 May 2010 04:36:15 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web-Dev]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=318</guid>
		<description><![CDATA[I&#8217;ve detailed this problem before but yet again I&#8217;ve encountered the infamous iconv compile error. This bug is not new yet it still has not been fixed in the latest PHP release.
When compiling a custom version of PHP with libraries such as libxml and iconv the make process results in a linking error relating to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve detailed this problem <a href="http://mabblog.com/blog/?p=291">before</a> but yet again I&#8217;ve encountered the infamous iconv compile error. This bug is <a href="http://bugs.php.net/bug.php?id=43189">not new</a> yet it still has not been fixed in the latest PHP release.</p>
<p>When compiling a custom version of PHP with libraries such as libxml and iconv the <code>make</code> process results in a linking error relating to the iconv library. The problem arises because I have two versions of iconv installed &#8211; the macports version in addition to the standard installation. A linking conflict arises and to eliminate the error a linking search order change (which is detailed in my previous blog post) must be made. In addition to the makefile modification, the previous workaround for the bug also included using <code>--with-iconv=shared,/opt/local</code> instead of the standard <code>--with-iconv</code>. Either the latest PHP (5.2.11) or OS X update has caused that workaround not to function correctly, now only <code>--with-iconv=/opt/local</code> should be used.</p>
<p>I&#8217;ve <a href="http://gist.github.com/398622">posted a script</a> that I&#8217;m now using to keep my PHP installation up to date.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2010/05/compiling-php-5-2-11-on-os-x-10-5-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NetSuite PHPToolkit &amp; Uncaught Empty Search Results Error</title>
		<link>http://mabblog.com/blog/2010/04/netsuite-phptoolkit-uncaught-empty-search-results-error/</link>
		<comments>http://mabblog.com/blog/2010/04/netsuite-phptoolkit-uncaught-empty-search-results-error/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 04:12:50 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Web-Dev]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=315</guid>
		<description><![CDATA[So far my experience with NetSuite has been less than favorable. Their developer resources aren&#8217;t bad, but they aren&#8217;t terribly good either. I&#8217;m working on a project that involves searching through contacts &#038; selectively modifying contact data based on search results. In some cases the search will return an empty result set &#8211; just like [...]]]></description>
			<content:encoded><![CDATA[<p>So far my experience with <a href="http://netsuite.com">NetSuite</a> has been less than favorable. Their <a href="http://www.netsuite.com/portal/developers/dev-resources.shtml">developer resources</a> aren&#8217;t <i>bad</i>, but they aren&#8217;t <a href="http://stackoverflow.com/questions/228265/netsuite-woes-is-there-decent-reference-anywhere">terribly good</a> either. I&#8217;m working on a project that involves searching through contacts &#038; selectively modifying contact data based on search results. In some cases the search will return an empty result set &#8211; just like any normal search should. I would have thought that the PHP developer kit was mature enough to handle an empty search set, but apparently not. With the most recent &#8220;v2009.2&#8243; framework I receive the following error when attempting to perform a basic <code>ContactSearchBasic</code>:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">PHPtoolkit.php [416]:<br />
<br />
Undefined property: stdClass::$pageSize</div></div>
<p>I&#8217;m guessing that most of their third party developers are using .NET or Java which would explain this extreme oversight in the PHP framework. Heck, it might be resulting from some obscure PHP compilation configuration option on my local machine (although I&#8217;m doubtful that it is). For those are experiencing the same issue I&#8217;ve uploaded a <a href="http://mabblog.com/getfile.php?file=67">patch</a> which fixes the issue in your PHPToolkit.php file.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2010/04/netsuite-phptoolkit-uncaught-empty-search-results-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun With PyObjc: Growl Notification Hell</title>
		<link>http://mabblog.com/blog/2010/01/fun-with-pyobjc-growl-notification-hell/</link>
		<comments>http://mabblog.com/blog/2010/01/fun-with-pyobjc-growl-notification-hell/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 17:33:55 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=309</guid>
		<description><![CDATA[Most of the time PyObjc is wonderful to work in, I love the python libraries and language.
Other times it just makes me angry.
It seems, at least initially, that PyObjc (2.2b3, the default installation with 10.6 snow leopard) does not work with the Growl framework. You can register your application with growl fine, but if you [...]]]></description>
			<content:encoded><![CDATA[<p>Most of the time PyObjc is wonderful to work in, I love the python libraries and language.</p>
<p>Other times it just makes me angry.</p>
<p>It seems, at least initially, that PyObjc (2.2b3, the default installation with 10.6 snow leopard) <strong>does not</strong> work with the Growl framework. You can register your application with growl fine, but if you try to push notifications to growl nothing happens.</p>
<p>Here is what I tried initially to post a growl notification in pyobjc:</p>
<div class="codecolorer-container python dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">GrowlApplicationBridge.<span style="color: black;">notifyWithTitle_description_notificationName_iconData_priority_isSticky_clickContext_</span><span style="color: black;">&#40;</span>u<span style="color: #483d8b;">&quot;Notification&quot;</span>, <span style="color: #483d8b;">&quot;A description.&quot;</span>, u<span style="color: #483d8b;">&quot;Notification&quot;</span>, objc.<span style="color: black;">nil</span>, <span style="color: #ff4500;">0</span>, objc.<span style="color: black;">NO</span>, objc.<span style="color: black;">nil</span><span style="color: black;">&#41;</span></div></div>
<p>This does not work, and for a minute I thought I was the only one experiencing this problem (all open source pyobjc projects using growl had almost identical growl notification code) until I found <a href="http://github.com/SPlyer/MacTimeLog/commit/ffc74ce3a03300e263b334ebd613999c78f17474">this</a> commit message on github. I found an <a href="http://groups.google.com/group/growldiscuss/browse_thread/thread/ccd8601313ac13ec">associated discussion</a> on the growl discussion group and was disheartened that the developer resorted using a command line version of growl to post notifications. However I decided to try one last thing, and checked the className of python objects passed through the objc bridge.</p>
<p>Here is a table of the objc className of different string creation methods in python:</p>
<ul>
<li>unicode(&#8220;a string&#8221;) or u&#8221;a string&#8221;: OC_PythonUnicode</li>
<li>str(&#8220;a string&#8221;) or &#8220;a string&#8221;: OC_PythonString</li>
<li>r&#8221;a string&#8221;: OC_PythonString</li>
</ul>
<p>Interestingly enough a python string (unicode, str, raw) is not &#8216;toll free&#8217; bridged like CFString &#038; NSString are. I guess this is to be expected and shouldn&#8217;t cause any problems since both OC_PythonString and OC_PythonUnicode are <a href="http://www.opensource.apple.com/source/pyobjc/pyobjc-26/pyobjc/pyobjc-core/Modules/objc/OC_PythonString.h">subclasses</a> of NSString, the <a href="https://svn.red-bean.com/pyobjc/trunk/pyobjc-web/docroot/doc/classes.php">documentation</a> even states &#8220;A Python unicode may be used anywhere a NSString is expected&#8221;. It seems that this is not always the case though. I tried one last thing before resorting to rewriting the code in objc:</p>
<div class="codecolorer-container python dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">GrowlApplicationBridge.<span style="color: black;">notifyWithTitle_description_notificationName_iconData_priority_isSticky_clickContext_</span><span style="color: black;">&#40;</span>NSString.<span style="color: black;">stringWithString_</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Notification&quot;</span><span style="color: black;">&#41;</span>, NSString.<span style="color: black;">stringWithString_</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;A description.&quot;</span><span style="color: black;">&#41;</span>, NSString.<span style="color: black;">stringWithString_</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Notification&quot;</span><span style="color: black;">&#41;</span>, objc.<span style="color: black;">nil</span>, <span style="color: #ff4500;">0</span>, objc.<span style="color: black;">NO</span>, objc.<span style="color: black;">nil</span><span style="color: black;">&#41;</span></div></div>
<p>And it worked. Note that the created NSString&#8217;s don&#8217;t get converted by the bridge into a OC_PythonString object, they pass through as regular NSString&#8217;s. Note that you also write the above as the more python native:</p>
<div class="codecolorer-container python dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">GrowlApplicationBridge.<span style="color: black;">notifyWithTitle_description_notificationName_iconData_priority_isSticky_clickContext_</span><span style="color: black;">&#40;</span>NSString.<span style="color: black;">stringWithString_</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Notification&quot;</span><span style="color: black;">&#41;</span>, NSString.<span style="color: black;">stringWithString_</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;A description.&quot;</span><span style="color: black;">&#41;</span>, NSString.<span style="color: black;">stringWithString_</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Notification&quot;</span><span style="color: black;">&#41;</span>, <span style="color: #008000;">False</span>, 0, <span style="color: #008000;">False</span>, <span style="color: #008000;">None</span><span style="color: black;">&#41;</span></div></div>
<p>One other interesting that I found is that bridge throws a memory leak warning when running <code>NSString.alloc().initWithString_("Notification")</code>:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">UninitializedDeallocWarning: leaking an uninitialized object of type NSPlaceholderString</div></div>
<p>My only guess is that because initWithString is called instead of <code>init</code> the bridge sees it as a uninitialized object (so I would guess that this warning is falsely thown). Unfortunately the  PyObjc documentation is too sparse for me to able to determine what the real cause of the error is.</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2010/01/fun-with-pyobjc-growl-notification-hell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Create TGZ Automator Service</title>
		<link>http://mabblog.com/blog/2010/01/create-tgz-automator-workflow/</link>
		<comments>http://mabblog.com/blog/2010/01/create-tgz-automator-workflow/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 23:35:15 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=306</guid>
		<description><![CDATA[With Snow Leopard came some nice refinements to automator actions. However, all existing automator actions had to be recreated as services in order to be accessed through the Finder&#8217;s contextual menu. One automator action which I used fairly often was the create tgz workflow. I always found that action to be fairly useful so I [...]]]></description>
			<content:encoded><![CDATA[<p>With Snow Leopard came some nice <a href="http://www.reynoldsftw.com/2009/08/automator-and-finder-interactions-in-os-x-10-6/">refinements</a> to automator actions. However, all existing automator actions had to be recreated as services in order to be accessed through the Finder&#8217;s contextual menu. One automator action which I used fairly often was the <a href="http://www.macosxhints.com/article.php?story=20050731011849803">create tgz workflow</a>. I always found that action to be fairly useful so I recreated it <a href="http://mabblog.com/getfile.php?file=66">as an action</a>.</p>
<p>Another unfortunate change with Snow Leopard was the <a href="http://stackoverflow.com/questions/1338978/inputmanager-plug-ins-in-snow-leopard-os-x-10-6">elimination</a> of input managers. This eliminated the convenient <a href="http://www.fscript.org/">F-Script</a> injection functionality that was present in F-Script anywhere. Luckily this functionality has been recreated using an <a href="http://bit.ly/7WKH3F">automator service</a>. Nice work!</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2010/01/create-tgz-automator-workflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyObjc &amp; Seemingly Incorrect Return Value Mismatch</title>
		<link>http://mabblog.com/blog/2010/01/pyobjc-seemingly-incorrect-return-value-mismatch/</link>
		<comments>http://mabblog.com/blog/2010/01/pyobjc-seemingly-incorrect-return-value-mismatch/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 13:04:55 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=302</guid>
		<description><![CDATA[I&#8217;ve come to love developing in PyObjc. Sure, it has its quirks, isn&#8217;t the fastest, and isn&#8217;t the easiest to debug when something goes really wrong (aka imperfect integration with the xcode IDE); but it is fast to develop in. Almost every seemingly complex task that has come my way has been 50% completed by [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve come to love developing in <a href="http://pyobjc.sourceforge.net/">PyObjc</a>. Sure, it has its quirks, isn&#8217;t the fastest, and isn&#8217;t the easiest to debug when something goes really wrong (aka imperfect integration with the xcode IDE); but it is <i>fast</i> to develop in. Almost every seemingly complex task that has come my way has been 50% completed by some open source python module that I can include in a commercial app without any licensing trouble. </p>
<p>However, the other day I came across a <a href="https://sourceforge.net/tracker/?func=detail&#038;aid=2925086&#038;group_id=14534&#038;atid=114534">bug</a> (at least, what I thought was a bug) that seemed very blaringly obvious and for a production version of a scripting bridge. When implementing the NSTableView delegate&#8217;s method <code>tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_</code> I was getting an error when simply returning an NSString (<code> TypeError: tableView:toolTipForCell:rect:tableColumn:row:mouseLocation:: Need tuple of 2 arguments as result</code>) and for the life of me I couldn&#8217;t figure out why. Apple&#8217;s documentation states that I should return an NSString and I couldn&#8217;t find any information about a special case in pyobjc for this specific method. </p>
<p>I guess I did not search hard enough through the uncentralized incomplete documentation spread across the web since one of the PyObjc devs was kind enough to respond with a simple explanation:</p>
<blockquote><p>This is not a bug, the &#8216;rect&#8217; argument is a pass-by-reference argument that<br />
can be modified, hence you have to return two values: both the return value<br />
itself and the (possibly updated) value of rect:</p>
<p>return (aToolTip, aRect)</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2010/01/pyobjc-seemingly-incorrect-return-value-mismatch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compiling PHP 5.2 With Iconv, Soap, and Others on OS X 10.5</title>
		<link>http://mabblog.com/blog/2009/12/compiling-php-5-2-with-iconv-soap-and-others-on-os-x-10-5/</link>
		<comments>http://mabblog.com/blog/2009/12/compiling-php-5-2-with-iconv-soap-and-others-on-os-x-10-5/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 23:40:32 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web-Dev]]></category>

		<guid isPermaLink="false">http://mabblog.com/blog/?p=291</guid>
		<description><![CDATA[I&#8217;ve already posted some notes about compiling PHP 5.2 on OS X 10.5, but I came across a couple more issues today as I recompiled the binary with soap support. After searching around a bit I finally remembered that I needed to manually edit the make file in order to get PHP compiling correctly, I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve already posted <a href="http://mabblog.com/blog/?p=178">some notes</a> about compiling PHP 5.2 on OS X 10.5, but I came across a couple more issues today as I recompiled the binary with soap support. After searching around a bit I finally remembered that I needed to manually edit the make file in order to get PHP compiling correctly, I found the edit that needed to be made <a href="http://jspr.tndy.me/2009/07/php-5-3-iconv-osx-symbols-missing-_libiconv/">here</a>. I&#8217;m reposting it here for my own future use:</p>
<p>Replace:</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #7a0874; font-weight: bold;">&#40;</span>CC<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>MH_BUNDLE_FLAGS<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>CFLAGS_CLEAN<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>EXTRA_CFLAGS<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>LDFLAGS<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>EXTRA_LDFLAGS<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>PHP_GLOBAL_OBJS:.lo=.o<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>PHP_SAPI_OBJS:.lo=.o<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>PHP_FRAMEWORKS<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>EXTRA_LIBS<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>ZEND_EXTRA_LIBS<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #660033;">-o</span> $<span style="color: #000000; font-weight: bold;">@</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">cp</span> $<span style="color: #000000; font-weight: bold;">@</span> libs<span style="color: #000000; font-weight: bold;">/</span>libphp$<span style="color: #7a0874; font-weight: bold;">&#40;</span>PHP_MAJOR_VERSION<span style="color: #7a0874; font-weight: bold;">&#41;</span>.so</div></div>
<p>With this:</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #7a0874; font-weight: bold;">&#40;</span>CC<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>CFLAGS_CLEAN<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>EXTRA_CFLAGS<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>LDFLAGS<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>EXTRA_LDFLAGS<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>PHP_GLOBAL_OBJS:.lo=.o<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>PHP_SAPI_OBJS:.lo=.o<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>PHP_FRAMEWORKS<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>EXTRA_LIBS<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>ZEND_EXTRA_LIBS<span style="color: #7a0874; font-weight: bold;">&#41;</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>MH_BUNDLE_FLAGS<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #660033;">-o</span> $<span style="color: #000000; font-weight: bold;">@</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">cp</span> $<span style="color: #000000; font-weight: bold;">@</span> libs<span style="color: #000000; font-weight: bold;">/</span>libphp$<span style="color: #7a0874; font-weight: bold;">&#40;</span>PHP_MAJOR_VERSION<span style="color: #7a0874; font-weight: bold;">&#41;</span>.so</div></div>
<p>Note the separation of the command into three separate lines, with the 2nd line having one tab character at the beginning of the string. </p>
<p>And here is my updated configure string command (with soap and iconv):</p>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>usr <span style="color: #660033;">--sysconfdir</span>=<span style="color: #000000; font-weight: bold;">/</span>private<span style="color: #000000; font-weight: bold;">/</span>etc <span style="color: #660033;">--with-libxml-dir</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span> <span style="color: #660033;">--with-icu-dir</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span> <span style="color: #660033;">--with-iconv</span>=shared,<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span> <span style="color: #660033;">--enable-intl</span> <span style="color: #660033;">--with-config-file-path</span>=<span style="color: #000000; font-weight: bold;">/</span>etc <span style="color: #660033;">--mandir</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">man</span> <span style="color: #660033;">--infodir</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>info <span style="color: #660033;">--with-apxs2</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>apxs <span style="color: #660033;">--with-zlib-dir</span>=<span style="color: #000000; font-weight: bold;">/</span>usr <span style="color: #660033;">--with-mysql-sock</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>mysql <span style="color: #660033;">--with-mysqli</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>mysql<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>mysql_config <span style="color: #660033;">--with-pdo-dblib</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span> <span style="color: #660033;">--with-mysql</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>mysql <span style="color: #660033;">--with-pear</span> <span style="color: #660033;">--with-pdo-mysql</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>mysql<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>mysql_config <span style="color: #660033;">--enable-sockets</span> <span style="color: #660033;">--enable-exif</span> <span style="color: #660033;">--enable-wddx</span> <span style="color: #660033;">--enable-ftp</span> <span style="color: #660033;">--enable-cli</span> <span style="color: #660033;">--enable-mbstring</span> <span style="color: #660033;">--enable-mbregex</span> <span style="color: #660033;">--enable-sockets</span> <span style="color: #660033;">--with-curl</span> <span style="color: #660033;">--with-sqlite</span> <span style="color: #660033;">--enable-soap</span> <span style="color: #660033;">--with-libxml-dir</span>=<span style="color: #000000; font-weight: bold;">/</span>usr</div></div>
<p>Another interesting note about PHP 5 is that compiling it with the readline extension (using <code>--with-readline</code> or <code>--with-libedit</code>) allows it to be a interactive scripting environment (a PHP console of sorts) just like python, ruby, or bash. Just run it from the command line with the -a option (info thanks to <a href="http://www.webmasterworld.com/forum88/11023.htm">madmac</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://mabblog.com/blog/2009/12/compiling-php-5-2-with-iconv-soap-and-others-on-os-x-10-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
