<?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>Adam Trachtenberg &#187; php</title>
	<atom:link href="http://www.trachtenberg.com/blog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.trachtenberg.com/blog</link>
	<description>Thoughts on PHP, eBay, and too many technical topics for my family's liking.</description>
	<lastBuildDate>Tue, 24 Aug 2010 21:39:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP SOAP vs. SDO</title>
		<link>http://www.trachtenberg.com/blog/2006/10/12/php-soap-vs-sdo/</link>
		<comments>http://www.trachtenberg.com/blog/2006/10/12/php-soap-vs-sdo/#comments</comments>
		<pubDate>Thu, 12 Oct 2006 22:21:29 +0000</pubDate>
		<dc:creator>Adam Trachtenberg</dc:creator>
				<category><![CDATA[Web Services]]></category>
		<category><![CDATA[ebay]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[speaking]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.trachtenberg.com/blog/2006/10/12/php-soap-vs-sdo/</guid>
		<description><![CDATA[In my role as eBay Platform Evangelist, I spend a lot of time exploring different XML technologies.
SOAP is obviously the big one. I use the PHP 5 ext/soap extension, which is great, but there&#8217;s actually another PHP SOAP extension that might be even better. No, it&#8217;s not PEAR::SOAP or NuSOAP; it&#8217;s axis2.

If you haven&#8217;t heard [...]]]></description>
			<content:encoded><![CDATA[<p>In my role as eBay Platform Evangelist, I spend a lot of time exploring different XML technologies.</p>
<p>SOAP is obviously the big one. I use the PHP 5 ext/soap extension, which is great, but there&#8217;s actually another PHP SOAP extension that might be even better. No, it&#8217;s not PEAR::SOAP or NuSOAP; it&#8217;s <a href="http://pecl.php.net/package/axis2">axis2</a>.<br />
<span id="more-654"></span><br />
If you haven&#8217;t heard of axis2, you&#8217;re not alone. That&#8217;s because it&#8217;s a pecl extension that&#8217;s still in beta, so there aren&#8217;t a lot of people using it yet. However, it&#8217;s a PHP version of the <a href="http://ws.apache.org/axis2/">Apache Axis 2.0</a> SOAP stack.</p>
<p>Unlike ext/soap, which is recreating SOAP one feature at a time, Axis 2.0 already supports a good portion of the WS-* specifications. So all that needs to happen is for someone to write the hooks between PHP and Axis 2.0, which is far easier than actually writing the features themselves.</p>
<p>I met a number of people from WSO2, the company that&#8217;s writing Axis 2.0, and they&#8217;re quite excited about the extension. However, they did mention it&#8217;s still in beta, so I haven&#8217;t actually spent any time using it yet.</p>
<p>The other PHP XML extension I&#8217;ve been hearing a lot about is SDO. SDO is an attempt to provide a standard data interface regardless of the backend datasource. So, for example, you can interact with XML data in the exact same manner as information pulled from your database.</p>
<p>At OSCON and ApacheCon, I&#8217;ve run into a couple of people from IBM who have been doing the heavy lifting on this extension, and we&#8217;ve had a number of interesting chats with them about eBay Web services and SDO, but I hadn&#8217;t had any free time at work to install the extension.</p>
<p>Therefore, when I had a little free time today between the end of my session and lunch, I sat down and reproduced a short code example that I had wrote using ext/soap with SDO instead.</p>
<p>Here&#8217;s the key portion of the original code:</p>
<pre><code>// Print Titles and Mileage
if (isset($response->SearchResultItemArray)) {
    foreach($response->SearchResultItemArray as $item) {
        printf(&quot;%s\n\t%d miles\n&quot;, $item, $item->ItemSpecific['Mileage']);
    }
}</code></pre>
<p>This iterates through a search result for eBay Motors listings and prints out the title and the mileage for each individual item.</p>
<p>Normally the code would be far more complex, but through a series of ext/soap class mappings I wrote that implement the IteratorAggregate and ArrayAccess interfaces, along with the __toString() magic method, I&#8217;ve managed to abstract away a number of the complexities.</p>
<p>Best I can tell, SDO doesn&#8217;t give me quite the same level of control, but it does implement a number of these features for me out-of-the-box.</p>
<p>Here&#8217;s my rewrite using SDO:</p>
<pre><code>foreach ($root->SearchResultItemArray->SearchResultItem as $item) {
    $title = $item->Item->Title;
    $mileage = $item->ItemSpecific[&quot;NameValueList[Name='Mileage']&quot;]->Value[0];
    printf(&quot;%s\n\t%d miles\n&quot;, $title, $mileage);
}</code></pre>
<p>It&#8217;s not quite as brief, but I do get this nice XPath-like filtering that lets me pull out the the value of the car&#8217;s Mileage in one line. Pretty handy.</p>
<p>I had to implement the ArrayAccess interface to get this to work under ext/soap, which included this method:</p>
<pre><code>public function offsetGet($name) {
	if (! is_array($this->NameValueList)) {
		$this->NameValueList = array($this->NameValueList);
	}

	foreach ($this->NameValueList as $NameValueList) {
		if ($NameValueList->Name == $name) {
			return $NameValueList->Value;
		}
	}

	return null;
}</code></pre>
<p>Not the hardest thing in the world to write, but this is just one of the custom class maps that will arise in our data schema, and SDO takes care of them all automatically.</p>
<p>Still, right now I think I prefer my ability the greater control I have over the interface with ext/soap. Our SOAP schema isn&#8217;t that pretty since there are lots of list, array, and hash wrappers. Through classmaps and interfaces I can turn these into native-looking PHP arrays and hashes.</p>
<p>I may be introducing a leaky abstraction, but I think this is better than exposing a NameValueListArrayType for people to wrangle with.</p>
<p>Like ext/soap, SDO requires you to define your data using an XML Schema. While we actually publish a stand alone XML Schema file, SDO will also happily parse a WSDL file, too, which is nice.</p>
<p>However, it will not directly consume a SOAP message because the WSDL doesn&#8217;t include any mention of the SOAP envelope wrapper. I needed to rip out the contents of the SOAP body into a separate XML document in order to get SDO to parse my data. Oddly, this corresponds perfectly with our &#8220;XML API,&#8221; so I could use that to retrieve properly formatted data that I can pass directly to SDO.</p>
<p>Where SDO really falls down for me is performance. Admittedly, eBay is a pathological case, but our WSDL file is 2.94 Megs in size. When I feed that to SDO, it takes 8.5 seconds to process the XML Schema data. Yikes!</p>
<p>I don&#8217;t mind a one-time start up hit, but it doesn&#8217;t appear that SDO can cache a parsed version of the schema. In contrast, ext/soap has both an on-disk and in-memory WSDL cache.</p>
<p>This means it takes SDO about 8.7 seconds to process the schema, load in data, and print out the information &#8212; and all with locally stored files.</p>
<p>In contrast, ext/soap takes as little as 0.55 seconds to pull in a cached version of the WSDL from the disk, go out over the network to query eBay via SOAP, wait for eBay&#8217;s SOAP server to run a database query on its end and send back a SOAP response, parse the SOAP envelope, and print out the exact same data. If I was using the in-memory cache, I think it&#8217;d be even faster, and I&#8217;m sure the big bottleneck here is talking to eBay.</p>
<p>Now, I&#8217;ve spent all of 60 minutes playing with SDO, so it&#8217;s quite possible that I&#8217;m missing some obvious configuration flag. If not, I hope IBM can do something to help speed up the performance, since while I could probably write a script to break apart our schema to create individual files that contain all the possible types on a per-call basis, I am hoping I don&#8217;t need to.</p>
<p>In the meantime, I&#8217;m going to continue exploring SDO to see what else I can do with it because I&#8217;ve sure I&#8217;ve only grazed its surface.</p>
<p><em>[Update: I cannot get the axis2 extension to compile, despite trying a number of different versions of Axis2c and both Linux and Mac OS X. I may try again tomorrow.]</em></p>
<img src="http://www.trachtenberg.com/blog/?ak_action=api_record_view&id=654&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.trachtenberg.com/blog/2006/10/12/php-soap-vs-sdo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP Trivia Contest: DOM + Default Namespaces</title>
		<link>http://www.trachtenberg.com/blog/2006/09/26/php-trivia-contest-dom-default-namespaces/</link>
		<comments>http://www.trachtenberg.com/blog/2006/09/26/php-trivia-contest-dom-default-namespaces/#comments</comments>
		<pubDate>Wed, 27 Sep 2006 00:03:24 +0000</pubDate>
		<dc:creator>Adam Trachtenberg</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.trachtenberg.com/blog/2006/09/26/php-trivia-contest-dom-default-namespaces/</guid>
		<description><![CDATA[Here&#8217;s a question based on a recent PHP bug report which shows why DOM is fun.
Given the following line of PHP:
$xml = DOMDocument::loadXML(
 '&#60;r xmlns=&#34;urn:a&#34;/&#62;');
The easy way to print the namespace URI of the root node, urn:a, is:
echo $xml->documentElement->namespaceURI;
But how do you retrieve it using DOMElement::GetAttributeNS()? What are the two magical input parameters to coax [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a question based on a recent PHP bug report which shows why DOM is fun.</p>
<p>Given the following line of PHP:</p>
<blockquote><p><code>$xml = DOMDocument::loadXML(<br />
 '&lt;r xmlns=&quot;urn:a&quot;/&gt;');</code></p></blockquote>
<p>The easy way to print the namespace URI of the root node, <code>urn:a</code>, is:</p>
<blockquote><p><code>echo $xml->documentElement->namespaceURI;</code></p></blockquote>
<p>But how do you retrieve it using <code>DOMElement::GetAttributeNS()</code>? What are the two magical input parameters to coax that value out?</p>
<img src="http://www.trachtenberg.com/blog/?ak_action=api_record_view&id=644&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.trachtenberg.com/blog/2006/09/26/php-trivia-contest-dom-default-namespaces/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP 5 + COM + Skype Help Wanted</title>
		<link>http://www.trachtenberg.com/blog/2006/09/12/php-5-com-skype-help-wanted/</link>
		<comments>http://www.trachtenberg.com/blog/2006/09/12/php-5-com-skype-help-wanted/#comments</comments>
		<pubDate>Tue, 12 Sep 2006 22:39:20 +0000</pubDate>
		<dc:creator>Adam Trachtenberg</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ebay]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.trachtenberg.com/blog/2006/09/12/php-5-com-skype-help-wanted/</guid>
		<description><![CDATA[This is a help wanted ad. Any assistance would be much appreciated.
I&#8217;m trying to use PHP 5.2 to talk to Skype via the COM extension and Skype4COM interface.
I&#8217;m using this example from the Skype Forum, but I get a COM exception of &#8220;Skype client is not installed.&#8221;
However, I do have Skype on my machine and [...]]]></description>
			<content:encoded><![CDATA[<p>This is a help wanted ad. Any assistance would be much appreciated.</p>
<p>I&#8217;m trying to use PHP 5.2 to talk to Skype via the <a href="http://www.php.net/com">COM extension</a> and <a href="https://developer.skype.com/Docs/Skype4COM">Skype4COM</a> interface.</p>
<p>I&#8217;m using <a href="http://forum.skype.com/index.php?s=&#038;showtopic=47585&#038;view=findpost&#038;p=226646">this example</a> from the Skype Forum, but I get a COM exception of &#8220;Skype client is not installed.&#8221;</p>
<p>However, I do have Skype on my machine and I&#8217;m <a href="http://forum.skype.com/index.php?s=&#038;showtopic=59155&#038;view=findpost&#038;p=276292">not the only one</a> with this problem, so I don&#8217;t think I&#8217;m completely crazy.</p>
<p>Unfortunately, I don&#8217;t normally develop on Windows or Skype, so it&#8217;s very hard for me to debug the COM extension. If anyone has some pointers on where I should start, it would be very useful. Thanks!</p>
<img src="http://www.trachtenberg.com/blog/?ak_action=api_record_view&id=642&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.trachtenberg.com/blog/2006/09/12/php-5-com-skype-help-wanted/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Stupid PHP one liners: Google calc</title>
		<link>http://www.trachtenberg.com/blog/2006/08/24/stupid-php-one-liners-google-calc/</link>
		<comments>http://www.trachtenberg.com/blog/2006/08/24/stupid-php-one-liners-google-calc/#comments</comments>
		<pubDate>Thu, 24 Aug 2006 07:03:05 +0000</pubDate>
		<dc:creator>Adam Trachtenberg</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.trachtenberg.com/blog/2006/08/24/stupid-php-one-liners-google-calc/</guid>
		<description><![CDATA[A long time ago, I wrote a two line hack that let you use Google as a command line calculator. It eventually ended up in the 2nd and 3rd editions of Google Hacks.
I don&#8217;t know what caused by to look at that code again, but here&#8217;s the one line version:

print str_replace('&#60;font size=-2&#62; &#60;/font&#62;', ',' ,
 [...]]]></description>
			<content:encoded><![CDATA[<p>A long time ago, I wrote a two line hack that let you use Google as a command line calculator. It eventually ended up in the 2nd and 3rd editions of <em>Google Hacks</em>.</p>
<p>I don&#8217;t know what caused by to look at that code again, but here&#8217;s the one line version:</p>
<pre>
print str_replace('&lt;font size=-2&gt; &lt;/font&gt;', ',' ,
  preg_replace('(.+&lt;b&gt;.+= (.+?)&lt;/b&gt;.+)s', '$1',
    file_get_contents('http://www.google.com/search?q=' .
      urlencode(join(' ', array_splice($argv, 1)))))) . &quot;\n&quot;;
</pre>
<img src="http://www.trachtenberg.com/blog/?ak_action=api_record_view&id=635&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.trachtenberg.com/blog/2006/08/24/stupid-php-one-liners-google-calc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My favorite new style of printf</title>
		<link>http://www.trachtenberg.com/blog/2006/05/20/my-favorite-new-style-of-printf/</link>
		<comments>http://www.trachtenberg.com/blog/2006/05/20/my-favorite-new-style-of-printf/#comments</comments>
		<pubDate>Sun, 21 May 2006 01:44:07 +0000</pubDate>
		<dc:creator>Adam Trachtenberg</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.trachtenberg.com/blog/2006/05/20/my-favorite-new-style-of-printf/</guid>
		<description><![CDATA[I just discovered vsprintf(), which accepts a formatting string and an array of arguments:

// logging function that accepts printf-style formatting
// it prints a time stamp, the string, and a new line
function logf() {
	$date = date(DATE_RSS);
	$args = func_get_args();
	$format = array_shift($args);

	return print &#34;$date: &#34; . vsprintf($format, $args) . &#34;\n&#34;;
}

Just sharing.
]]></description>
			<content:encoded><![CDATA[<p>I just discovered <code>vsprintf()</code>, which accepts a formatting string and an array of arguments:</p>
<pre><code>
// logging function that accepts printf-style formatting
// it prints a time stamp, the string, and a new line
function logf() {
	$date = date(DATE_RSS);
	$args = func_get_args();
	$format = array_shift($args);

	return print &quot;$date: &quot; . vsprintf($format, $args) . &quot;\n&quot;;
}
</code></pre>
<p>Just sharing.</p>
<img src="http://www.trachtenberg.com/blog/?ak_action=api_record_view&id=564&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.trachtenberg.com/blog/2006/05/20/my-favorite-new-style-of-printf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>eBay Developers Conference 2006</title>
		<link>http://www.trachtenberg.com/blog/2006/05/16/ebay-developers-conference-2006/</link>
		<comments>http://www.trachtenberg.com/blog/2006/05/16/ebay-developers-conference-2006/#comments</comments>
		<pubDate>Tue, 16 May 2006 18:38:24 +0000</pubDate>
		<dc:creator>Adam Trachtenberg</dc:creator>
				<category><![CDATA[Working]]></category>
		<category><![CDATA[ebay]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.trachtenberg.com/blog/2006/05/16/ebay-developers-conference-2006/</guid>
		<description><![CDATA[With less than a month to go, this year&#8217;s eBay Developers Conference is really beginning to gel. I&#8217;ve been working with a number of people all across eBay to put together a great show. So far, we&#8217;ve got:

Tracks on eBay, PayPal, Skype, Shopping.com, and ProStores Web services and APIs
Sessions on, for lack of a better [...]]]></description>
			<content:encoded><![CDATA[<p>With less than a month to go, this year&#8217;s eBay Developers Conference is really beginning to gel. I&#8217;ve been working with a number of people all across eBay to put together a great show. So far, we&#8217;ve got:</p>
<ul>
<li>Tracks on eBay, PayPal, Skype, Shopping.com, and ProStores Web services and APIs</li>
<li>Sessions on, for lack of a better phrase, &#8220;Web 2.0&#8243; content, including AJAX, widgets, XUL, mashups, and Chris Anderson presenting on &#8220;the long tail.&#8221;</li>
<li>Keynote talks by Pierre Omidyar &#038; Scott Cook, the head of eBay corporate strategy, and the head of eBay corporate architecture.</li>
<li>Business talks and panels by Digg founder Kevin Rose, SocialText founder Ross Mayfield, SixApart&#8217;s Anil Dash, SoftTech Venture Consulting&#8217;s Jeff Clavier, and others.</li>
<li>A half day unconference, where you can get together to share your knowledge on the topics that matter to you. (Check out our <a href="http://www.ebaydevcon.com/wiki/">Conference Wiki</a> to start participating   before the show begins.)</li>
<li>An opening kick off party at the House of Blues, a beer bash the next night, and general Vegas fun and glamour. (Did I mention the show is in Las Vegas at the Mandalay Bay Hotel and Casino?)</li>
</ul>
<p><span id="more-558"></span><br />
Best of all, the whole show is only $395. It&#8217;s not free, but compared to the thousands of dollars similar shows cost, this is a serious bargain. We don&#8217;t want price to be a reason why you can&#8217;t participate. </p>
<p>The opening party is the night of June 9, the conference is the 10th and 11th, and the unconference is the morning of the 12th.</p>
<p>Full details are available on the <a href="http://www.ebaydevcon.com">Developer Conference web site</a>.</p>
<img src="http://www.trachtenberg.com/blog/?ak_action=api_record_view&id=558&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.trachtenberg.com/blog/2006/05/16/ebay-developers-conference-2006/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eBay Express is Live</title>
		<link>http://www.trachtenberg.com/blog/2006/04/24/ebay-express-is-live/</link>
		<comments>http://www.trachtenberg.com/blog/2006/04/24/ebay-express-is-live/#comments</comments>
		<pubDate>Tue, 25 Apr 2006 00:36:56 +0000</pubDate>
		<dc:creator>Adam Trachtenberg</dc:creator>
				<category><![CDATA[Working]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.trachtenberg.com/blog/2006/04/24/ebay-express-is-live/</guid>
		<description><![CDATA[We&#8217;ve finally rolled out eBay Express, our new fixed-price shopping site. In fine Web 2.0 fashion, it&#8217;s a beta (well, technically, it&#8217;s a preview). However, I&#8217;ve been playing with an internal release for a few weeks now and it&#8217;s already in quite fine shape.
]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve finally rolled out <a href="http://express.ebay.com">eBay Express</a>, our new fixed-price shopping site. In fine Web 2.0 fashion, it&#8217;s a beta (well, technically, it&#8217;s a preview). However, I&#8217;ve been playing with an internal release for a few weeks now and it&#8217;s already in quite fine shape.</p>
<img src="http://www.trachtenberg.com/blog/?ak_action=api_record_view&id=515&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.trachtenberg.com/blog/2006/04/24/ebay-express-is-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heading to Germany for eBay Live! Germany and Entwicklertag</title>
		<link>http://www.trachtenberg.com/blog/2006/04/24/heading-to-germany-for-ebay-live-germany-and-entwicklertag/</link>
		<comments>http://www.trachtenberg.com/blog/2006/04/24/heading-to-germany-for-ebay-live-germany-and-entwicklertag/#comments</comments>
		<pubDate>Mon, 24 Apr 2006 23:31:09 +0000</pubDate>
		<dc:creator>Adam Trachtenberg</dc:creator>
				<category><![CDATA[Working]]></category>
		<category><![CDATA[ebay]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[speaking]]></category>

		<guid isPermaLink="false">http://www.trachtenberg.com/blog/2006/04/24/heading-to-germany-for-ebay-live-germany-and-entwicklertag/</guid>
		<description><![CDATA[I&#8217;m heading to Dusseldorf, Germany for eBay Developer Day (Entwicklertag) and eBay Live! Germany. If it&#8217;s anything like eBay Live! US, it should be a blast.
My talk is on &#8220;Software innovations from the US,&#8221; which (fortunately for me) appears to be in English. All the other talks are in German. :) I&#8217;m looking forward to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m heading to Dusseldorf, Germany for <a href="http://pages.ebay.de/entwickler/entwicklertag.html">eBay Developer Day</a> (Entwicklertag) and <a href="http://ebaylive.ebay.de/">eBay Live! Germany</a>. If it&#8217;s anything like eBay Live! US, it should be a blast.</p>
<p>My talk is on &#8220;Software innovations from the US,&#8221; which (fortunately for me) appears to be in English. All the other talks are in German. :) I&#8217;m looking forward to seeing my friends at eBay Germany again and meeting a number of new German eBay developers.</p>
<p>Right now, I&#8217;m scheduled to work May 26-28, but I will either arrive a few days early or stay a few days late. What should I do? It&#8217;s my first time in Germany, so I&#8217;m open to anything. I&#8217;m trying to stay somewhere near the Dusseldorn / Frankfurt area, so I don&#8217;t spend all my time travelling, but I&#8217;m open to anything.</p>
<p>Also, if you can&#8217;t make it to Dusseldorf, I&#8217;m able and willing to talk to any Germany user groups about eBay Web services (or PHP). Let me know if you&#8217;re interested in setting up a user group meeting, or you just want to hang out.</p>
<img src="http://www.trachtenberg.com/blog/?ak_action=api_record_view&id=514&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.trachtenberg.com/blog/2006/04/24/heading-to-germany-for-ebay-live-germany-and-entwicklertag/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Did you know about PHP&#8217;s old_function?</title>
		<link>http://www.trachtenberg.com/blog/2006/04/05/did-you-know-about-phps-old_function/</link>
		<comments>http://www.trachtenberg.com/blog/2006/04/05/did-you-know-about-phps-old_function/#comments</comments>
		<pubDate>Wed, 05 Apr 2006 23:52:04 +0000</pubDate>
		<dc:creator>Adam Trachtenberg</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[upgrading to php 5]]></category>

		<guid isPermaLink="false">http://www.trachtenberg.com/blog/2006/04/05/did-you-know-about-phps-old_function/</guid>
		<description><![CDATA[I was reviewing Upgrading to PHP 5 today and I came across this lovely section in Appendix B, which I had completely forgotten about:
PHP/FI had a quirky function declaration syntax:
function sum $a, $b (
    return($a + $b);
);

This was changed in PHP 3, but you could continue to use the old form in [...]]]></description>
			<content:encoded><![CDATA[<p>I was reviewing <em><a href="http://www.trachtenberg.com/blog/2004/05/15/upgrading-to-php-5/">Upgrading to PHP 5</a></em> today and I came across this lovely section in Appendix B, which I had completely forgotten about:</p>
<blockquote><p>PHP/FI had a quirky function declaration syntax:</p>
<pre><code>function sum $a, $b (
    return($a + $b);
);
</code></pre>
<p>This was changed in PHP 3, but you could continue to use the old form in PHP 3 and PHP 4 if you declared your function as an old_function:</p>
<pre><code>old_function sum $a, $b (
    return($a + $b);
);
</code></pre>
<p>Alas, after six years, this backward compatibility feature is now gone. Another nostalgic remnant of PHP/FI has passed away.</p></blockquote>
<p>I must say, I used PHP/FI, but I never resorted to the <code>old_function</code> hack to ease my PHP 3 migration issues.</p>
<p>Did anybody ever use this?</p>
<img src="http://www.trachtenberg.com/blog/?ak_action=api_record_view&id=502&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.trachtenberg.com/blog/2006/04/05/did-you-know-about-phps-old_function/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Auctioning Autographed &#8220;Upgrading to PHP 5&#8243; for the EFF</title>
		<link>http://www.trachtenberg.com/blog/2006/02/11/auctioning-autographed-upgrading-to-php-5-for-the-eff/</link>
		<comments>http://www.trachtenberg.com/blog/2006/02/11/auctioning-autographed-upgrading-to-php-5-for-the-eff/#comments</comments>
		<pubDate>Sun, 12 Feb 2006 02:18:10 +0000</pubDate>
		<dc:creator>Adam Trachtenberg</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[charity]]></category>
		<category><![CDATA[ebay]]></category>
		<category><![CDATA[eff]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[upgrading to php 5]]></category>

		<guid isPermaLink="false">http://www.trachtenberg.com/blog/2006/02/11/auctioning-autographed-upgrading-to-php-5-for-the-eff/</guid>
		<description><![CDATA[Every since I started at eBay, I&#8217;ve been looking to sell more on the site. I&#8217;ve also been looking to donate more money to charity. So I decided to combine the two: I&#8217;m selling a copy of Upgrading to PHP 5  on eBay and donating everything to the EFF.
The EFF, short for Electronic Frontier [...]]]></description>
			<content:encoded><![CDATA[<p>Every since I started at eBay, I&#8217;ve been looking to sell more on the site. I&#8217;ve also been looking to donate more money to charity. So I decided to combine the two: I&#8217;m selling a copy of <em><a href="http://www.oreilly.com/catalog/upgradephp5/">Upgrading to PHP 5 </a></em> on eBay and donating everything to the <a href="http://www.eff.org/">EFF</a>.</p>
<p>The EFF, short for Electronic Frontier Foundation, describes themselves as:</p>
<blockquote><p>[A] group of passionate people â€” lawyers, technologists, volunteers, and visionaries â€” working in the trenches, battling to protect your rights and the rights of web surfers everywhere. The dedicated people of EFF challenge legislation that threatens to put a price on what is invaluable; to control what must remain boundless.</p></blockquote>
<p>List priced at $29.99, the auction starts at $0.01, so you&#8217;re guaranteed to get a good value. As an extra special bonus, I will custom autograph the book to the winning bidder or a friend. Or, for an additional $5, I will not sully up your clean new book with my autograph. Your choice. Okay, just kidding about the $5.</p>
<p>If you&#8217;ve been looking to get up to speed on PHP 5, now&#8217;s the perfect chance to buy a book and give money to a great cause. Check out my listing and <a href="http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&#038;item=4612780421&#038;rd=1&#038;sspagename=STRK%3AMESE%3AIT&#038;rd=1">bid today</a>.</p>
<img src="http://www.trachtenberg.com/blog/?ak_action=api_record_view&id=452&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.trachtenberg.com/blog/2006/02/11/auctioning-autographed-upgrading-to-php-5-for-the-eff/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

