<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-36941363</id><updated>2012-02-01T15:04:37.688-08:00</updated><category term='&quot;end of line&quot; java'/><category term='zend phpcloud studio developer cloud'/><category term='phpcloud zend webapi'/><category term='webtop webtops operating systems future roy ganor'/><category term='Enterprise2.0 zportal'/><category term='phpcloud eclipse zend sdk pdt'/><category term='eclipse test framework'/><category term='facebook app development phpcloud'/><category term='eclipse flash adobe'/><category term='zend studio server php'/><category term='zend developer cloud platform sdk'/><category term='git github zend sdk server'/><category term='zend studio ajax php'/><category term='eclipse democamp telaviv zend'/><category term='phpcloud zend studio cloud best practices development'/><title type='text'>Ganor's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-36941363.post-4707034055656033285</id><published>2012-01-19T05:31:00.000-08:00</published><updated>2012-01-19T06:18:04.418-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook app development phpcloud'/><title type='text'>Getting Started with Facebook App Development</title><content type='html'>Last week I was playing with &lt;a href="http://developers.facebook.com/docs/" target="_blank"&gt;Facebook App&lt;/a&gt;&amp;nbsp;development, getting ready to &lt;a href="http://developers.facebook.com/blog/post/634/" target="_blank"&gt;the Facebook announcement&lt;/a&gt;. It was quite&amp;nbsp;pleasant experience, although things could be simpler. The Facebook &lt;a href="http://developers.facebook.com/docs/opengraph/" target="_blank"&gt;Open Graph concept&lt;/a&gt;&amp;nbsp;gives a nice overview on what and why this all about, so that part went very smooth. When things get technical, the Facebook Developers site turns messy. That is, all topics are covered in a 'tutorial' approach rather than an API approach like most developers are used to. Moreover, the layout of this page is&amp;nbsp;definitely&amp;nbsp;not&amp;nbsp;intuitive&amp;nbsp;as it mixes between reference and tutorial docs. That's said, the general experience was good.&lt;br /&gt;&lt;br /&gt;To help other developers get started with Facebook app development I created &lt;a href="https://apps.facebook.com/myphpcloud/" target="_blank"&gt;a nice application&lt;/a&gt; which take the reader through the steps to develop applications with phpcloud.com. It was a nice&amp;nbsp;exercise and it can really help with the development workflow.&lt;br /&gt;&lt;br /&gt;The topic "&lt;a href="https://apps.facebook.com/myphpcloud/" target="_blank"&gt;Getting Started with Your Facebook App on phpcloud.com&lt;/a&gt;" covers :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create an account on phpcloud.com&lt;/li&gt;&lt;li&gt;Create an app on Facebook&lt;/li&gt;&lt;li&gt;Setting up development environment&lt;/li&gt;&lt;li&gt;Deploy a sample Facebook app to phpcloud.com&lt;/li&gt;&lt;li&gt;Push updates to your Facebook app&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-4707034055656033285?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/4707034055656033285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=4707034055656033285' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/4707034055656033285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/4707034055656033285'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2012/01/getting-started-with-facebook-app.html' title='Getting Started with Facebook App Development'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>2</thr:total><georss:featurename>Sderot Rothschild 84-88, Tel Aviv, Israel</georss:featurename><georss:point>32.066157 34.777821</georss:point><georss:box>32.0123325 34.698857000000004 32.119981499999994 34.856785</georss:box></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-7762233462938874502</id><published>2011-12-14T21:26:00.000-08:00</published><updated>2012-01-09T22:29:38.654-08:00</updated><title type='text'>A (Big) Dot Release</title><content type='html'>Although dot releases don't get as much attention as major releases , this one should definitely get highlighted:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;      "Zend is pleased to announce the release of Zend Studio 9.0.1!"&lt;/pre&gt;&lt;br /&gt;This new release focuses on improving source code editing experience, improving editor performance, smart indentation when pasting code. It also extends the code formatter so PHP comments are well structured. Working with PHPUnit made easier with the addition of smart configuration (and&amp;nbsp;bootstrap) &amp;nbsp;detection. Community plugins updates provide advanced features with Git, ZenCoding and Symfony2.&lt;br /&gt;&lt;br /&gt;The changes include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Improved editor performance for multi-line statements and auto indentation scenarios&lt;/li&gt;&lt;li&gt;Adjust indentation when pasting code&lt;/li&gt;&lt;li&gt;New code formatter rules for PHP Comments&lt;/li&gt;&lt;li&gt;Disable/Enable Code formatter with special @formatter:off/on tags&lt;/li&gt;&lt;li&gt;Git history graph&lt;/li&gt;&lt;li&gt;PHPUnit auto-detection of configuration (and&amp;nbsp;bootstrap) file&lt;/li&gt;&lt;li&gt;Improved PHP Class creation for namespace code generation&lt;/li&gt;&lt;li&gt;Easy installation of community plugins&amp;nbsp;&lt;a href="http://code.google.com/p/zen-coding/" target="_blank"&gt;ZenCoding&lt;/a&gt; and &lt;a href="http://symfony.dubture.com/" target="_blank"&gt;Symfony2 and Twig&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Various bug fixes&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Read &lt;a href="http://static.zend.com/topics/Zend-Studio-9-0-1-Release-Notes.txt" target="_blank"&gt;more about&amp;nbsp;this release&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://www.zend.com/studio" target="_blank"&gt;download Zend Studio 9.0&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-7762233462938874502?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/7762233462938874502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=7762233462938874502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/7762233462938874502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/7762233462938874502'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/12/big-dot-release.html' title='A (Big) Dot Release'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-1824214199094444124</id><published>2011-12-05T23:43:00.001-08:00</published><updated>2011-12-07T00:46:52.090-08:00</updated><title type='text'>Rewrite Rulez!!!</title><content type='html'>While common Web frameworks provide a set of&amp;nbsp;mod_rewrite&amp;nbsp;rules in their default application, it is left to the developer to align these rules according to the Apache host configuration. For example if you use an &lt;a href="http://httpd.apache.org/docs/current/mod/mod_alias.html#alias"&gt;alias&lt;/a&gt;&amp;nbsp;when setting up a &lt;a href="https://github.com/symfony/symfony"&gt;Symfony&lt;/a&gt;&amp;nbsp;application then a &lt;a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritebase"&gt;RewriteBase directive&lt;/a&gt; must be added to the application rules. This is a &lt;a href="http://stackoverflow.com/questions/2137492/why-is-rewritebase-neccesary-when-rewriting-url-via-htaccess"&gt;common&lt;/a&gt; change that is required to keep the original list (provided by the framework) as is.&lt;br /&gt;&lt;br /&gt;To this end a post-deployment action can be added to fix the RewriteBase directive in the '.htaccess' file.&amp;nbsp;In a &lt;a href="http://ganoro.blogspot.com/2011/11/chmod-your-phpcloud-web-apps.html"&gt;previous post&lt;/a&gt;, &lt;a href="http://files.zend.com/help/Zend-Server/the_xml_descriptor_file.htm"&gt;application deployment scripts&lt;/a&gt; were used to help chmod application's resources. This time I am going to use deployment hooks to modify the RewriteBase directive automatically after deploying the&amp;nbsp;&lt;a href="https://github.com/ganoro/Symfony2Cloud"&gt;Symfony2Cloud&lt;/a&gt;&amp;nbsp;application. &lt;br /&gt;&lt;br /&gt;In the &lt;a href="https://github.com/ganoro/Symfony2Cloud/blob/master/scripts/post_stage.php"&gt;deployment script&lt;/a&gt; you can find this code:&lt;br /&gt;&lt;br /&gt;&lt;div class="gist" id="gist-1439559"&gt;&lt;div class="gist-file"&gt;&lt;div class="gist-data gist-syntax"&gt;&lt;div class="gist-highlight"&gt;&lt;pre&gt;&lt;div class="line" id="LC1"&gt;&lt;span class="cp"&gt;&amp;lt;?&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC2"&gt;&lt;span class="c1"&gt;// get application location&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC3"&gt;&lt;span class="nv"&gt;$appLocation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'ZS_APPLICATION_BASE_DIR'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="line" id="LC5"&gt;&lt;span class="c1"&gt;// modify htaccess&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC6"&gt;&lt;span class="nv"&gt;$htaccess_file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$appLocation&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'/web/.htaccess'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC7"&gt;&lt;span class="nv"&gt;$explode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;explode&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'/'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$appLocation&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC8"&gt;&lt;span class="nv"&gt;$appname&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$explode&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;sizeof&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$explode&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="line" id="LC9"&gt;&lt;span class="nv"&gt;$content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;file_get_contents&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$htaccess_file&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC10"&gt;&lt;span class="nv"&gt;$content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;str_replace&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'&amp;lt;application-name&amp;gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$appname&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$content&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC11"&gt;&lt;span class="nb"&gt;file_put_contents&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$htaccess_file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$content&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gist-meta"&gt;&lt;a href="https://gist.github.com/raw/1439559/3a1f969c87f137a9df0ea1aad819ee6b652cd9c7/post_stage.php" style="float: right;"&gt;view raw&lt;/a&gt;            &lt;a href="https://gist.github.com/1439559#file_post_stage.php" style="color: #666666; float: right; margin-right: 10px;"&gt;post_stage.php&lt;/a&gt;&lt;a href="https://gist.github.com/1439559"&gt;This Gist&lt;/a&gt; brought to you by &lt;a href="http://github.com/"&gt;GitHub&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;In details: The application location is used to resolve its alias. Then the alias name is used to replace the &lt;a href="https://github.com/ganoro/Symfony2Cloud/blob/master/web/.htaccess"&gt;.htaccess file&lt;/a&gt;&amp;nbsp;content&amp;nbsp;so instead of "&lt;span style="background-color: white; font-family: 'Bitstream Vera Sans Mono', 'Courier New', monospace; font-size: 12px; line-height: 11px; white-space: pre;"&gt;RewriteBase /&lt;/span&gt;&lt;span style="font-family: monospace; white-space: pre;"&gt;&amp;lt;application-name&lt;/span&gt;&lt;span style="font-family: monospace; white-space: pre;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background-color: white; font-family: 'Bitstream Vera Sans Mono', 'Courier New', monospace; font-size: 12px; line-height: 11px; white-space: pre;"&gt;&lt;application-name&gt;"&lt;/application-name&gt;&lt;/span&gt;&amp;nbsp;it will show up as&amp;nbsp;"&lt;span style="background-color: white; font-family: 'Bitstream Vera Sans Mono', 'Courier New', monospace; font-size: 12px; line-height: 11px; white-space: pre;"&gt;RewriteBase /Symfony2Cloud".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Assuming that you use Zend SDK and the following deploy command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;zend deploy application -r git://github.com/ganoro/Symfony2Cloud.git&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Symfony2Cloud is now deployed and ready to use with this .htaccess:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;&lt;br /&gt; RewriteBase /Symfony2Cloud&lt;br /&gt;&lt;br /&gt;    RewriteEngine On&lt;br /&gt;    RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;    RewriteRule ^(.*)$ app_dev.php [QSA,L]&lt;br /&gt;&amp;lt;/IfModule&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-1824214199094444124?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/1824214199094444124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=1824214199094444124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/1824214199094444124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/1824214199094444124'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/12/rewrite-rulez.html' title='Rewrite Rulez!!!'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-8824868774558169193</id><published>2011-11-30T06:24:00.001-08:00</published><updated>2011-11-30T07:08:10.601-08:00</updated><title type='text'>Github to Zend Developer Cloud - the fast way!</title><content type='html'>In &lt;a href="http://ganoro.blogspot.com/2011/11/what-is-coming-up-from-zend.html"&gt;previous&lt;/a&gt; &lt;a href="http://ganoro.blogspot.com/2011/10/pull-down-application-created-on.html"&gt;posts&lt;/a&gt; I discussed several methods of building  Web applications using Zend Developer Cloud and github, mainly with tools like Eclipse and Zend Studio. This time, I will show off with a new feature in &lt;a href="http://code.google.com/p/zend-sdk/"&gt;Zend SDK&lt;/a&gt; v0.0.22 (and up) presented by &lt;a href="http://pl.linkedin.com/in/wgalanciak"&gt;Wojtek Galanciak&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;With this feature only one command line is required to deploy applications from github to Zend Developer Cloud.  Here is a simple example:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;zend deploy application -r git://github.com/ganoro/Symfony2Cloud.git -t 0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="https://github.com/ganoro/Symfony2Cloud"&gt;"Symfony2Cloud" repository&lt;/a&gt; is hosted in &lt;a href="https://github.com/ganoro"&gt;my github account&lt;/a&gt;. Target id 0 is&amp;nbsp;&lt;a href="http://royganor.my.phpcloud.com/"&gt;my Zend Developer Cloud&lt;/a&gt;&amp;nbsp;container. This command makes sure that the applications is deployed into my Zend Developer Cloud container. As simple as that...&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-z6LhswOyLXQ/TtZGzoTEy_I/AAAAAAAAHr8/83gZKgFbdO8/s1600/gtz.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="107" src="http://4.bp.blogspot.com/-z6LhswOyLXQ/TtZGzoTEy_I/AAAAAAAAHr8/83gZKgFbdO8/s320/gtz.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/zend-sdk/wiki/ManagingApplications#Deploying_an_Application"&gt;Read more&lt;/a&gt; about this command and similar use cases with the new Zend SDK. Release notes are available &lt;a href="http://code.google.com/p/zend-sdk/wiki/ReleaseNotes"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In my next posts I am going to explain about the new repository management tools, so stay tuned.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-8824868774558169193?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/8824868774558169193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=8824868774558169193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/8824868774558169193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/8824868774558169193'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/11/github-to-zend-developer-cloud-fast-way.html' title='Github to Zend Developer Cloud - the fast way!'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-z6LhswOyLXQ/TtZGzoTEy_I/AAAAAAAAHr8/83gZKgFbdO8/s72-c/gtz.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-3467004940827565375</id><published>2011-11-27T05:04:00.001-08:00</published><updated>2011-11-28T03:52:13.851-08:00</updated><title type='text'>chmod() your phpCloud Web Apps</title><content type='html'>A common feedback from developers using Web Apps on &lt;a href="http://www.phpcloud.com/"&gt;Zend Developer Cloud&lt;/a&gt; is the ability to &lt;a href="http://en.wikipedia.org/wiki/Chmod"&gt;chmod&lt;/a&gt;() directories for deployed applications. For example in &lt;a href="http://twitter.com/mindfulbreath"&gt;Joan Ging&lt;/a&gt;'s &lt;a href="http://phpcloud-symfony2.pen.io/"&gt;post&lt;/a&gt;&amp;nbsp;you can notice that one needs to use external tools (like WinSCP or Zend Studio) to chmod the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;logs&amp;nbsp;&lt;/span&gt;and &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;cache&amp;nbsp;&lt;/span&gt;directories that are used by Symfony2, otherwise these directories are write-protected and the application fails to launch.&lt;br /&gt;&lt;br /&gt;There are two methods to chmod application directories after the deployment stage and before launching.&lt;br /&gt;So let's review the two alternatives, both of them&amp;nbsp;result in the same state:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Using Deployment Scripts (during deployment phases).&lt;/li&gt;&lt;li&gt;Using Zend Studio (after the application is deployed)&lt;/li&gt;&lt;/ol&gt;&lt;br/&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Using Deployment Scripts&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One of the new features in phpCloud is the ability to &lt;a href="http://files.zend.com/help/Zend-Studio/a_guided_tour_to_zend_application_deployment_support.htm"&gt;deliver hook scripts alongside the application&lt;/a&gt;.  There are several types of scripts for each phase in the deployment process (i.e, Staging, Activation). &lt;br /&gt;In the following example, chmod is executed on both logs and cache directories immediately after being executed on their parents.&lt;br /&gt;First we define the "scripts" directory to contain all deployment triggers. This is done as part of &lt;a href="http://files.zend.com/help/Zend-Server/the_xml_descriptor_file.htm"&gt;the deployment descriptor file&lt;/a&gt; (named &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;deployment.xml&lt;/span&gt;):&lt;br /&gt;&lt;br /&gt;&lt;div class="gist" id="gist-1398043"&gt;&lt;div class="gist-file"&gt;&lt;div class="gist-data gist-syntax"&gt;&lt;div class="gist-highlight"&gt;&lt;pre&gt;&lt;div class="line" id="LC1"&gt;&lt;span class="cp"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC2"&gt;&lt;span class="nt"&gt;&amp;lt;package&lt;/span&gt; &lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;"http://www.zend.com/server/deployment-descriptor/1.0"&lt;/span&gt; &lt;span class="na"&gt;version=&lt;/span&gt;&lt;span class="s"&gt;"1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;Symfony2Cloud&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC4"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;release&amp;gt;&lt;/span&gt;1.0.0&lt;span class="nt"&gt;&amp;lt;/release&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC6"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;appdir&amp;gt;&lt;/span&gt;data&lt;span class="nt"&gt;&amp;lt;/appdir&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC8"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;docroot&amp;gt;&lt;/span&gt;data/web&lt;span class="nt"&gt;&amp;lt;/docroot&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC9"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nt"&gt;&amp;lt;scriptsdir&amp;gt;&lt;/span&gt;&lt;b&gt;scripts&lt;/b&gt;&lt;span class="nt"&gt;&amp;lt;/scriptsdir&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC10"&gt;&lt;span class="nt"&gt;&amp;lt;/package&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="line" id="LC11"&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gist-meta"&gt;&lt;a href="https://gist.github.com/raw/1398043/4e5eef91845b842f80157e68d627a003ca94dbd7/deployment.xml" style="float: right;"&gt;view raw&lt;/a&gt;            &lt;a href="https://gist.github.com/1398043#file_deployment.xml" style="color: #666666; float: right; margin-right: 10px;"&gt;deployment.xml&lt;/a&gt;&lt;a href="https://gist.github.com/1398043"&gt;This Gist&lt;/a&gt; brought to you by &lt;a href="http://github.com/"&gt;GitHub&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br/&gt;Then we create a post_stage.php file under this directory with this content: &lt;br /&gt;&lt;div class="gist" id="gist-1397617"&gt;&lt;div class="gist-file"&gt;&lt;div class="gist-data gist-syntax"&gt;&lt;div class="gist-highlight"&gt;&lt;pre&gt;&lt;div class="line" id="LC1"&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC2"&gt;&lt;/div&gt;&lt;div class="line" id="LC3"&gt;&lt;span class="cm"&gt;/* @var string holds the application (absolute) path */&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC4"&gt;&lt;span class="nv"&gt;$appLocation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'ZS_APPLICATION_BASE_DIR'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC5"&gt;&lt;/div&gt;&lt;div class="line" id="LC6"&gt;&lt;span class="cm"&gt;/* chmod cache and logs */&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC7"&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$appLocation&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mo"&gt;0775&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC8"&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$appLocation&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'/app/'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mo"&gt;0775&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC9"&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; &lt;span class="p"&gt;&lt;/span&gt; &lt;span class="nv"&gt;$appLocation&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'/app/cache/'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mo"&gt;0775&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC10"&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;$appLocation&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'/app/logs/'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mo"&gt;0775&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC11"&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="gist-meta"&gt;&lt;a href="https://gist.github.com/raw/1397617/6d83cefaf2eb41ce321d430e87e3353a375c817d/post_stage.php" style="float: right;"&gt;view raw&lt;/a&gt; &lt;a href="https://gist.github.com/1397617#file_post_stage.php" style="color: #666666; float: right; margin-right: 10px;"&gt;post_stage.php&lt;/a&gt;    &lt;a href="https://gist.github.com/1397617"&gt;This Gist&lt;/a&gt; brought to you by &lt;a href="http://github.com/"&gt;GitHub&lt;/a&gt;.      &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br/&gt;The complete source code for this application is available in the &lt;a href="https://github.com/ganoro/Symfony2Cloud"&gt;Synfony2Cloud&lt;/a&gt; project on Github.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Using Zend Studio 9.0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;Once you deploy your application in Zend Studio, a connection to your container is created under the hood. You can view this connection and modify the directories permissions in the &lt;b&gt;Remote System&lt;/b&gt; view. &lt;br /&gt;&lt;br /&gt;&lt;div&gt;1. Start by showing (or "unhiding") hidden files. This allows you to browse the ".app" directory which holds all deployed applications. &lt;br /&gt;Go to &lt;b&gt;Preferences &amp;gt; Remote Systems &amp;gt; Files &lt;/b&gt; and make sure "Show hidden files" is marked.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-6Exfl6MeZrg/TtJIXOWLSkI/AAAAAAAAHr0/LybC0IvhXyA/s1600/show.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://4.bp.blogspot.com/-6Exfl6MeZrg/TtJIXOWLSkI/AAAAAAAAHr0/LybC0IvhXyA/s400/show.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;2. Browse to the application you want to chmod() by expanding the file tree in the &lt;b&gt;Remote Systems&lt;/b&gt; view&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-GMeoTI7ziGk/TtJIVE9qasI/AAAAAAAAHrk/sfHlU_jGCf8/s1600/connect.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-GMeoTI7ziGk/TtJIVE9qasI/AAAAAAAAHrk/sfHlU_jGCf8/s1600/connect.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;3. Right click on the directory and select &lt;b&gt;Properties.&amp;nbsp;&lt;/b&gt;&lt;br /&gt;4. Select the &lt;b&gt;Permissions&lt;/b&gt; node, alter the permissions you want to allow and click &lt;b&gt;Apply.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-6kVTFtqQcKc/TtJIVyVWtkI/AAAAAAAAHrs/D2YsYqbnJnQ/s1600/permissions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="210" src="http://3.bp.blogspot.com/-6kVTFtqQcKc/TtJIVyVWtkI/AAAAAAAAHrs/D2YsYqbnJnQ/s320/permissions.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Although Alternative #2 is more flexible, I highly recommend Alternative #1 which&amp;nbsp;streamlines&amp;nbsp;the deployment phase and lets you adjust the code and create an automate deployment process.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-3467004940827565375?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/3467004940827565375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=3467004940827565375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3467004940827565375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3467004940827565375'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/11/chmod-your-phpcloud-web-apps.html' title='chmod() your phpCloud Web Apps'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-6Exfl6MeZrg/TtJIXOWLSkI/AAAAAAAAHr0/LybC0IvhXyA/s72-c/show.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-4582065074941520377</id><published>2011-11-02T08:18:00.000-07:00</published><updated>2011-11-03T04:36:54.058-07:00</updated><title type='text'>What is coming up from Zend?</title><content type='html'>If you have already heard about &lt;a href="http://phpcloud.com/"&gt;phpcloud.com&lt;/a&gt; and &lt;a href="http://www.zend.com/studio" target="_blank"&gt;Zend Studio 9&lt;/a&gt; or just trying to grasp what new developer workflows Zend is now offering, you may find the new tutorials that the Zend documentation team have put together quite useful. These tutorials take you through end to end real world scenarios and outline what can be achieved with the new tools and platform. These tutorials include:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Building Applications on the Zend Developer Cloud (&lt;/span&gt;&lt;a href="http://files.zend.com/help/Beta/Zend_Studio_9_0/Tutorials/building_applications_on_the_zend_developer_cloud.htm" style="font-size: 19px; font-weight: bold;"&gt;link&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To create GitHub and Zend Developer Cloud accounts. These will be used to maintain a project in GitHub and to deploy on Zend's cloud platform. Github is just an example, you could use other version control system such as Git, Subversion, CVS, Mercurial.&amp;nbsp;&lt;/li&gt;&lt;li&gt;To create a new container in the Zend Developer Cloud. The container holds your application in the cloud.&lt;/li&gt;&lt;li&gt;To create a new project from GitHub. You will be using an existing GitHub project to create a new project in Zend Studio.&lt;/li&gt;&lt;li&gt;To launch the application on the Zend Developer Cloud and debug it using Zend Studio.&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;A Guided Tour of Zend Application Deployment Support (&lt;/span&gt;&lt;a href="http://files.zend.com/help/Beta/Zend_Studio_9_0/Tutorials/A_Guided_Tour_to_Zend_Application_Deployment_Support.htm" style="font-size: 19px; font-weight: bold;"&gt;link&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To create a new project from GitHub in Zend Studio: You will be provided with an existing GitHub account and project.&lt;/li&gt;&lt;li&gt;To work with your project's deployment.xml file: Launching a project in Zend Studio with deployment support creates a deployment.xml file. This file enables you to customize your application before the packaging process.&lt;/li&gt;&lt;li&gt;To create a ZPK package: Packaging your application enables you to export it to other members of the working process for testing and evaluation.&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Deploying Applications to Zend Server (&lt;/span&gt;&lt;a href="http://files.zend.com/help/Beta/Zend_Studio_9_0/Tutorials/deploying_applications_to_zend_server.htm" style="font-size: 19px; font-weight: bold;"&gt;link&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To create an API Key. The API Key allows Zend Studio to access your server.&lt;/li&gt;&lt;li&gt;To create a new PHP project from SVN in Zend Studio. You will be provided with an existing SVN account and project.&lt;/li&gt;&lt;li&gt;To deploy your project on a remote Zend Server.&lt;/li&gt;&lt;li&gt;To launch your application. After creating your application, Zend Studio enables you to run your application from within the IDE and in an internal browser&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Running Applications on a Local Zend Server (&lt;/span&gt;&lt;a href="http://files.zend.com/help/Beta/Zend_Studio_9_0/Tutorials/running_applications_on_local_zend_servers.htm" style="font-size: 19px; font-weight: bold;"&gt;link&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To create a new Zend Framework project under the local server document root.&amp;nbsp;&lt;/li&gt;&lt;li&gt;To debug your application and modify code.&lt;/li&gt;&lt;li&gt;To launch your application.&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Customizing Zend Studio (&lt;/span&gt;&lt;a href="http://files.zend.com/help/Beta/Zend_Studio_9_0/Tutorials/customizing_and_registering_zend_studio.htm" style="font-size: 19px; font-weight: bold;"&gt;link&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;To customize Zend Studio by adding and removing the plugins you want to work with. The Welcome page includes a list of available plugins, which you can add or remove from your Zend Studio.&lt;/li&gt;&lt;li&gt;To register Zend Studio. Once Zend Studio is installed, all its features will be available for a 30 day trial. To enable full features after this period of time, you will need to register the product.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-4582065074941520377?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/4582065074941520377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=4582065074941520377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/4582065074941520377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/4582065074941520377'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/11/what-is-coming-up-from-zend.html' title='What is coming up from Zend?'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-4811588549028335179</id><published>2011-10-27T15:56:00.000-07:00</published><updated>2011-10-28T14:28:58.839-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='phpcloud eclipse zend sdk pdt'/><title type='text'>Eclipse Continues to Support PHP and Zend Developer Cloud</title><content type='html'>The last two weeks were a-m-a-z-i-n-g! We released &lt;a href="http://ganoro.blogspot.com/2011/10/test-drive-zend-developer-cloud-with.html"&gt;two major pieces&lt;/a&gt; that can turn Web development as easy and obvious as &lt;a href="http://code.google.com/p/zend-sdk/wiki/HelloWorldTutorial"&gt;writing this hello world application&lt;/a&gt;. This time&amp;nbsp;I would like to present additional important piece that the Zend team provide today to&amp;nbsp;enable PHP and Web development&amp;nbsp;(special thanks to&amp;nbsp;&lt;a href="http://twitter.com/#!/nataliabartol"&gt;@nataliabartol&lt;/a&gt;). Welcome the&amp;nbsp;'Eclipse-based package by Zend'. This package includes the&amp;nbsp;&lt;a href="http://eclipse.org/"&gt;Eclipse Platform&lt;/a&gt; latest release (version 3.7.1, code name Indigo-SR1), the &lt;a href="http://eclipse.org/webtools/sse/"&gt;Web Tools Source Editing&lt;/a&gt; plugin, the &lt;a href="http://eclipse.org/pdt"&gt;PDT&lt;/a&gt; plugin (latest version) and the &lt;a href="http://zend-sdk.googlecode.com/"&gt;Zend SDK&lt;/a&gt; plugin (this plugin enables&amp;nbsp;&lt;a href="http://www.phpcloud.com/"&gt;Zend Developer Cloud&lt;/a&gt;). You can find the package and more information about this release &lt;a href="http://code.google.com/p/zend-sdk/downloads/list"&gt;here&lt;/a&gt;. The size of this package is ~90Mb (depending on your operating system) and users need to extract the package to run the product.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-KrRJ4ay0U20/TqnJVQe2MnI/AAAAAAAAHrQ/ZCLULW9Fk60/s1600/eclipse-php.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="242" src="http://2.bp.blogspot.com/-KrRJ4ay0U20/TqnJVQe2MnI/AAAAAAAAHrQ/ZCLULW9Fk60/s320/eclipse-php.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Zend is the provider of &lt;a href="http://www.zend.com/studio"&gt;Zend Studio 9.0&lt;/a&gt; and lead the Eclipse PHP Development Tools (PDT) project as well as the Zend SDK project. This Eclipse-based product will mainly be useful for developers working with PHP and their workflow includes tasks such as PHP/HTML/Javascript/CSS sources editing, debugging and deployment of Web applications.&lt;br /&gt;&lt;br /&gt;The following two minutes demo shows a simple create-deploy-debug cycle enabled by this package:&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/mERY_6Mujjo" width="420"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;My team will&amp;nbsp;definitely consider leveraging the Zend SDK to work with more solutions available in the market providing Integrated Development Environment (IDE) for PHP Developers such as Netbeans and &amp;nbsp;phpStorm, stay tuned!&lt;br /&gt;&lt;br /&gt;If you have any questions or comments, feel free to comment below.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-4811588549028335179?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/4811588549028335179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=4811588549028335179' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/4811588549028335179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/4811588549028335179'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/10/eclipse-and-others-to-enables-zend.html' title='Eclipse Continues to Support PHP and Zend Developer Cloud'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-KrRJ4ay0U20/TqnJVQe2MnI/AAAAAAAAHrQ/ZCLULW9Fk60/s72-c/eclipse-php.png' height='72' width='72'/><thr:total>3</thr:total><georss:featurename>224, Israel</georss:featurename><georss:point>31.046051 34.851612</georss:point><georss:box>29.3051945 32.32475650000001 32.7869075 37.3784675</georss:box></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-3055309478879950641</id><published>2011-10-25T06:10:00.000-07:00</published><updated>2011-10-26T11:03:09.669-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='phpcloud zend studio cloud best practices development'/><title type='text'>Pull Down an Application Created on phpCloud</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-aU0xbItXpl8/TqQPGE9hmoI/AAAAAAAAHp4/AJM7b_TEgTc/s1600/apps.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/-aU0xbItXpl8/TqQPGE9hmoI/AAAAAAAAHp4/AJM7b_TEgTc/s320/apps.png" width="320" /&gt;&lt;/a&gt;One of the most promising features in &lt;a href="http://phpcloud.com/"&gt;Zend Developer Cloud&lt;/a&gt; will be to deploy today's most-famous Web applications directly into your container, without being required to supply the application package. The list of pre-packed applications includes projects like &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt;, &lt;a href="http://www.joomla.org/"&gt;Joomla&lt;/a&gt;, &lt;a href="http://www.magentocommerce.com/"&gt;Magento&lt;/a&gt;, &lt;a href="http://wordpress.org/"&gt;Wordpress&lt;/a&gt; and a &lt;a href="http://framework.zend.com/"&gt;customized Zend Framework&lt;/a&gt;. Probably Zend will add more applications in the future (&lt;a href="http://getsatisfaction.com/zend_technologies"&gt;want to suggest one?&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;The obvious question is, what will be the best practice for working with an already deployed application and how to pull it down to your development environment?&lt;br /&gt;&lt;br /&gt;As a background there are two ways for managing an already deployed project, you can select either of the following options depending on your high level development workflows and your tools (ahch, ahch, Zend Studio supports both of them). &lt;i&gt;One important note that is applied for both solutions - you don't need to deploy the project once again. Just modify the content and make sure it's updated properly in the cloud&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Clone Application via Git Repository&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;One of the Easter Eggs hidden in this already-packed deployment feature is that once an application is deployed, a git repository is created so developers can clone it and later on push their content.&amp;nbsp;Use a command line tool or any development &amp;nbsp;environment to clone the application. Then use push to upstream git action to update the actual remote application.&lt;br /&gt;&lt;br /&gt;To&amp;nbsp;retrieve&amp;nbsp;the application Git Repository, go to you container overview page:&lt;br /&gt;https://my.phpcloud.com/container/&amp;lt;container-name&amp;gt;/overview and push the "git access" button. Use your container name and password as username and password when you make any operation with this repository.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-t6G6AbraDec/TqQXabr_PfI/AAAAAAAAHqA/WxQlRTijghI/s1600/git_link.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-t6G6AbraDec/TqQXabr_PfI/AAAAAAAAHqA/WxQlRTijghI/s1600/git_link.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This Git repository authentication is based on secured HTTP with the following details:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;URI: the path provided by Zend Developer cloud (see above)&lt;/li&gt;&lt;li&gt;User: container name&lt;/li&gt;&lt;li&gt;Password: container password&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="font-weight: bold; text-decoration: underline;"&gt;&lt;div style="display: inline !important;"&gt;&lt;b&gt;&lt;u&gt;Using &lt;a href="http://code.google.com/p/zend-sdk/"&gt;Zend SDK&lt;/a&gt;&lt;/u&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;You can use the latest Zend SDK to clone the code to your machine by running the &lt;a href="http://code.google.com/p/zend-sdk/wiki/ManagingProjects#Clone_Project"&gt;git clone command&lt;/a&gt; with your git repository parameters:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;&lt;b&gt;zend&amp;nbsp;clone project&lt;/b&gt;&lt;/span&gt; -r &lt;i&gt;&amp;lt;git-repository-url&amp;gt;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-u&amp;nbsp;&lt;/span&gt;&lt;i style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;user&amp;gt;&amp;nbsp;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-p&amp;nbsp;&lt;/span&gt;&lt;i style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;password&amp;gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Using Zend Studio 9.0&lt;/u&gt;&lt;/b&gt;:&lt;br /&gt;We are about to use a new feature added to Zend Studio in its latest release that enables you to clone a Git repository, start by &lt;b&gt;File&lt;/b&gt; | &lt;b&gt;New &lt;/b&gt;| &lt;b&gt;PHP Project from Git&lt;/b&gt;. A wizard will show up and you will need to enter the information required for this clone operation to happen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-uA_De1Smz4c/TqV4iGX3pXI/AAAAAAAAHqw/UDRhxJf8uIg/s1600/pull_down_git.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="260" src="http://1.bp.blogspot.com/-uA_De1Smz4c/TqV4iGX3pXI/AAAAAAAAHqw/UDRhxJf8uIg/s320/pull_down_git.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;Follow the wizard and hit "Finish". Once your project is cloned, you can start a debug session right-clicking on the index.php file and selecting "Debug as...", supply the full URL of the application and press OK.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-0EpuKvsJ39k/TqV4gBIgjII/AAAAAAAAHqg/1vUJ_DARGxA/s1600/launch.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="103" src="http://4.bp.blogspot.com/-0EpuKvsJ39k/TqV4gBIgjII/AAAAAAAAHqg/1vUJ_DARGxA/s320/launch.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Don't forget to open the SSH Tunnel by right-clicking on its node that available in the Targets view and selecting "&lt;b&gt;Open SSH Tunnel&lt;/b&gt;"&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-WlPKrAUH1pQ/TqV4hDpVvVI/AAAAAAAAHqk/v8LUToUwPs0/s1600/open_tunnel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-WlPKrAUH1pQ/TqV4hDpVvVI/AAAAAAAAHqk/v8LUToUwPs0/s1600/open_tunnel.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b style="font-size: x-large;"&gt;Download Application via SFTP Client&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The trivial way is to use an integrated SFTP client that supports download and upload actions to the SFTP server installed on your container. Remember the following:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;a href="http://1.bp.blogspot.com/-e-Ff9p5L7gU/TqRmJtsZBZI/AAAAAAAAHqI/rAh7LhNiflk/s1600/sftp_connection.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="264" src="http://1.bp.blogspot.com/-e-Ff9p5L7gU/TqRmJtsZBZI/AAAAAAAAHqI/rAh7LhNiflk/s320/sftp_connection.png" width="320" /&gt;&lt;/a&gt;&lt;li&gt;Authentication to the SFTP is made using the private key given the time you created the container or user. So you will need to add it to the private keys manager (in Zend Studio / Eclipse it's under Preferences &amp;gt; General &amp;gt; &amp;nbsp;Network Connections &amp;gt; SSH2. In the General Tab, add the private key file to the text field named: "Private Keys". You don't have to specify a username and password as you use the private key.&lt;/li&gt;&lt;li&gt;The application content is located under the directory named &amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;.apps/http/__default__/0/&lt;user-name&gt;&lt;i&gt;&amp;lt;user-name&lt;/i&gt;&lt;i&gt;&amp;gt;&lt;/i&gt;/1.0.0&lt;/user-name&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-5UpXt4QyMOA/TqRmMOn0z1I/AAAAAAAAHqQ/Ht4MoBetZVY/s1600/remote_server.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="177" src="http://2.bp.blogspot.com/-5UpXt4QyMOA/TqRmMOn0z1I/AAAAAAAAHqQ/Ht4MoBetZVY/s320/remote_server.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Hope this tutorial helps you to configure your development environment and you take advantage of it, but if you think there is a different (better) way don't hesitate to comment below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-3055309478879950641?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/3055309478879950641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=3055309478879950641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3055309478879950641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3055309478879950641'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/10/pull-down-application-created-on.html' title='Pull Down an Application Created on phpCloud'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-aU0xbItXpl8/TqQPGE9hmoI/AAAAAAAAHp4/AJM7b_TEgTc/s72-c/apps.png' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Derech Aba Hillel 12, Ramat Gan, Israel</georss:featurename><georss:point>32.0851559 34.8041806</georss:point><georss:box>32.0834744 34.8017131 32.08683739999999 34.806648100000004</georss:box></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-3608096139901501839</id><published>2011-10-22T15:04:00.000-07:00</published><updated>2011-10-23T12:40:12.371-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zend phpcloud studio developer cloud'/><title type='text'>Test Drive Zend Developer Cloud with Zend Studio 9</title><content type='html'>&lt;a href="http://www.zend.com/studio"&gt;Zend Studio&lt;/a&gt; and the &lt;a href="http://www.phpcloud.com/"&gt;Zend Developer Cloud&lt;/a&gt; support an integration environment for projects hosted in &lt;a href="http://www.github.com/"&gt;GitHub&lt;/a&gt;. This allows you use the cloud to deploy, debug and modify your Web applications hosted in GitHub &amp;nbsp;from Zend Studio.&lt;br /&gt;&lt;br /&gt;This workflow includes the following tasks:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Creating accounts for GitHub and the Zend Developer Cloud&amp;nbsp;&lt;/li&gt;&lt;li&gt;Developing a project hosted in Github with Zend Studio and the Zend Developer Cloud&lt;/li&gt;&lt;li&gt;Debugging your application&amp;nbsp;&lt;/li&gt;&lt;li&gt;Automatically updating your application in real time&lt;/li&gt;&lt;/ol&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Prerequisites&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An installed Zend Studio 9.0 (currently on beta) or above. Can be found in one of these pages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.zend.com/en/products/studio/studio-9-beta"&gt;Zend Studio 9 Beta&lt;/a&gt; page&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.zend.com/products/studio/"&gt;Zend Studio&lt;/a&gt; product page&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Creating an Account for Github and the Zend Developer Cloud&lt;/span&gt;&lt;/div&gt;In order to use GitHub and the Zend Developer Cloud, you must first set up valid accounts for both.&lt;br /&gt;&amp;nbsp;To create a GitHub account:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open the GitHub website at https://github.com/.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Click Plans, Pricing and Signup in the center of the welcome page. The Plans and Pricing page appears. Click Create a free account. The Signup for GitHub page appears.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Enter your account details in the requested fields, and click Create an account.&amp;nbsp;Your new account page appears.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Follow the instructions on the Github homepage and create a project and repository.&amp;nbsp;&lt;/li&gt;&lt;li&gt;For more information on creating a GitHub project go to help.github.com&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;To create a Zend Developer Cloud account:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;ol&gt;&lt;a href="http://3.bp.blogspot.com/-aZyYRM0AsqQ/TqM6QT1mrDI/AAAAAAAAHo8/0EUaCbs9kH4/s1600/create_container.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="176" src="http://3.bp.blogspot.com/-aZyYRM0AsqQ/TqM6QT1mrDI/AAAAAAAAHo8/0EUaCbs9kH4/s320/create_container.png" width="320" /&gt;&lt;/a&gt;&lt;li&gt;Open the Zend Developer Cloud website at http://www.phpcloud.com/.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Click Login here in the top-right corner of the homepage.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Click I do not have an account. The Create a new account page appears.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Enter your account details in the requested fields, and click Register.The Thank you for creating a Zend account page appears.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Please answer the questions that appear on the page and click Finish.The Log In page appears.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Enter your account details, and click Log In.The Zend Developer Cloud welcome appears.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Click Start now to begin working!Save your Zend Developer Cloud credentials as you will need them later in this workflow.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Working with a Project hosted in Github with Zend Studio and the Zend Developer Cloud &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once you have an existing GitHub and Zend Developer Cloud account, you can use the integration features embedded in Zend Studio and Zend Developer Cloud. You can develop, test and deploy a GitHub application on the cloud through Zend Studio.To create a new container:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;a href="http://1.bp.blogspot.com/-HdcyXaKLAqU/TqM6iV6GviI/AAAAAAAAHpE/fJzxGDyHD-o/s1600/ssh_key.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="185" src="http://1.bp.blogspot.com/-HdcyXaKLAqU/TqM6iV6GviI/AAAAAAAAHpE/fJzxGDyHD-o/s320/ssh_key.png" width="320" /&gt;&lt;/a&gt;&lt;li&gt;Go to the Zend Developer Cloud homepage and open your account and click Start Now on the welcome page.The Create Container page appears.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Enter the container name and password in the relevant fields, and click Create Container. The SSH Keypair created window appears.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Click Download private key in PEM format.Save the key on your machine as you will need to browse to it when connecting Zend Studio to your server.  Your container has been created and will appear under My Containers on the homepage.&lt;/li&gt;&lt;/ol&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Installing the GitHub Plugin into Zend Studio&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Zend Studio gives you the option to use only the plugins you need. For this tutorial, you will need GitHub.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;a href="http://3.bp.blogspot.com/-b3dXdnsX-Oo/TqM6-ZMFhEI/AAAAAAAAHpc/6A6nNwxRawg/s1600/install_git.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="197" src="http://3.bp.blogspot.com/-b3dXdnsX-Oo/TqM6-ZMFhEI/AAAAAAAAHpc/6A6nNwxRawg/s320/install_git.png" width="320" /&gt;&lt;/a&gt;&lt;li&gt;Go to Help | Welcome to open the Zend Studio Welcome screen.&amp;nbsp;&lt;/li&gt;&lt;li&gt;From the plugin list on the right, mark the Git and GitHub.&amp;nbsp;&lt;/li&gt;&lt;li&gt;When prompted, restart Zend Studio .When you re-open Zend Studio, the GitHub plugin is installed.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Creating a GitHub Project in Zend Studio&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To create a GitHub application in Zend Studio:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go to File | New |PHP Project from GitHub.The Create Project from GitHub dialog appears.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Enter the project name and your GitHub authentication details in the relevant fields, and click Refresh.Your application location will appear in the Location box or in the dropdown menu.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Click Next to move to the Application Deployment dialog.&lt;/li&gt;&lt;li&gt;Select Zend Application Deployment and create a new target by clicking on the PHPCloud icon . The Add Target dialog box appears&lt;/li&gt;&lt;li&gt;Enter your Zend.com credentials and browse to your PEM key in the relevant fields, and click Test Connection.&lt;/li&gt;&lt;li&gt;If no errors appear, click Finish. The Application Deployment section reappears with the target you added.&lt;/li&gt;&lt;li&gt;Make sure the ‘Add Application Deployment Support’ checkbox is marked&lt;/li&gt;&lt;li&gt;Click Finish.Your application will opens in the Zend Studio workspace.&lt;/li&gt;&lt;/ol&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-1aAG23_xrp8/TqM7ACoXMAI/AAAAAAAAHps/oiEafTEfJsU/s1600/wizard.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-1aAG23_xrp8/TqM7ACoXMAI/AAAAAAAAHps/oiEafTEfJsU/s400/wizard.png" width="388" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Deploying Your Application on the Zend Developer Cloud&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small; font-weight: normal;"&gt;Open your project in Zend Studio.The default file, deployment.xml, opens.&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-wz9ndCtUCQ4/TqM688BYFVI/AAAAAAAAHpM/Jm__lIN-Fb4/s1600/control.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="242" src="http://2.bp.blogspot.com/-wz9ndCtUCQ4/TqM688BYFVI/AAAAAAAAHpM/Jm__lIN-Fb4/s400/control.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small; font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;In the Testing area, click Launch a PHP ApplicationThe Launch PHP Application dialog opens with the default container you defined during the project creation selected, and your application’s URL&lt;/li&gt;&lt;li&gt;Click Finish and Yes when prompted about your container’s authenticity&lt;/li&gt;&lt;li&gt;Your application appears in your container’s page in the Zend Developer Cloud website, and opens in Zend Studio’s internal browser. Keep the internal browser with your application open as you will need it to automatically update the application.&lt;/li&gt;&lt;/ol&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-AppN8z7-wls/TqM69l8yCwI/AAAAAAAAHpU/jvbD5M-8b_0/s1600/deploy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="202" src="http://4.bp.blogspot.com/-AppN8z7-wls/TqM69l8yCwI/AAAAAAAAHpU/jvbD5M-8b_0/s320/deploy.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Debugging Your Application on the Zend Developer Cloud&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open your project in Zend Studio.The default file, deployment.xml, opens.&lt;/li&gt;&lt;li&gt;In the Testing area, click Launch a PHP Application in Debug Mode&lt;/li&gt;&lt;li&gt;Your application now appears in the Debug perspective and stops at the first breakpoint.To continue the debug click  .&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Automatically Updating Your Deployed Project in Real Time&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Zend Studio allows you to automatically update any changes you make in the source code of your application without redeploying the application from the start. Each change you make in the code will be automatically updated in your application on the server.&lt;br /&gt;To automatically update your application:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;In the PHP Explorer view, open your projects index.phptml file by going to application| views| scripts | index| index.phptml.The index.phptml file opens in the text editor.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Make a small textual change in the code and save the project.&lt;/li&gt;&lt;li&gt;Go to the internal browser of your project and click the Refresh icon .Your application updates with the changes applied.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Note: this article describes the workflow as available today for phpcloud developers. I am not sure if this will be the case in next versions, so you should get updated with the php cloud release notes.&amp;nbsp;It was written by the documentation team at Zend, if you have any comment feel free to post it below.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-3608096139901501839?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/3608096139901501839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=3608096139901501839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3608096139901501839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3608096139901501839'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/10/test-drive-zend-developer-cloud-with.html' title='Test Drive Zend Developer Cloud with Zend Studio 9'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-aZyYRM0AsqQ/TqM6QT1mrDI/AAAAAAAAHo8/0EUaCbs9kH4/s72-c/create_container.png' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Derech Aba Hillel 12, Ramat Gan, Israel</georss:featurename><georss:point>32.0851559 34.8041806</georss:point><georss:box>32.0834744 34.8017131 32.08683739999999 34.806648100000004</georss:box></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-8098808822510751450</id><published>2011-10-18T13:00:00.000-07:00</published><updated>2011-10-18T13:47:51.958-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='phpcloud zend webapi'/><title type='text'>First API released for phpcloud.com</title><content type='html'>In &lt;a href="http://ganoro.blogspot.com/2011/10/zend-launches-developer-cloud-sdk-to.html"&gt;previous&lt;/a&gt; &lt;a href="http://ganoro.blogspot.com/2011/10/better-together-github-and-zend.html"&gt;post&lt;/a&gt;, I presented the &lt;a href="http://my.phpcloud.com/"&gt;Zend Developer Cloud Platform&lt;/a&gt; and some thoughts about it. It's time for me to show some pretty cool API we added for developers who want to exploit all the goodies from it. In a nutshell, the Zend Developer Cloud API enables you to authenticate, list your containers details and get a very nice information about your requests, and of course to start debugging of specific events occurred lately.&lt;br /&gt;&lt;br /&gt;The first implementation using this API is the &lt;a href="http://goo.gl/ZLR8C"&gt;Zend Developer Cloud sniffer &lt;/a&gt; that "integrates into the PHP runtime and watches for various events such as errors, failing functions, slow scripts and database errors. This allows you to debug your application during development, helping you create a better application.". And the first implementation of this API is available under EPL at the &lt;a href="http://goo.gl/rlJLx"&gt;Zend SDK source code&lt;/a&gt;   In more details the following API is available:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;pre&gt;authenticate(u, p, _success, _error)&lt;/pre&gt;Authenticate to the Zend Developer Cloud service given the username and password. Once authentication is validated, a session id is retrieved and assigned as cookie&lt;/li&gt;&lt;li&gt;&lt;pre&gt;list(_success, _error)&lt;/pre&gt;Lists all containers for the signed in user&lt;/li&gt;&lt;li&gt;&lt;pre&gt;requestSummary(containerName, requestUid, _success, _error)&lt;/pre&gt;Retrieve information about a particular request's events and code tracing. The requestUid identifier is provided in a cookie that is set in the response to the particular request.&lt;/li&gt;&lt;li&gt;&lt;pre&gt;downloadAmf(containerName, amf, _success, _error)&lt;/pre&gt;Download the amf file specified by codetracing identifier&lt;/li&gt;&lt;li&gt;&lt;pre&gt;startDebug(containerName, issueId, eventGroupId, _success, _error)&lt;/pre&gt;Start a debug session for specific issue&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-8098808822510751450?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/8098808822510751450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=8098808822510751450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/8098808822510751450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/8098808822510751450'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/10/first-api-released-for-phpcloudcom.html' title='First API released for phpcloud.com'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total><georss:featurename>Santa Clara, CA, USA</georss:featurename><georss:point>37.3541079 -121.9552356</georss:point><georss:box>37.3036509 -122.0341996 37.404564900000004 -121.8762716</georss:box></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-5566987114763644629</id><published>2011-10-18T09:40:00.000-07:00</published><updated>2011-10-18T14:31:04.664-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zend developer cloud platform sdk'/><title type='text'>Better Together - Github and Zend Developer Cloud</title><content type='html'>The two Cloud-based services &lt;a href="http://www.phpcloud.com/"&gt;Zend Developer Cloud&lt;/a&gt; and &lt;a href="http://github.com/"&gt;GitHub&lt;/a&gt;  share some common traits. Although these services are loosely coupled, developers using one service can easily find interest in the other. For example the openness of the services to application developers world, the (so important) social&amp;nbsp;dimension&amp;nbsp;and the fact that it is just easy to use through a set of APIs and tools, make these two services fun to work with... together.&lt;br /&gt;&lt;br /&gt;It takes four command lines to see the value (you will need to install &lt;a href="http://code.google.com/p/zend-sdk/"&gt;Zend SDK&lt;/a&gt; first):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="Apple-style-span" style="color: #6fa8dc;"&gt;# clone an example 'hello tweet' project from a github repository&lt;/span&gt;&lt;br /&gt;$ &lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;zend clone project&lt;/span&gt;&lt;/b&gt; -r git://github.com/zendcon/hellotweet.git&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #6fa8dc;"&gt;# define a Developer Cloud container to host your application&lt;/span&gt;&lt;br /&gt;$ &lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;zend add target&lt;/span&gt;&lt;/b&gt; -d &lt;i&gt;account-name&lt;/i&gt;:&lt;i&gt;account-password&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #6fa8dc;"&gt;# set working directory&lt;/span&gt;&lt;br /&gt;$ &lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;cd &lt;/span&gt;&lt;/b&gt; hellotweet&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #6fa8dc;"&gt;# deploy the newly created application to the defined target&lt;/span&gt;&lt;br /&gt;$ &lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;zend deploy application&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The result is available as a ready to use Web application&amp;nbsp;&lt;a href="http://royganor.my.phpcloud.com/zendcon/"&gt;http://royganor.my.phpcloud.com/zendcon/&lt;/a&gt;&amp;nbsp;and since I made the container public anyone can create the same container through&amp;nbsp;http://my.phpcloud.com/container/create/snapshot/royganor-snapshot-20111018054539&lt;br /&gt;&lt;br /&gt;But there are more similarities, let's review some of them:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Identities are open and visible between developers&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;&lt;a href="http://4.bp.blogspot.com/-gb9zxLMeY84/Tp0eBPmzzNI/AAAAAAAAHoc/wmfH0YhpANA/s1600/zc1.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="59" src="http://4.bp.blogspot.com/-gb9zxLMeY84/Tp0eBPmzzNI/AAAAAAAAHoc/wmfH0YhpANA/s320/zc1.png" width="320" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/-283XL5EuyFQ/Tp0d99WKc_I/AAAAAAAAHoI/R4vyxfJdYxM/s1600/git1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="103" src="http://2.bp.blogspot.com/-283XL5EuyFQ/Tp0d99WKc_I/AAAAAAAAHoI/R4vyxfJdYxM/s200/git1.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Applications and repositories are listed:&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;&lt;a href="http://4.bp.blogspot.com/-AKfF2Mp7SxY/Tp0eBVE0WDI/AAAAAAAAHok/SbIbCbapJ5w/s1600/zc2.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="89" src="http://4.bp.blogspot.com/-AKfF2Mp7SxY/Tp0eBVE0WDI/AAAAAAAAHok/SbIbCbapJ5w/s320/zc2.png" width="320" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/-dKgYcycuj5k/Tp0eAZQGXnI/AAAAAAAAHoQ/3Cit4oD9DLc/s1600/git2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="126" src="http://1.bp.blogspot.com/-dKgYcycuj5k/Tp0eAZQGXnI/AAAAAAAAHoQ/3Cit4oD9DLc/s200/git2.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Social activities are available for developers who want/need&amp;nbsp;continuous&amp;nbsp;and fast feedback&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-JfT6onl7lmQ/Tp0eBti6LWI/AAAAAAAAHoo/FfjifKyUmBU/s1600/zc3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="115" src="http://2.bp.blogspot.com/-JfT6onl7lmQ/Tp0eBti6LWI/AAAAAAAAHoo/FfjifKyUmBU/s400/zc3.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-3PrQP5RawQg/Tp0eA-6CN2I/AAAAAAAAHoY/oaNnx7AjrrM/s1600/git3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="37" src="http://3.bp.blogspot.com/-3PrQP5RawQg/Tp0eA-6CN2I/AAAAAAAAHoY/oaNnx7AjrrM/s400/git3.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you are interested in more information about specific aspect of the solution, share it here and I will answer you.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-5566987114763644629?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/5566987114763644629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=5566987114763644629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/5566987114763644629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/5566987114763644629'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/10/better-together-github-and-zend.html' title='Better Together - Github and Zend Developer Cloud'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-gb9zxLMeY84/Tp0eBPmzzNI/AAAAAAAAHoc/wmfH0YhpANA/s72-c/zc1.png' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Santa Clara, CA, USA</georss:featurename><georss:point>37.3541079 -121.9552356</georss:point><georss:box>37.3036509 -122.0341996 37.404564900000004 -121.8762716</georss:box></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-3100630104267323768</id><published>2011-10-18T08:43:00.000-07:00</published><updated>2011-10-18T08:43:14.713-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zend developer cloud platform sdk'/><title type='text'>Zend Launches Developer Cloud &amp; SDK To Give Developers Access to Web Applications Market</title><content type='html'>&lt;a href="http://www.zend.com/"&gt;Zend&lt;/a&gt;, The PHP company and the place I work for the past 5 years has &lt;a href="http://www.zend.com/en/products/server/deployment"&gt;made some significant steps&lt;/a&gt; over the last year to enable Web developers to deliver&amp;nbsp;scalable Web applications.&amp;nbsp;As part of our strategy Zend has been full-steam ahead on creating better ways for Web developers to make application deployed on a self-served container which can be scaled up and&amp;nbsp;down which have been traditionally difficult areas for PHP developers to execute effectively.&lt;br /&gt;&lt;br /&gt;In May the &lt;a href="http://www.zend.com/server"&gt;Zend Server&lt;/a&gt; team has published a major update to the product with the ability&amp;nbsp;to create application packages&amp;nbsp;that consist of source code, metadata and scripts,&amp;nbsp;and of course deploy applications on any number of servers. At about the same time, my team has worked to deliver tools supporting these capabilities.&lt;br /&gt;&lt;br /&gt;Today, Zend is adding the remaining piece, again utilizing its current product line. The company today announced that it is releasing the &lt;a href="http://my.phpcloud.com/"&gt;Zend Developer Cloud&lt;/a&gt;&amp;nbsp;and a software development kit (SDK) called &lt;a href="http://zend-sdk.googlecode.com/"&gt;Zend SDK&lt;/a&gt; to enable Web developer build their applications on a robust platform in a very short time. This is of interest for the very reason that this service is given for free by Zend.&lt;br /&gt;&lt;br /&gt;When it comes to entering the PHP applications market like &lt;a href="http://www.wordpress.org/"&gt;Wordpress&lt;/a&gt;, &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt;, &lt;a href="http://www.magentocommerce.com/"&gt;Magento&lt;/a&gt;, &lt;a href="http://framework.zend.com/"&gt;Zend Framework&lt;/a&gt; apps, developers are met with a number of obstacles, including environment requirements and unstructured development tools. The advantage then, of Zend′s new platform and SDK is that now developers have streamlined workflows to develop their applications.&lt;br /&gt;&lt;br /&gt;To demonstrate how easy it is to create Web applications with the new tools, I created a GitHub repository for a #zendcon tweeter channel &amp;nbsp;&lt;a href="https://github.com/zendcon/hellotweet"&gt;https://github.com/zendcon/hellotweet&lt;/a&gt;&amp;nbsp;and made it available on my container at&amp;nbsp;&lt;a href="http://royganor.my.phpcloud.com/zendcon/"&gt;http://royganor.my.phpcloud.com/zendcon/&lt;/a&gt;&amp;nbsp;in about a couple of minutes.&lt;br /&gt;&lt;br /&gt;Stay tune for more posts and information about this news.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="background: black; clear: both; text-align: center;"&gt;&lt;img border="0" src="http://static.phpcloud.com/images/phpcloud-logo-transparency-with-TM.png" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-3100630104267323768?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/3100630104267323768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=3100630104267323768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3100630104267323768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3100630104267323768'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/10/zend-launches-developer-cloud-sdk-to.html' title='Zend Launches Developer Cloud &amp; SDK To Give Developers Access to Web Applications Market'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total><georss:featurename>Santa Clara, CA, USA</georss:featurename><georss:point>37.3541079 -121.9552356</georss:point><georss:box>37.3036509 -122.0341996 37.404564900000004 -121.8762716</georss:box></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-3219666547322240364</id><published>2011-09-28T07:58:00.000-07:00</published><updated>2011-09-28T07:58:22.814-07:00</updated><title type='text'>Zend Studio 9 Early Access build #262 now available</title><content type='html'>In a &lt;a href="http://goo.gl/jVDCl"&gt;previous post&lt;/a&gt; I demoed how Zend Studio 9 is going to make Web application development much easier and faster.I am pleased to announce that the Early Access (build #262) is now available so early adopters can put their hands on and tell us about their experience with the new product.&lt;br /&gt;&lt;br /&gt;Feel free to post your feedback here or in &lt;a href="http://forums.zend.com/"&gt;Zend Studio forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://beta.zend.com/studio-eclipse/9.0.0/ZendStudio-9.0.0.msi"&gt;For Windows &lt;/a&gt; (212 Mb)  &lt;br /&gt;&lt;a href="http://beta.zend.com/studio-eclipse/9.0.0/ZendStudio-without-JRE-9.0.0.msi"&gt;For Windows without JRE&lt;/a&gt; (182Mb) &lt;br /&gt;&lt;a href="http://beta.zend.com/studio-eclipse/9.0.0/ZendStudio-9.0.0.dmg"&gt;For Mac&lt;/a&gt; (172Mb) &lt;br /&gt;&lt;a href="http://beta.zend.com/studio-eclipse/9.0.0/ZendStudio-9.0.0-x86.tar.gz"&gt;For Linux 32-bit&lt;/a&gt; (173Mb) &lt;br /&gt;&lt;a href="http://beta.zend.com/studio-eclipse/9.0.0/ZendStudio-9.0.0-x86_64.tar.gz"&gt;For Linux 64-bit&lt;/a&gt; (176Mb) &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-3219666547322240364?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/3219666547322240364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=3219666547322240364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3219666547322240364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3219666547322240364'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/09/zend-studio-9-early-access-build-262.html' title='Zend Studio 9 Early Access build #262 now available'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-7925584055949422908</id><published>2011-09-27T08:18:00.000-07:00</published><updated>2011-09-27T08:18:05.214-07:00</updated><title type='text'>Agile Web Applications Development with Eclipse Indigo and Zend Studio 9 Early Access</title><content type='html'>It's been a couple of weeks now since the release of &lt;a href="http://www.eclipse.org/indigo"&gt;Eclipse Indigo&lt;/a&gt; and other Application Servers IDEs based on it.&amp;nbsp;Now, it's time for the Eclipse PDT and Zend Studio team to refresh their products with great features that &amp;nbsp;lots of Web developers will find useful such as &lt;a href="http://www.github.com/"&gt;Github&lt;/a&gt; support, &lt;a href="http://www.zend.com/products/server/deployment"&gt;Application deployment&lt;/a&gt; support, better formatting and source editing tools for PHP and JS developers.&lt;br /&gt;&lt;br /&gt;In this short screen cast you will find a quick review of the features available for the developers working with it.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/TnqcKIdJQps" width="420"&gt;&lt;/iframe&gt;&lt;br/&gt;Stay tune and wait for the official release which is going to happen soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-7925584055949422908?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/7925584055949422908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=7925584055949422908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/7925584055949422908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/7925584055949422908'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/09/agile-web-applications-development-with.html' title='Agile Web Applications Development with Eclipse Indigo and Zend Studio 9 Early Access'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/TnqcKIdJQps/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-9032282406520040799</id><published>2011-09-14T06:05:00.000-07:00</published><updated>2011-09-18T10:27:32.718-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git github zend sdk server'/><title type='text'>"git clone" and "application deploy" - Perfect Match</title><content type='html'>It's amazing, you work on a pretty cool project for a couple of months now and you find out that little has been posted about it. &lt;br /&gt;So here it is... meet &lt;a href="http://goo.gl/s8yv8"&gt;Zend SDK&lt;/a&gt;. There are many interesting ideas behind this SDK but in this post I am going to focus on how to get started with it. &lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 24px; font-weight: bold;"&gt;So... what is Zend SDK?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you build a Web Application or even a CMS Web site in PHP you probably have asked yourself a couple of times what best practices should I use to develop, publish and discover applications written in PHP. Amazingly, in most modern platforms like Java, Ruby, Flash, Android and iOS it is common to find a dominant set of tools and workflows to streamline development processes. Things like creating application resources, deploying applications, configuring application hosts and even creating a repository of applications that allows others to discover it. However for several reasons PHP developers don't have one way to do such things, just as an example take a look at the famous PHP applications, frameworks and CMSs solutions in the market. This is exactly where the SDK is aiming.&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;Zend SDK includes a variety of tools that help you create, develop, publish and discover PHP Web applications.&lt;/i&gt;&lt;/blockquote&gt;Hence, you can find command line tool, Eclipse plugin, Hudson/Jenkins, Phing, Ant and other tools in our target environments. &lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 24px; font-weight: bold;"&gt;Step 1: Clone your application from a Git repository&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First thing first, you will need to fetch the application source code and prepare it for the target environment, to do so you can use the "clone project" command line. With this command a project from a git repository is cloned to your local machine and additional deployment descriptor resource is added that will assist you with hosting this application on targets.&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;zend clone project -r https://ganoro@github.com/ganoro/ExampleProject.git&lt;/pre&gt;&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-9Tirz04yLu0/TnClGxb19fI/AAAAAAAAHn8/07y_f8zqeGk/s1600/github.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://2.bp.blogspot.com/-9Tirz04yLu0/TnClGxb19fI/AAAAAAAAHn8/07y_f8zqeGk/s640/github.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Alternatively you can create a local empty project based on the MVC of Zend Framework by clicking&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;zend create project -n helloworld&lt;/pre&gt;&lt;/blockquote&gt;If you have already fetched your project (with SVN, CVS or other source control version) you can just update the project with the files required to help you with the deployment process:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;zend update project -d &lt;/pre&gt;&lt;/blockquote&gt;for more information on project management, read this &lt;a href="http://code.google.com/p/zend-sdk/wiki/ManagingProjects"&gt;wiki&lt;/a&gt; page which goes over the alternatives and provides extra details about the possible arguments of these commands. If you haven't installed the SDK go to &lt;a href="http://code.google.com/p/zend-sdk/wiki/InstallSDK"&gt;this page&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 24px; font-weight: bold;"&gt;Step 2: Add a remote target&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is the easy part, you will need a target that will host your applications. I assume you installed &lt;a href="http://www.zend.com/en/products/server/"&gt;Zend Server 5.5&lt;/a&gt; and it is accessible by your machine. If not, you will need to install it either locally or on a remote machine.&lt;br /&gt;&lt;br /&gt;For example adding a remote target with address 10.1.2.34 with a given secret key is possible by&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;zend add target -h http://10.1.2.34 -k sdk.roy -s cc14b445ad6ed9041d936b7f363a8e5a525275d3960dbb373f35e97e2abcdab2 &lt;/pre&gt;&lt;/blockquote&gt;This command line will add a new target to the list with the specified API key, for more details on API keys see &lt;a href="http://files.zend.com/help/Zend-Server/working_with_api_keys.htm"&gt;this page&lt;/a&gt;. After installing this target you can use the list target and list applications to see the results:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-YEXK8cc8beo/TnCla24LoGI/AAAAAAAAHoA/-vZgqsJWT0w/s1600/zs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-YEXK8cc8beo/TnCla24LoGI/AAAAAAAAHoA/-vZgqsJWT0w/s1600/zs.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Example output for a listing command is (read more on targets management &lt;a href="http://code.google.com/p/zend-sdk/wiki/ManagingTargets"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;royganor@ubuntu:~$ zend list targets -s&lt;br /&gt;Available Zend Targets:&lt;br /&gt;id: 0&lt;br /&gt;	Host: https://10.1.2.34&lt;br /&gt;	Key: Zend 	Status: connected&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-size: 24px; font-weight: bold;"&gt;Step 3: Deploy your application&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now that your application is ready and your target is configured properly, we can go directly to the fun part. deploying you application to the host.&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;royganor@ubuntu:~$ zend deploy application&lt;/pre&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-size: 24px; font-weight: bold;"&gt;Step 4: Test it!&lt;/span&gt;&lt;br /&gt;Now you are ready to see if the application deployed successfully by running a stats command or just going to the browser and address the application URL.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-YEZGKpGIW7Q/TnCmPnUpBwI/AAAAAAAAHoE/ZWAQhzV5ZEA/s1600/hw.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191" src="http://1.bp.blogspot.com/-YEZGKpGIW7Q/TnCmPnUpBwI/AAAAAAAAHoE/ZWAQhzV5ZEA/s400/hw.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;royganor@ubuntu:~$ zend list applications&lt;br /&gt;Id:                     67&lt;br /&gt;Application Name:       drupal&lt;br /&gt;User Application Name:  http://default-server/ExampleProject&lt;br /&gt;Base URL:               http://&lt;default-server&gt;/ExampleProject&lt;br /&gt;Installed Location:     /home/royganor/.apps/http/__default__/0/ExampleProject/1.0.0&lt;br /&gt;Status:                 deployed&lt;br /&gt;Servers:&lt;br /&gt;	id:               0&lt;br /&gt;	Deployed Version: 1.0.0&lt;br /&gt;	Status:           deployed&lt;br /&gt;Deployed Versions:	1.0.0&lt;br /&gt;&lt;/default-server&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 24px; font-weight: bold;"&gt;Step 5: What's next?&lt;/span&gt;&lt;br /&gt;In next posts more interesting aspects of the SDK will be covered like creating repositories and publishing your applications to others.As usual if you want to. Till next time, I will really appreciate your feedback on &lt;a href="http://code.google.com/p/zend-sdk/"&gt;Zend SDK&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://code.google.com/p/zend-sdk/logo?cct=1312462528" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://code.google.com/p/zend-sdk/logo?cct=1312462528" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-9032282406520040799?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/9032282406520040799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=9032282406520040799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/9032282406520040799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/9032282406520040799'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/09/git-clone-and-application-deploy.html' title='&amp;quot;git clone&amp;quot; and &amp;quot;application deploy&amp;quot; - Perfect Match'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-9Tirz04yLu0/TnClGxb19fI/AAAAAAAAHn8/07y_f8zqeGk/s72-c/github.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-3693643549037966246</id><published>2011-05-21T13:42:00.000-07:00</published><updated>2011-05-22T02:58:40.961-07:00</updated><title type='text'>Windows Registry API for Windows (plus 64-bit)</title><content type='html'>Lately I was required to provide a solution that needs access to the Windows Registry Keys. I could easily use the command line tools for this end (reg export or something like this). For some reason I found several glitches with this method, mainly around performance and parsing incompatibilities. So I decided to use this library JNIRegistry - "Windows Registry API Native Interface" (http://www.trustice.com/java/jnireg/index.shtml).&lt;br /&gt;&lt;br /&gt;Problem is that it is only compatible with 32 bit and if you are under 64 bit Java, it won't be any good for you. So I had to compile this JNIRegistry library for 64bit. I used Visual Studio 2010 with the Microsoft SDKs 7.1 to compile it with x86_64 compiler. It was a damn nice adventure...&lt;br /&gt;&lt;br /&gt;So if you get this error message "ICE_JNIRegistry.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform" you should probably use the second one here:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://zend-sdk.googlecode.com/svn/trunk/org.zend.sdk/lib/x86/ICE_JNIRegistry.dll"&gt;ICE_JNIRegistry.dll for 32 bit&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://zend-sdk.googlecode.com/svn/trunk/org.zend.sdk/lib/x86_64/ICE_JNIRegistry.dll"&gt;ICE_JNIRegistry for 64bit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. &lt;a href="http://zend-sdk.googlecode.com/svn/trunk/org.zend.sdk/lib/registry.jar"&gt;The JNIRegistry library jar&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Enjoy ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;EDIT: one thing I found while using this library under 64bit. you will need to add the "WOW6432node" child if you look for a software-type key. See this article from MS &lt;a href="http://support.microsoft.com/kb/896459"&gt;http://support.microsoft.com/kb/896459&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-3693643549037966246?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/3693643549037966246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=3693643549037966246' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3693643549037966246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3693643549037966246'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/05/windows-registry-api-for-windows-plus.html' title='Windows Registry API for Windows (plus 64-bit)'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-2006593388225638741</id><published>2011-05-03T00:09:00.000-07:00</published><updated>2011-05-03T05:11:06.606-07:00</updated><title type='text'>Project Planning Thoughts on Flash Builder for PHP 4.5</title><content type='html'>Wow! it was a real pleasure to take part in and lead the release of &lt;a href="http://www.zend.com/en/products/studio/flash-builder-for-php/"&gt;Adobe Flash Builder for PHP product&lt;/a&gt;. FBPHP is actually an &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;-based product that includes both Flash Builder and Zend Studio components and supports the development process of Web and Mobile applications that require server/client communication. It can be a real time saver for startups and large scale companies as it streamlines the process of designers, interactive designers and server side developers in a joint product by Adobe and Zend.&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The following two tutorials provide a great overview of how much this product is useful and fun:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Web Application Development - &lt;a href="http://files.zend.com/help/Flash-Builder-for-PHP/Getting-Started/Web/build_a_web_(php)_application.htm"&gt;http://goo.gl/EOw2d&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Mobile Application Development - &lt;a href="http://files.zend.com/help/Flash-Builder-for-PHP/Getting-Started/Mobile/build_a_mobile_(php)_application.htm"&gt;http://goo.gl/fRkDt&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;I would like to give a quick glance on what was required and achieved during the last 4 months, the team obstacles and some tasks repository analysis.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Project Goals&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Provide an integrated solution to speed the development of Flex and PHP applications for the web or for mobile&lt;/li&gt;&lt;li&gt;Lower the barrier to entry for getting set up to use Flash Builder and Zend Studio together via an easy installation process&lt;/li&gt;&lt;li&gt;Streamline the process for creating Flex and PHP projects that are related to one another&lt;/li&gt;&lt;li&gt;Improve the data connectivity workflow for connecting Flex apps to PHP services&lt;/li&gt;&lt;li&gt;Enable developers to debug client-side Flex code and server-side PHP code simultaneously &lt;/li&gt;&lt;li&gt;Meet a tight schedule and integration deadlines for both Adobe Flash Builder and Zend Studio teams.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Quality&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Features tested – Installation, Serialization, Flex Web/PHP Applications incl. run/debug, Flex Mobile/PHP Application incl. run/debug, Introspection, Remote PHP Server Support, Zend Studio regression&lt;/li&gt;&lt;li&gt;Platforms tested – Windows 7 32/64 bit , Vista 32/64 bit , Windows XP SP3 , MAC OSX 10.6&lt;/li&gt;&lt;li&gt;PHP Servers tested – Zend Server v5.1, MAMP and XAMP&lt;/li&gt;&lt;li&gt;Browsers tested – Firefox , Internet Explorer , Safari, Chrome&lt;/li&gt;&lt;li&gt;Devices tested – Motorola Droid 2, Samsung Galaxy S&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Bug Repository Analysis&lt;/h2&gt;Powered by 6 developers and 4 quality engineers this project had an overall of 700 issues in the system including tasks, sub tasks, bugs, features and improvements. We had to go through a triage and privatization process on a daily basis and create a weekly process which enables short DEV2QA cycles. The result (below) shows that we had an intense two months of development and 2 months of quality work until we actually started the release cycle that took about a month. The release cycle gave us the ability to stabilize our product quality and make sure we have no misunderstanding with the integration level with Adobe and with the product managers of the product.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://farm6.static.flickr.com/5061/5683389822_1ecf3e4ba3.jpg" border="0" alt="Created vs. Resolved" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;h2&gt;Pre-release Advisory Team&lt;/h2&gt;&lt;/div&gt;&lt;span&gt;&lt;ul&gt;&lt;li&gt;177 registered participants, 10-12 very active forum-posters.&lt;/li&gt;&lt;li&gt;&amp;gt; 400 posts to prerelease forums.&lt;/li&gt;&lt;li&gt;&amp;gt; 25 good quality bugs logged.&lt;/li&gt;&lt;li&gt;Most issues either fixed or had a workaround and a few enhancements suggested for future releases&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Takeaways&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Write your requirements and invest time in polishing and updating the docs - it's not a waste of time. It can take a month and people can start building the building blocks, but to have the solution ready on time you must have a document that represents what you are going to implement from beginning to the end. &lt;/li&gt;&lt;li&gt;Plan a one month quality term, this will significantly improve your predication to deliver a high-quality product. It will not reduce the stress around release cycle but it will reduce the risk in hitting the final date. During this month, developers are not allowed to contribute code to the project unless there is a specific requirement for that.&lt;/li&gt;&lt;li&gt;Our advisory team was very helpful, it is more than important to be responsive and just listen to what they are saying. You are not smarter than they are.&lt;/li&gt;&lt;li&gt;Create a positive spirit in the team and set goals that makes sense to all people.   &lt;/li&gt;&lt;/ul&gt;Thanks to Adobe Flash Builder teams that was very communicative and helpful and showed us the way when integration failed.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-2006593388225638741?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/2006593388225638741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=2006593388225638741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/2006593388225638741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/2006593388225638741'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/05/project-planning-thoughts-on-flash.html' title='Project Planning Thoughts on Flash Builder for PHP 4.5'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm6.static.flickr.com/5061/5683389822_1ecf3e4ba3_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-1471205102814893943</id><published>2011-03-13T09:09:00.000-07:00</published><updated>2011-03-13T10:11:43.723-07:00</updated><title type='text'>Easter Egg for Zend/PHP Developers</title><content type='html'>One among &lt;a href="http://static.zend.com/topics/ZS-510-ReleaseNotes-20110309.txt"&gt;many new interesting Zend Server 5.1 features&lt;/a&gt; is an open "RESTful Web API that allows automation of the management and deployment of Zend Server and Zend Server Cluster Manager, and integration with other Zend or 3rd party software". It basically provides an easy way to control your deployment of Web Servers remotely and set it up correctly for your application when you scale up and down. For example one can remotely configure new Web application server, reset or even build a fully functional cluster by utilizing this new open API.&lt;br /&gt;&lt;br /&gt;Since most of the configuration and deployment tools these days have a Java-based plugins mechanism (such as Jenkins / Eclipse) I thought it would be cool if there will be a way to extend these tools with some of the new Web API features. I am proud to introduce &lt;a href="http://code.google.com/p/zend-webapi/"&gt;Zend WebAPI project&lt;/a&gt; that is hosted in Google Code. Zend Web API SDK for Java provides a Java API for Zend Server infrastructure services, making it even easier for developers to build applications that tap into the scalable, and reliable Zend Server product.&lt;br /&gt;&lt;br /&gt;You can find a &lt;a href="http://code.google.com/p/zend-webapi/wiki/GettingStartedGuide"&gt;getting started page&lt;/a&gt; that explains how to work with this library. This tutorial is based on the following steps:&lt;br /&gt;1. Signing up for Zend Web API Services&lt;br /&gt;2. Getting your Zend Web API Security Credentials&lt;br /&gt;3. View Your Zend Web API Security Credentials&lt;br /&gt;4. Using the Zend Web API SDK for Java&lt;br /&gt;5. To run a sample you can use this code:&lt;br /&gt;&lt;br /&gt;&lt;pre style="color:#000000;background:#ffffff;"&gt;&lt;span style="color:#3f5fbf; "&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3f5fbf; "&gt; &lt;/span&gt;&lt;span style="color:#7f9fbf; font-weight:bold; "&gt;*&lt;/span&gt;&lt;span style="color:#3f5fbf; "&gt; Create the credential object&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3f5fbf; "&gt; */&lt;/span&gt;&lt;br /&gt;WebApiCredentials credentials = new BasicCredentials(KEY_NAME, SECRET_KEY)&lt;span style="color:#808030; "&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3f5fbf; "&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3f5fbf; "&gt; &lt;/span&gt;&lt;span style="color:#7f9fbf; font-weight:bold; "&gt;*&lt;/span&gt;&lt;span style="color:#3f5fbf; "&gt; Creates the Web API client object&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3f5fbf; "&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#800000; font-weight:bold; "&gt;final&lt;/span&gt; WebApiClient webApiClient = new WebApiClient(credentials, HOST)&lt;span style="color:#808030; "&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3f5fbf; "&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3f5fbf; "&gt; &lt;/span&gt;&lt;span style="color:#7f9fbf; font-weight:bold; "&gt;*&lt;/span&gt;&lt;span style="color:#3f5fbf; "&gt; Retrieve system info&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3f5fbf; "&gt; */&lt;/span&gt;&lt;br /&gt;SystemInfo systemInfo = webApiClient.getSystemInfo()&lt;span style="color:#808030; "&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3f5fbf; "&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3f5fbf; "&gt; &lt;/span&gt;&lt;span style="color:#7f9fbf; font-weight:bold; "&gt;*&lt;/span&gt;&lt;span style="color:#3f5fbf; "&gt; Print license info from retrieved system info&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3f5fbf; "&gt; */&lt;/span&gt;&lt;br /&gt;System.out.println("License order number:" + systemInfo.getLicenseInfo().getOrderNumber())&lt;span style="color:#808030; "&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I am really anxious to see what tools we will built on top of these open API that can make a difference in the world of high availability demand from the market.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://twitter.com/shevron"&gt;Shahar Evron (@shevron)&lt;/a&gt;  who has guided me through the API aspects!&lt;br /&gt;&lt;br /&gt;If you find this useful I would be happy to get some feedback and even new contribution!&lt;br /&gt;&lt;br /&gt;As an example for utilizing this library I created an Eclipse plugin that is used as a "remote controller" for your Zend Server &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://code.google.com/p/zend-webapi"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 355px; height: 167px;" src="http://farm6.static.flickr.com/5131/5519536239_4cbc2088bb.jpg" border="0" alt="For more details click here" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-1471205102814893943?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/1471205102814893943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=1471205102814893943' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/1471205102814893943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/1471205102814893943'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/03/easter-egg-for-zendphp-developers.html' title='Easter Egg for Zend/PHP Developers'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm6.static.flickr.com/5131/5519536239_4cbc2088bb_t.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-9068957259419774776</id><published>2011-02-08T05:57:00.000-08:00</published><updated>2011-02-08T06:52:21.545-08:00</updated><title type='text'>Public/Private Key Encryption with Java and PHP</title><content type='html'>Lately, I was struggling with the differences between PHP and Java HMAC encryption methods. Although encryption is rarely used in my most day to day programming tasks, it can probably be useful for people who may need it in the future.&lt;br /&gt;&lt;br /&gt;In specific &lt;a href="http://en.wikipedia.org/wiki/HMAC"&gt;HMAC-SHA256&lt;/a&gt; is used "for calculating a message authentication code (MAC) involving a cryptographic hash function in combination with a secret key". An interesting scenario is that a service that is hosted in a PHP Web application Server interacts with a Java client application client that consumes this service (for example Android mobile application). Since the client knows its private key it can encrypt an agreed message so the server then can verify with the given encrypted signature and authenticate the client.&lt;br /&gt;&lt;br /&gt;Enough with talking, let's see how it is done in Java vs. PHP with the following code snippets:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/**&lt;br /&gt; * Encryption of a given text using the provided secretKey&lt;br /&gt; * &lt;br /&gt; * @param text&lt;br /&gt; * @param secretKey&lt;br /&gt; * @return the encoded string&lt;br /&gt; * @throws SignatureException&lt;br /&gt; */&lt;br /&gt;public static String hashMac(String text, String secretKey)&lt;br /&gt;  throws SignatureException {&lt;br /&gt;&lt;br /&gt; try {&lt;br /&gt;  Key sk = new SecretKeySpec(secretKey.getBytes(), HASH_ALGORITHM);&lt;br /&gt;  Mac mac = Mac.getInstance(sk.getAlgorithm());&lt;br /&gt;  mac.init(sk);&lt;br /&gt;  final byte[] hmac = mac.doFinal(text.getBytes());&lt;br /&gt;  return toHexString(hmac);&lt;br /&gt; } catch (NoSuchAlgorithmException e1) {&lt;br /&gt;  // throw an exception or pick a different encryption method&lt;br /&gt;  throw new SignatureException(&lt;br /&gt;    "error building signature, no such algorithm in device "&lt;br /&gt;      + HASH_ALGORITHM);&lt;br /&gt; } catch (InvalidKeyException e) {&lt;br /&gt;  throw new SignatureException(&lt;br /&gt;    "error building signature, invalid key " + HASH_ALGORITHM);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;where HASH_ALGORITHM is defined as&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;private static final String HASH_ALGORITHM = "HmacSHA256";&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;      &lt;br /&gt;Where in PHP, it's even simpler:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;echo hash_hmac('sha256', $message, $secretKey, false);&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-9068957259419774776?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/9068957259419774776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=9068957259419774776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/9068957259419774776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/9068957259419774776'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/02/publicprivate-encryption-with-java-and.html' title='Public/Private Key Encryption with Java and PHP'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-2831636622442910618</id><published>2011-01-12T03:40:00.000-08:00</published><updated>2011-01-12T04:03:50.349-08:00</updated><title type='text'>Eclipse PDT and Zend Studio Awarded 'Best PHP IDE' in InfoWorld 2011 Technology of the Year Awards</title><content type='html'>What is common to Apple iPad, Google Android, VMWare vSphere and Eclipse PDT/Zend Studio?&lt;br /&gt;&lt;br /&gt;I have some &lt;a href="http://www.infoworld.com/d/infoworld/infoworlds-2011-technology-the-year-award-winners-285&amp;current=18&amp;last=17"&gt;good news for the Eclipse PDT and Zend Studio team&lt;/a&gt;. The InfoWorld Test Center has chosen our tools, Eclipse PHP Development Tools and Zend Studio for one of our 2011 Technology of the Year Awards (Best PHP IDE). The award is based on the , &lt;br /&gt;&lt;a href="http://www.infoworld.com/d/developer-world/infoworld-review-eight-php-power-tools-737"&gt;comparative review by Rick Grehan&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;According to InfoWorld their Technology of the Year Awards, chosen annually by InfoWorld reviewers, go to the best products we tested during the prior calendar year. To be eligible to win, the product has to be reviewed by the InfoWorld Test Center, it has to be outstanding, and it has to belong to a product category that we consider extremely important. In short, Technology of the Year Award winners are rare and special.&lt;br /&gt;&lt;br /&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 186px; height: 138px;" src="http://www.infoworld.com/sites/infoworld.com/files/pdfe/logo_toy_2011.gif" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;On behalf of Eclipse and Zend, we are honored to receive this award as a confirmation of our technology vision and dedication to building the best possible IDE for the PHP community we are committed to the evolution of Eclipse PDT as more and more developers seek to add PHP to their skill set for application development in Web environment.&lt;br /&gt;&lt;br /&gt;Congratulation to the team!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-2831636622442910618?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/2831636622442910618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=2831636622442910618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/2831636622442910618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/2831636622442910618'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2011/01/eclipse-pdt-awarded-best-php-ide-in.html' title='Eclipse PDT and Zend Studio Awarded &apos;Best PHP IDE&apos; in InfoWorld 2011 Technology of the Year Awards'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-8024168266942210953</id><published>2010-11-02T12:06:00.000-07:00</published><updated>2010-11-02T12:15:34.665-07:00</updated><title type='text'>New 10 Top Zend Studio 8.0 Features (applies mostly to Eclipse PDT 2.2.1)</title><content type='html'>After one and a half years of community development and Zend internal hard work,  Zend Studio 8.0 is officially released today after 3 months in beta!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;During the beta term I tweeted about the new features and I wanted to aggregate everything to one blog so you can all review it in one place.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;New Analyze Network Usage and Performance with Zend Studio 8.0 &lt;a href="http://yfrog.com/3dc06xp"&gt;http://yfrog.com/3dc06xp&lt;/a&gt; #zendcon Top Studio new features #1&lt;/li&gt;&lt;li&gt;New Running #php Applications on VMWare Workstation through Zend Studio 8.0 &lt;a href="http://yfrog.com/69z0tp"&gt;http://yfrog.com/69z0tp&lt;/a&gt; Top Studio new features #2&lt;/li&gt;&lt;li&gt;New remote server support (ftp/ssh) &lt;a href="http://bit.ly/9ei3hf"&gt;http://bit.ly/9ei3hf&lt;/a&gt; Top Zend Studio new features #3&lt;/li&gt;&lt;li&gt;New #phpunit configuration files support &lt;a href="http://bit.ly/aN2w3e"&gt;http://bit.ly/aN2w3e&lt;/a&gt; Studio new features #4&lt;/li&gt;&lt;li&gt;New jQuery Support&lt;a href="http://yfrog.com/7f1jap"&gt; http://yfrog.com/7f1jap&lt;/a&gt; Top Studio new features #5&lt;/li&gt;&lt;li&gt;New native installers &lt;a href="http://yfrog.com/5i4itp"&gt;http://yfrog.com/5i4itp&lt;/a&gt; Top Studio new features #6&lt;/li&gt;&lt;li&gt;New content assist with templates &lt;a href="http://yfrog.com/0r5j9p"&gt;http://yfrog.com/0r5j9p&lt;/a&gt; Top Studio new features #7&lt;/li&gt;&lt;li&gt;New hover information box &lt;a href="http://yfrog.com/6x26763202p"&gt;http://yfrog.com/6x26763202p&lt;/a&gt; - Top Studio new features #8&lt;/li&gt;&lt;li&gt;New "Inspect" action in #php editor &lt;a href="http://yfrog.com/5j3sssp"&gt;http://yfrog.com/5j3sssp&lt;/a&gt; - Top Studio new features #9&lt;/li&gt;&lt;li&gt;Enhancements for Windows 7 &lt;a href="http://yfrog.com/mlxu3p"&gt;http://yfrog.com/mlxu3p&lt;/a&gt; (thanks #mylyn) - Top Studio new features #10&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;I'll probably have another post about the guys at Zend and community that helped with this release, so stay tuned if you want to hear about the team.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-8024168266942210953?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/8024168266942210953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=8024168266942210953' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/8024168266942210953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/8024168266942210953'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2010/11/new-10-top-zend-studio-80-features.html' title='New 10 Top Zend Studio 8.0 Features (applies mostly to Eclipse PDT 2.2.1)'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-759372874438519379</id><published>2010-09-07T12:53:00.000-07:00</published><updated>2010-09-07T14:18:25.729-07:00</updated><title type='text'>Five (more) tips for speeding up Eclipse PDT</title><content type='html'>In a &lt;a href="http://www.nwiresoftware.com/blogs/nwire/2010/09/five-tips-speeding-eclipse-pdt-and-nwire"&gt;previous blog post&lt;/a&gt; written by Zviki Cohen, five simple tips were suggested to help Eclipse PHP Development Tools (PDT) users speeding up their development environment . I want to share five more tricks that can dramatically improve your experience with Eclipse and PDT. Not only these tips help speeding up performance but also make your PHP source code more controlled. &lt;br /&gt;&lt;br /&gt;1. Exclude non-source-code folders and manage wisely your project buildpath - Buildpath is a set of paths indicating what folders should be scanned (built) by Eclipse. If the project Buildpath includes its root (for example) then all folders that include images, javascript , style sheets and other non-source related files are listed to the scanner. Although theoretically most of these files are not actually scanned since non-PHP content types files are skipped, Eclipse keeps track on changes and make some redundant operations on these folders that may contain thousands of irrelevant files, hence perform bad .    &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;2. Setup project include path - to optimize the include/require statements path resolving it is more than useful to make sure that the project include path settings are set correctly. Representing the actual include path is a key to make things work smoothly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;3. External libraries are not part of your code, don't keep it under your project resources - this is a classic project configuration mistake. Make sure that frameworks and external libraries are not included under your project sources, instead link it to your project as a library. Eclipse can relate to these ("static"/"read-only") frameworks differently than your ("dynamic"/"writeable") code which is under constant development. Frameworks should be scanned once and not be part of your project source code.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Split your project into sub-projects and modules - it makes sense you separate your core business, services, client side interface, tests and other modules into different projects that have different natures and make the components more flexible and easy to be re-used and maintained by others. Often, I see PHP projects that include dozens of thousands of flat hierarchy source code that is hard to maintain and configure.    &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Share your project configuration files with your team. Configure your project once  and make sure all team members follow the same conventions and management rules.  These files are located under your project root (the dot files) and can be shared in your source code repository.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;To summarize things &lt;/span&gt;&lt;span style="font-style:italic;"&gt;"Mastering your development environment is as important as mastering your source code"&lt;/span&gt; - this concept is sometimes forgotten by scripting language developer who are used to a flat hierarchy source code. Although I consider this as a major strength of scripting languages it doesn't mean that project management should be flat... &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-759372874438519379?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/759372874438519379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=759372874438519379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/759372874438519379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/759372874438519379'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2010/09/five-more-tips-for-speeding-up-eclipse.html' title='Five (more) tips for speeding up Eclipse PDT'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-2539338092623479666</id><published>2010-05-12T14:09:00.000-07:00</published><updated>2010-05-13T00:31:59.314-07:00</updated><title type='text'>How do you like to "use" it?</title><content type='html'>According to the &lt;a href="http://www.php.net/manual/en/language.namespaces.importing.php"&gt;PHP.net manual&lt;/a&gt; "PHP namespaces support two kinds of aliasing or importing: aliasing a class name, and aliasing a namespace name". So basically this leaves two options for the average case: &lt;table border="0"&gt;&lt;td&gt;&lt;br /&gt;&lt;h3&gt;Aliasing a namespace name&lt;/h3&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;namespace ns1\ns11\ns111 {&lt;br /&gt; class c1 { }&lt;br /&gt;}&lt;br /&gt;namespace ns2\n21 {&lt;br /&gt; use \ns1\ns11\ns111;&lt;br /&gt; $v = new ns111\c1();&lt;br /&gt;}&lt;/pre&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;h3&gt;Aliasing a class name&lt;/h3&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;namespace ns1\ns11\ns111 {&lt;br /&gt; class c1 { }&lt;br /&gt;}&lt;br /&gt;namespace ns2\n21 {&lt;br /&gt; use \ns1\ns11\ns111\c1;&lt;br /&gt; $v = new c1();&lt;br /&gt;}&lt;/pre&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;While both options are useful developers will probably prefer to use the one over the other in different cases. For example if your script imports many classes declared in one namespace, only one namespace can be imported avoiding the need to import each class separately.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Option A:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;use \ns1\ns11\ns111\c1;&lt;br /&gt;use \ns1\ns11\ns111\c2;&lt;br /&gt;use \ns1\ns11\ns111\c3;&lt;br /&gt;use \ns1\ns11\ns111\c4;&lt;br /&gt;use \ns1\ns11\ns111\c5;&lt;br /&gt;&lt;br /&gt;$v = new c1(new c2(new c3(new c4(new c5()))))&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Option B:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;use \ns1\ns11\ns111;&lt;br /&gt;$v = new ns111\c1(new ns111\c2(new ns111\c3(new ns111\c4(new ns111\c5()))))&lt;br /&gt;&lt;/pre&gt;   &lt;br /&gt;&lt;h3&gt;How Eclipse PDT should complete your "use" statement?&lt;/h3&gt;&lt;br /&gt;A real cool feature in Eclipse PDT is that use statements are completed automatically for you. The question is what method should be considered:&lt;br /&gt;1. Aliasing a class name&lt;br /&gt;2. Aliasing a namespace name&lt;br /&gt;3. Depends on the case, what are the different cases?&lt;br /&gt;&lt;br /&gt;Vote here: &lt;a href="http://twtpoll.com/omuaqn"&gt;http://twtpoll.com/omuaqn&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;script src="http://twtpoll.com/js/badge.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;script src="http://twtpoll.com/badge/?twt=omuaqn&amp;b=1" type="text/javascript"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-2539338092623479666?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/2539338092623479666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=2539338092623479666' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/2539338092623479666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/2539338092623479666'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2010/05/how-do-you-like-to-use-it.html' title='How do you like to &quot;use&quot; it?'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-5536393093502065870</id><published>2010-04-11T12:39:00.000-07:00</published><updated>2010-05-01T16:14:02.048-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse flash adobe'/><title type='text'>Thoughts on Flash (the Eclipse way)</title><content type='html'>Funny coincidence but definitely not related to &lt;a href="http://www.apple.com/hotnews/thoughts-on-flash/"&gt;Apple vs. Adobe shootout&lt;/a&gt;, &lt;a href="http://twitter.com/zendstudiofan"&gt;my team&lt;/a&gt; was required to integrate an existing Adobe Flash application into &lt;a href="http://www.zend.com/studio"&gt;Zend Studio 7.2.0&lt;/a&gt; (an &lt;a href="http://www.eclipse.org/pdt"&gt;Eclipse PDT&lt;/a&gt; based product). Let's share this experience of integrating Eclipse and Flash:&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Reusing Flash or Writing plain SWT?&lt;/h4&gt;It started as a simple and common requirement to provide a presentation layer for a given data source loaded into the product. Happy and enthusiastic we started designing a user friendly Eclipse perspective that provides nice diagrams and trees that present the data. Before we started to actually implement it, we were told that it would be great if we can reuse an existing Flash application that &lt;a href="http://zend.com/server"&gt;our colleges at Zend&lt;/a&gt; have already developed. "Adobe do this so why can't we do this?", relating to &lt;a href="http://www.adobe.com/products/flashbuilder/"&gt;Flash Builder&lt;/a&gt; that is based on Eclipse and Flash. Anyway, it can save months of development and integration effort in the future.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;The Good&lt;/h4&gt;Using a Flash application into Eclipse integrated web browser is pretty easy task. Users choose a source file in a dedicated import wizard, a new perspective is presented that includes an Eclipse view presenting the Flash application. We used a simple browser view for this end:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: java"&gt;public class FlashView extends ViewPart {&lt;br /&gt;private Browser browser;&lt;br /&gt;public void createPartControl(Composite parent) {&lt;br /&gt;parent.setLayout(new FillLayout());&lt;br /&gt;try {&lt;br /&gt;int mozilla = SWT.MOZILLA;&lt;br /&gt;browser = new Browser(parent, mozilla);&lt;br /&gt;refresh();&lt;br /&gt;} catch (SWTError e) {&lt;br /&gt;// ...&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;private String getText(String file)  {&lt;br /&gt;return "&amp;lt;object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' &lt;br /&gt;  codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0'&lt;br /&gt;  width='100%' height='100%'&amp;gt; &lt;br /&gt;  &amp;lt;param name='flashVars' value='...'&amp;gt; &lt;br /&gt;     &amp;lt;param name='src' value='myFlash.swf'&amp;gt; &lt;br /&gt;     &amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;opaque&amp;quot;&amp;gt; &lt;br /&gt;  &amp;lt;embed pluginspage='http://www.macromedia.com/go/getflashplayer'&lt;br /&gt;  width='100%' height='100%'&lt;br /&gt;  flashVars='...'&lt;br /&gt;  wmode=&amp;quot;opaque&amp;quot;&lt;br /&gt;  src='myFlash.swf'/&amp;gt; &lt;br /&gt; &amp;lt;/object&amp;gt;"&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And a Jetty server for serving the Flash application is launched:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: java"&gt;&lt;br /&gt;public class JettyServerManager {&lt;br /&gt;&lt;br /&gt;public static void startJettyServer(final int port) throws Exception {&lt;br /&gt;final String rootPath = getJettyRootPath();&lt;br /&gt;Runnable runnable = new Runnable() {&lt;br /&gt;public void run() {&lt;br /&gt; server = new Server();&lt;br /&gt; SelectChannelConnector connector = new SelectChannelConnector();&lt;br /&gt; connector.setPort(port);&lt;br /&gt;&lt;br /&gt; try {&lt;br /&gt;  server.start();&lt;br /&gt;  server.join();&lt;br /&gt; } catch (Exception e) {&lt;br /&gt;  // ...&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;};&lt;br /&gt;serverThread = new Thread(runnable);&lt;br /&gt;serverThread.start();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void stopJettyServer() throws Exception {&lt;br /&gt;if (server != null) {&lt;br /&gt;// ...&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;The Bad&lt;/h4&gt;&lt;br /&gt;One more trick that we wanted to add in our client product is a small layer of communication between the two applications, so basically once a user clicks on a data relating to a specific workspace resource the relevant resource is opened in the editor (something like "link with editor" button).&lt;br /&gt;&lt;br /&gt;Our first attempt used a dedicated socket to transfer these calls, but after reading the &lt;a href="http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html"&gt;cross-domain policy&lt;/a&gt; we understood that another port is required. So three (!!!) different ports are opened for serving this application - the Jetty one, our communication channel and a cross-domain policy port (since the default one is 843 and Linux based OS can't open it we should have open another non-default one). We could live with it if it worked out, but after lots of testing it came out that Windows and Linux machines don't behave the same. On Windows the security port got the request and handles it right, then the actual communication port works as expected. On Linux the same workflow is expected but we got garbage content in our communication although the policy file was excepted and verified by the Flash engine.&lt;br /&gt;&lt;br /&gt;Our next attempt used the same Jetty channel to broadcast the changes from the Flash application, once the Flash application wants to alert our product it sends a request to the Jetty (on the same port) and notify our product. This actually worked very nicely.&lt;br /&gt;&lt;h4&gt;The Ugly&lt;/h4&gt;Well, let's say that Flash and SWT don't share the same look and feel and are naturally different. Usability in this case is a little awkward but tolerable.&lt;br /&gt;To make sure our customers are not required to manually install a browser and then install a Flash player plugin on top of this browser we wanted to have our own &lt;a href="https://developer.mozilla.org/en/XULRunner"&gt;XULRunner&lt;/a&gt; instance and flash player plugin installed. Although it seems that &lt;a href="http://www.adobe.com/products/players/fpsh_distribution1.html"&gt;Adobe's Flash player license&lt;/a&gt; is pretty open we couldn't redistribute it in an easy way into our integrated browser as Adobe require to install it under a specific place using their installers.&lt;br /&gt;One last usability shame is the case where an instance of a Flash view is opened and then Eclipse product is closed. Although the Jetty service is down as well (as expected) it should be launched again to serve the view again upon start.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;The End Result&lt;/h4&gt;&lt;br /&gt;A simple import wizard that requires the stored snapshot is displayed:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm5.static.flickr.com/4019/4568591242_9cab5aca39_o.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 405px; height: 206px;" src="http://farm5.static.flickr.com/4019/4568591242_9cab5aca39_o.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3234/4568591344_de91cef292_o.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 570px; height: 602px;" src="http://farm4.static.flickr.com/3234/4568591344_de91cef292_o.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Many thanks to Qiangsheng Wang and Jacek Pospychala!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-5536393093502065870?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/5536393093502065870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=5536393093502065870' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/5536393093502065870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/5536393093502065870'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2010/04/thoughts-on-flash-eclipse-way.html' title='Thoughts on Flash (the Eclipse way)'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-2430787320119893607</id><published>2009-10-22T16:36:00.000-07:00</published><updated>2009-10-23T05:39:21.343-07:00</updated><title type='text'>ZendCon, Eclipse and the Cloud</title><content type='html'>This is a wrap-up for another excellent &lt;a href="http://zendcon.com"&gt;#zendcon&lt;/a&gt; that took PHP one step forward this year into the enterprise world and the mainstream.&lt;br /&gt;&lt;br /&gt;It began with several announcements about &lt;a href="http://www.zend.com/en/products/server/zend-server-5-new"&gt;Zend Server 5.0 beta&lt;/a&gt; that now provides  more enterprise-ready features such as code tracking tools and job queue services. It continued with an announcement of a new edition for Zend Studio 7.1 beta that is based on Eclipse PDT 2.2 with remote server and task focus programming tools integrated with the Mylyn PHP bridge. It was also the time Zend stated that it is going to invest more on making standard to interact with "the cloud" (MS, IBM, Rackspace, Nirvanix and Go-grid) with its new &lt;a href="http://www.simplecloud.org/"&gt;Simplecloud&lt;/a&gt; API.&lt;br /&gt;&lt;br /&gt;Interesting points that I wanted to share:&lt;br /&gt;1. Stephen O’Grady moderated a panel about the various Zend Cloud initiatives entitled &lt;a href="http://it-republik.de/konferenzen/ext_scripts/v2/php/sessions-popup.php?module=zendconf09&amp;id=12419"&gt;Developing on the Cloud&lt;/a&gt; you can read his summary &lt;a href="http://bit.ly/3d3EGh"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2. This conference everyone were using Eclipse tools, it is just wonderful to see that Eclipse solutions are well adopted by the PHP community that was at first controversial about moving to Eclipse. People were also amazed by the built-in tools Eclipse provides that can be leverage by all developers such as streamline of development process features and Application life-cycle management tools.&lt;br /&gt;&lt;br /&gt;3. Another nice conversation made with two Jetbrains developers that were really enthusiastic about their open source product that will deliver a PHP plugin really soon. I talked to them about the latest announcements (open sourcing InteliJ platform and IDE). It seems that unlike the Eclipse community Jetbrains really wants to focus on platform for development tools and will do their best to keep this goals for now. I was really impressed by the deep knowledge they have about language modeling and the methods they use internally for indexing and caching that is totally different from approaches I know in Eclipse. It will be very nice if the Eclipse community will take some time to learn some techniques from their &lt;a href="http://www.jetbrains.org/display/IJOS/Contribute"&gt;open source project&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;4. Some pictures from the keynote:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2775/4036500097_d1e9bda1ca_o.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 600px; height: 450px;" src="http://farm3.static.flickr.com/2775/4036500097_d1e9bda1ca_o.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3493/4036500095_8d95be83c5_o.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 600px; height: 450px;" src="http://farm4.static.flickr.com/3493/4036500095_8d95be83c5_o.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;So long ZendCon09!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-2430787320119893607?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/2430787320119893607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=2430787320119893607' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/2430787320119893607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/2430787320119893607'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2009/10/zendcon-eclipse-and-cloud.html' title='ZendCon, Eclipse and the Cloud'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-5535248130804282091</id><published>2009-08-30T08:51:00.001-07:00</published><updated>2009-08-30T09:01:54.138-07:00</updated><title type='text'>The (Flat and Long) Type Hierarchy of Zend_Exception</title><content type='html'>Trying to build the type hierarchy of the &lt;a href="http://framework.zend.com/apidoc/core/Zend/Zend_Exception.html"&gt;Zend_Exception &lt;/a&gt;class in &lt;a href="http://framework.zend.com/"&gt;Zend Framework&lt;/a&gt; using &lt;a href="http://www.eclipse.org/pdt/"&gt;Eclipse PDT&lt;/a&gt; yields a long and flat list of Exceptions.&lt;br /&gt;&lt;br /&gt;Should it be more "hierarchical-like"? I mean... the framework, with core and extra plugins?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AL58K5147Xg/SpqhpnKIdWI/AAAAAAAAGaM/DW21qRA882U/s1600-h/zf_exceptions.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 146px; height: 400px;" src="http://3.bp.blogspot.com/_AL58K5147Xg/SpqhpnKIdWI/AAAAAAAAGaM/DW21qRA882U/s400/zf_exceptions.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5375786841478296930" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-5535248130804282091?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/5535248130804282091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=5535248130804282091' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/5535248130804282091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/5535248130804282091'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2009/08/flat-and-long-type-hierarchy-of.html' title='The (Flat and Long) Type Hierarchy of Zend_Exception'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AL58K5147Xg/SpqhpnKIdWI/AAAAAAAAGaM/DW21qRA882U/s72-c/zf_exceptions.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-4223952617184420797</id><published>2009-07-16T00:29:00.000-07:00</published><updated>2009-07-17T07:22:02.587-07:00</updated><title type='text'>Graduation or Maturity?</title><content type='html'>This question has been puzzling me for a long time now, but maybe there is no difference at all between graduation and maturity in a lifecycle of a project?&lt;br /&gt;&lt;br /&gt;The basic definition of a "mature project" is a project that has been in use for long enough that most of its initial faults and inherent problems have been removed or reduced by further development. On the other hand, I couldn't find consensus about the graduation step of projects. I'll take two examples from two different worlds - Java/Eclipse and PHP. As described in the &lt;a href="http://framework.zend.com/wiki/display/ZFPROP/Proposal+Lifecycle"&gt;proposal lifecycle&lt;/a&gt; of &lt;a href="http://framework.zend.com/"&gt;Zend Framework&lt;/a&gt; after a project has been recommended, the promotion step includes confirmation of unit tests and documentation in its way to graduation. It seems that the &lt;a href="http://www.eclipse.org/"&gt;Eclipse Foundation&lt;/a&gt; set a few clear &lt;a href="http://wiki.eclipse.org/Development_Resources/HOWTO/Criteria_for_Graduating_from_Incubation_Phase_to_Mature_Phase"&gt;criteria for graduation&lt;/a&gt; that include adhering active community, fully operational project, and a technical review of the architecture. These two processes are so different but still I start to get a notion that graduation is not about passing criteria but only a phase that a project becomes aware of itself, and most important thing &lt;i&gt;&lt;b&gt;graduation is only the first step toward maturity&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Projects that pass their graduation process although have not seen widespread use yet, enjoy a core user base, are more flexible and still cannot be extensible in an easy way. Fully mature projects are projects that enjoy the publicity in a larger community and probably less flexible since many adopters already extend the previously defined API.&lt;br /&gt;&lt;br /&gt;Anyway, the most important (and fun!) period in the lifecycle of a project is when it is graduated and starts to get all dots connected till its final maturity. This is exactly where Eclipse PDT project in, and we see more and more people that ask to extend its core capabilities.&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-4223952617184420797?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/4223952617184420797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=4223952617184420797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/4223952617184420797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/4223952617184420797'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2009/07/graduation-or-maturity.html' title='Graduation or Maturity?'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-6587694959387867050</id><published>2009-07-07T11:05:00.000-07:00</published><updated>2009-07-13T02:06:49.278-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zend studio server php'/><title type='text'>Latest News from PHP/Zend Tooling World!</title><content type='html'>The first half of the year (2009) is over and the Web world got new, structured techniques for rich Web application development tools in &lt;a href="http://zend.com/server"&gt;Zend Server&lt;/a&gt; and &lt;a href="http://zend.com/studio"&gt;Zend Studio 7.0&lt;/a&gt; based on the latest &lt;a href="http://eclipse.org/pdt"&gt;Eclipse PDT project (2.1)&lt;/a&gt; with features such as Server integration, smart code analysis for dynamic languages, refactoring tools and more. &lt;br /&gt;&lt;br /&gt;Instead of writing blocks of texts describing these new exciting features I want to share with you a few screen casts created by Zend (thanks Yossi L.!) that demonstrate the new capabilities provided to Web developers who work with &lt;span style="font-style:italic;"&gt;php &lt;/span&gt;as their main server side engine. If you want me to elaborate on specific screen cast comment out or let me know, I promise to add details in another post.&lt;br /&gt;&lt;br /&gt;Enjoy ;)&lt;br /&gt;&lt;br /&gt;&lt;h4&gt; Jump Starting Web Application Development Using Zend Studio &amp; Server Integration &lt;br /&gt; &lt;/h4&gt;&lt;br /&gt;&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/yCrH1ukPUBw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hd=1&amp;amp;border=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/yCrH1ukPUBw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hd=1&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;h4&gt;Code Navigation &lt;/h4&gt;&lt;br /&gt;&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vLnA2C5yt8o&amp;hl=en&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1&amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/vLnA2C5yt8o&amp;hl=en&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;h4&gt;Code Analysis and Auto-fix&lt;/h4&gt;&lt;br /&gt;&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bBf2evQoZLE&amp;hl=en&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1&amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/bBf2evQoZLE&amp;hl=en&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;h4&gt;PHP 5.3 Development&lt;/h4&gt;&lt;br /&gt;&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/GZ6qIfoV82c&amp;hl=en&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1&amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/GZ6qIfoV82c&amp;hl=en&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;h4&gt;PHP Code Refactoring&lt;/h4&gt;&lt;br /&gt;&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2cIJlbIcqxo&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hd=1&amp;amp;border=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/2cIJlbIcqxo&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hd=1&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;h4&gt;RAD Tools&lt;/h4&gt;&lt;br /&gt;&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/TqJs270tKg4&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hd=1&amp;amp;border=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/TqJs270tKg4&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hd=1&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;h4&gt;Root Cause Analysis &lt;/h4&gt;&lt;br /&gt;&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QS877sYDOy8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hd=1&amp;amp;border=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/QS877sYDOy8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hd=1&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-6587694959387867050?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/6587694959387867050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=6587694959387867050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/6587694959387867050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/6587694959387867050'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2009/07/latest-news-from-phpzend-tooling-world.html' title='Latest News from PHP/Zend Tooling World!'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-2809784958124153868</id><published>2009-06-20T13:12:00.000-07:00</published><updated>2009-06-20T13:49:32.471-07:00</updated><title type='text'>The Rising Star</title><content type='html'>It's "Eclipse for PHP" first year in the Eclipse simultaneous release train, and yet the final release has not been released, but studying the downloads # of the forth release candidate is a very good indication of things to come - &lt;span style="font-weight:bold;"&gt;Eclipse PHP flavor is going to be the rising star of the Galileo train.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"Eclipse for PHP" package is an Eclipse flavor including the Eclipse platform, CVS, Mylyn, DLTK and Web tools platform with an addition for PHP developers - the PDT plugin.&lt;br /&gt;&lt;br /&gt;It is also the first year Zend releases &lt;a href="http://www.zend.com/en/products/studio/studio-7-early-access"&gt;Zend Studio (7.0)&lt;/a&gt; right after the community edition is released. This time we align Zend commercial product with the community edition to have the same impact for both our customers and the community.&lt;br /&gt;   &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2434/3644964220_a8479d65b4.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 500px; height: 437px;" src="http://farm3.static.flickr.com/2434/3644964220_a8479d65b4.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-2809784958124153868?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/2809784958124153868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=2809784958124153868' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/2809784958124153868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/2809784958124153868'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2009/06/rising-star.html' title='The Rising Star'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2434/3644964220_a8479d65b4_t.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-6910880178243044630</id><published>2009-06-16T10:18:00.000-07:00</published><updated>2009-06-18T05:26:51.725-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse democamp telaviv zend'/><title type='text'>Tel Aviv Eclipse DemoCamps Galileo 2009</title><content type='html'>Its time to create a buzz around &lt;a href="http://eclipse.org/galileo/"&gt; the upcoming Galileo&lt;/a&gt; release here in my city &lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=tel+aviv,+israel&amp;amp;sll=40.750768,-73.987942&amp;amp;sspn=0.105075,0.175095&amp;amp;ie=UTF8&amp;amp;z=12&amp;amp;iwloc=A"&gt;Tel Aviv, Israel&lt;/a&gt;. Actually this is the first time ever this happens in Tel Aviv, and the number of attendees is really impressive, comparing to &lt;a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Galileo_2009"&gt;other countries&lt;/a&gt; around the globe.&lt;br /&gt;&lt;h4&gt;What is an Eclipse DemoCamp?&lt;/h4&gt; "We are inviting individuals to organize and attend Eclipse DemoCamps around the world to celebrate the Galileo release. The Eclipse DemoCamps are an opportunity to showcase all of the cool interesting technology being built by the Eclipse community. They are also an opportunity for you to meet Eclipse enthusiasts in your city."&lt;br /&gt;&lt;h4&gt;What's the plan?&lt;/h4&gt; &lt;a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Galileo_2009/Tel_Aviv#Agenda"&gt;Six presentation&lt;/a&gt; given by great people who volunteered to help promoting and contributing to the event.&lt;br /&gt;&lt;br /&gt;This time &lt;a href="http://zend.com/"&gt;Zend Technologies&lt;/a&gt; (the PHP company I work for ;) and the company behind &lt;a href="http://www.eclipse.org/pdt/"&gt;PDT&lt;/a&gt;) helps to organize the event.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Galileo_2009/Tel_Aviv"&gt;Register free here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3311/3637766437_1e0afacb8e_b.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 731px; height: 1024px;" src="http://farm4.static.flickr.com/3311/3637766437_1e0afacb8e_b.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-6910880178243044630?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/6910880178243044630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=6910880178243044630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/6910880178243044630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/6910880178243044630'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2009/06/tel-aviv-eclipse-democamps-galileo-2009.html' title='Tel Aviv Eclipse DemoCamps Galileo 2009'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3311/3637766437_1e0afacb8e_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-1675704744462884640</id><published>2009-05-30T11:57:00.000-07:00</published><updated>2009-05-30T13:01:26.717-07:00</updated><title type='text'>Two Horizons Coincide</title><content type='html'>In recent years there has been an explosion of open source communities in several areas within the software mainline industry. Vertical and horizontal communities are founded. While vertical communities are specialized in one sector, horizontal ones developed with vertical links.&lt;br /&gt;&lt;br /&gt;I am always excited to see two communities that find a common interest and collaborate together.  A great (yet extreme) example of vertical and horizontal communities that converge is the &lt;a href="http://www.eclipse.org/jetty"&gt;Eclipse/Jetty project&lt;/a&gt;, starting with &lt;a href="http://neelzone.wordpress.com/2007/06/18/jetty-and-eclipse-integration/"&gt;basic integration points&lt;/a&gt; the two communities are now associated as Jetty’s core is hosted by the Eclipse Foundation.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Eclipse and PHP Are Now (Officially) Best Friends!&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What it takes for two horizontal communities of the size of Eclipse and PHP to be "best friends"? Except of course for motivation of these communities to be improved.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Recognition - The Eclipse community understands that PHP developers are major section of its user’s base, and therefore takes actions. At the very first days of Eclipse, PDT was available as a plug-in that could be installed over Eclipse platform and other dependencies. With the release of &lt;a href="http://wiki.eclipse.org/Galileo"&gt;Galileo&lt;/a&gt;, Eclipse recognizes that people enter to the Eclipse world because of PHP and releases an &lt;a href="http://www.eclipse.org/downloads/?tab=developer"&gt;Eclipse PHP flavor&lt;/a&gt; that is created exclusively for the PHP community, exactly as provided to Java, C++ and Web tools developers.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://farm4.static.flickr.com/3609/3578662385_796e4f42ae_o.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Commitment – The two communities grow together. When one makes a move, the other takes an action as well. When PHP has made the intent to deliver its new major version, Eclipse PHP Development Tools (PDT) has been adapted by supporting the new PHP 5.3 language features with an early release. Another example, since PHP is an extensible language providing a way for developers to add extensions to its core, Eclipse PDT enables those people who extend PHP to extend it as well, with API for type inference and code completion. &lt;img src="http://farm3.static.flickr.com/2462/3579479068_5a471dd321_o.png" /&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Adoption – According to &lt;a href="http://www.eclipse.org/org/press-release/Eclipse_Survey_2009_final.pdf"&gt;the latest Eclipse Community Survey&lt;/a&gt; "Eclipse IDEs are the most popular primary development environments among respondents; Eclipse JDT (60%), Eclipse PHP Development Tools (12.6%) and C/C++ Developer Tools (6.3%)."  This means that for each 5 developers that use Eclipse Java IDE, there is one Eclipse PHP developer and a half C/C++ developer. Comparing these results to the &lt;a href="http://cdn.idc.com/downloads/EclipseCommunitSurveyResults[NotesPages].pdf"&gt;2007 community survey&lt;/a&gt; where PHP was not listed among the 5 top Eclipse IDEs.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://farm4.static.flickr.com/3562/3578709513_b0b7a9d650_o.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;It seems that we are (close to) reaching our goals to make Eclipse and PHP best friends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-1675704744462884640?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/1675704744462884640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=1675704744462884640' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/1675704744462884640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/1675704744462884640'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2009/05/two-horizons-coincide.html' title='Two Horizons Coincide'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-8338442713447203987</id><published>2009-03-09T00:29:00.000-07:00</published><updated>2009-03-11T01:02:03.322-07:00</updated><title type='text'>Welcome the PDTT - PHP 5.3 Code Assist Engine Tests</title><content type='html'>&lt;a href="http://wiki.eclipse.org/PDTT_-_PHP_5.3_Code_Assist_Tests"&gt;pdtt&lt;/a&gt; is a clone of the popular &lt;a href="http://phpt.info/"&gt;phpt.&lt;/a&gt; &lt;a href="http://www.eclipse.org/pdt"&gt;Eclipse PDT&lt;/a&gt;&lt;span&gt;&lt;span&gt; uses &lt;/span&gt;&lt;/span&gt;this mechanism for testing its &lt;a href="http://wiki.php.net/todo/php53"&gt;PHP 5.3&lt;/a&gt; code assist engine. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since &lt;a href="http://spektom.blogspot.com/"&gt;Michael&lt;/a&gt; has just &lt;a href="http://spektom.blogspot.com/2009/03/php-53-support-in-pdt-2nd-stage-is-over.html"&gt;finished&lt;/a&gt; implementing the second phase for PHP 5.3 support in PDT, we can now expose unit tests and ask users to add more cases to the code assist tests reposiroty.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As written in the pdtt &lt;a href="http://wiki.eclipse.org/PDTT_-_PHP_5.3_Code_Assist_Tests"&gt;wiki page&lt;/a&gt;: &lt;br /&gt;&lt;div&gt;&lt;div&gt;"The first thing you need to know about tests is that we need more!!! Although Eclipse PDT code assist works just great 99.99% of the time, not having a very comprehensive test suite means that we take more risks every time we add to or modify the Eclipse PDT Code Assist Engine implementation. The second thing you need to know is that if you can write PHP you can write tests. Thirdly - we are a friendly and welcoming community, don't be scared about writing to (pdt-dev@eclipse.org) - we won't bite!"&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Basic Format for a pdtt file:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  line-height: 19px; font-family:arial;font-size:8px;"&gt;&lt;pre style="padding-top: 1em; padding-right: 1em; padding-bottom: 1em; padding-left: 1em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(47, 111, 171); border-right-color: rgb(47, 111, 171); border-bottom-color: rgb(47, 111, 171); border-left-color: rgb(47, 111, 171); color: black; background-color: rgb(249, 249, 249); line-height: 1.1em; font-size: small; "&gt;&lt;pre&gt;--TEST-- &lt;/pre&gt;&lt;pre&gt;Tests a simple class name completion in namespace &lt;/pre&gt;&lt;pre&gt;--FILE-- &lt;/pre&gt;&lt;pre&gt;&amp;lt;? namespace My; class A{} class b{} $a = new My\| ?&amp;gt; &lt;/pre&gt;&lt;pre&gt;--EXPECT-- &lt;/pre&gt;&lt;pre&gt;type(A) &lt;/pre&gt;&lt;pre&gt;type(B)&lt;/pre&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;I guess that once we get some feedback from our members we will expose a better (automatic) way to submit pdtt files.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enjoy ;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-8338442713447203987?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/8338442713447203987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=8338442713447203987' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/8338442713447203987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/8338442713447203987'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2009/03/welcome-pdtt-php-53-code-assist-tests.html' title='Welcome the PDTT - PHP 5.3 Code Assist Engine Tests'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-3479718862657079816</id><published>2009-01-03T23:25:00.000-08:00</published><updated>2009-01-04T06:17:30.735-08:00</updated><title type='text'>Seven Things - tagged by Andi Gutmans</title><content type='html'>Although till recently I thought that work and fun can't get along, &lt;a href="http://en.wikipedia.org/wiki/Andi_Gutmans"&gt;Andi Gutmans&lt;/a&gt; is trying to prove to me, time after time, that this assumptions is completely wrong!. Yes... &lt;a href="http://andigutmans.blogspot.com/2009/01/seven-things-about-me-tagged-by-marco.html"&gt;I've been tagged&lt;/a&gt;.&lt;p&gt;&lt;/p&gt;  Seven things I want to share with you:&lt;p&gt;&lt;/p&gt;  1. I am allergic to cats - well... at least that's what I was told when I was a kiddo, so my family had a cute dog with long hear, no cats. Now my wife insists that we should have a cat since she was grown up with cats, and I answer her that we have one cat already. Miaoo...&lt;p&gt;&lt;/p&gt;  2. I have a super smart barber, who is a lawyer - my father, he actually replaced my mom when I was 13 years old. Curly hair is something easy to cut and I can't see any other barber since I get pretty strain by that.&lt;div&gt;&lt;br /&gt;3. My brother lives in &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Panama City&lt;/st1:place&gt;&lt;/st1:city&gt; with his lovely family. Last time I visited him, some guy that set next to me in the flight asked me why I use Eclipse as my development environment, I told him that I am a Java developer. He then ask me, "really? and I thought Java is dead, you should try out PHP..." :). It took me 10 minutes to convince him that I really work at Zend.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;4. I am trying to figure out how to analyze X-ray images to better examine the OSA phenomena, my professor thinks it is doable at least...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;5. I am very proud of my wife as she is going to be a doctor, well on 2010, and then she has more 7 years to be in residency... 2017 here we come!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;6. I am managing 4 open source projects, 3 on Google and 1 on Eclipse. I am participating in much more.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;7. My new iPhone is the most appreciated present I got from my wife. I sound like a material guy, but it just made my life much more comfortable.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hi guys you've been tagged-&lt;br /&gt;&lt;p&gt;&lt;/p&gt;  1. &lt;a href="http://www.cs.technion.ac.il/~karmon/"&gt;Kfir Karmon&lt;/a&gt; who is the smartest guy at Microsoft Israel Labs.&lt;br /&gt;2. &lt;a href="http://face.com/"&gt;Yaniv Taigman&lt;/a&gt;who is going to have a knockout with his face.com startup.&lt;br /&gt;3. &lt;a href="http://divby0.blogspot.com/"&gt;Nick Boldt&lt;/a&gt;&lt;span class="apple-converted-space"&gt; &lt;/span&gt;who is keeping his eyes on Eclipse PDT release engineering stuff.&lt;br /&gt;4. &lt;a href="http://www.cs.tau.ac.il/~wolf/"&gt;Lior Wolf&lt;/a&gt; who is the most admired professor in my university ;).&lt;br /&gt;5. Michael Spector, who doesn't have a blog but is the fastest coder at Zend, so he can arrange one in minutes :).&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. &lt;a href="http://www.gpcentre.net/"&gt;Philip Gabbert&lt;/a&gt; who met me in the last ZendCon, and became a Zend Studio fan.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;And here are the rules I'm supposed to pass on to the above bloggers:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;* Link your original tagger(s), and list these rules on your blog. &lt;br /&gt;* Share seven facts about yourself in the post - some random, some weird. &lt;br /&gt;* Tag seven people at the end of your post by leaving their names and the links to their blogs. &lt;br /&gt;* Let them know they've been tagged by leaving a comment on their blogs and/or Twitter.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-3479718862657079816?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/3479718862657079816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=3479718862657079816' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3479718862657079816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3479718862657079816'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2009/01/seven-things-tagged-by-andi-gutmans.html' title='Seven Things - tagged by Andi Gutmans'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-8960289743093927197</id><published>2008-11-26T14:29:00.000-08:00</published><updated>2008-11-26T22:16:40.477-08:00</updated><title type='text'>Zend Framework and Dojo Integration is a Knockout!</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;A new &lt;/span&gt;&lt;a href="http://files.zend.com/videos/ZF-Dojo-Integration"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;screencast &lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;was released today showing off the slick integration between Zend Framework and the Dojo Toolkit. This screencast also demonstrated the tooling support which Zend Studio 6.1 provides for this end. The speaker demonstrates it by constructing a simple Web application that takes advantage of the new features, like code assist, navigation, easy to use of PHP and JavaScript.&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://www.zend.com/topics/RWA-Demo-Video-Project-Instructions.pdf"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;This manual&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; presents a step by step guide for getting the Web application from scratch.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-8960289743093927197?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/8960289743093927197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=8960289743093927197' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/8960289743093927197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/8960289743093927197'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2008/11/zend-framework-and-dojo-integration-is.html' title='Zend Framework and Dojo Integration is a Knockout!'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-262374894692691585</id><published>2008-09-18T10:02:00.000-07:00</published><updated>2008-09-18T10:24:39.313-07:00</updated><title type='text'>ZendCon 2008 Slides</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px; white-space: pre; "&gt;Yesterday I gave a session about Rich Internet Application development, titled "PHP and AJAX made easier with Zend".&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px; white-space: pre; "&gt; &lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_605244"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/royganor/ria-made-easier-with-zend-presentation-605244?type=powerpoint" title="Ria Made Easier With Zend"&gt;Ria Made Easier With Zend&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=ria-made-easier-with-zend-1221757894124902-8&amp;stripped_title=ria-made-easier-with-zend-presentation-605244" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=ria-made-easier-with-zend-1221757894124902-8&amp;stripped_title=ria-made-easier-with-zend-presentation-605244" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/royganor/ria-made-easier-with-zend-presentation-605244?type=powerpoint" title="View Ria Made Easier With Zend on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-262374894692691585?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/262374894692691585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=262374894692691585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/262374894692691585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/262374894692691585'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2008/09/zendcon-2008-slides.html' title='ZendCon 2008 Slides'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-4849331678665741858</id><published>2008-08-15T03:18:00.000-07:00</published><updated>2008-08-15T05:12:59.316-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise2.0 zportal'/><title type='text'>ZPortal is Open-Sourced</title><content type='html'>The pet project I have initiated at work a while ago finally goes public.&lt;br /&gt;&lt;br /&gt;Project's name is &lt;a href="http://code.google.com/p/zportal/"&gt;ZPortal&lt;/a&gt; and from now on it is managed under &lt;a href="http://code.google.com/"&gt;Google Code&lt;/a&gt;. One important fact is that the "Z" prefix indicates the framework we used to build this portal, which is &lt;a href="http://framework.zend.com/"&gt;Zend Framework&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As an introduction to this post I want to point on the difference between "Horizontal information" which is information that anybody has and use vs. "Vertical information" which is information that only you or your organization has. In the Enterprise2.0 era we try to take advantage of these two types of information and bring it to the user (employee) so he has much more power in his daily work. Previous solutions like Wiki are not sufficient these days as they discard the horizontal layer and lack of integration points.&lt;br /&gt;&lt;br /&gt;So what is all about? it is about Enterprise2.0. ZPortal is a system of Web-based technologies that provides rapid and agile collaboration, information sharing, and integration capabilities in the extended enterprise. For those who are not familiar with the term Enterprise2.0 but know something about Web2.0 I recommend reading &lt;a href="http://dif-fer-en-ti-ate.blogspot.com/2007/09/difference-between-web20-enterprise20.html"&gt;this post&lt;/a&gt; that compares between the two methods. Actually from a user point of view ZPortal is similar to &lt;a href="http://www.google.com/"&gt;iGoogle&lt;/a&gt; with small differences. First the authentication method is against Microsoft Exchange Server (it can be replaced by any authentication technique but of course this is the common way thee days) second you can add internal feeds from your company as this system runs behind the company's firewall. Third you can extend this portal to your company needs.&lt;br /&gt;&lt;br /&gt;If I'd try to depict my environment at office I would do it like this:&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://4.bp.blogspot.com/_AL58K5147Xg/SKVhOaODv9I/AAAAAAAADAw/XGOANZtYZm4/s1600-h/zportal.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5234697042072420306" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_AL58K5147Xg/SKVhOaODv9I/AAAAAAAADAw/XGOANZtYZm4/s400/zportal.PNG" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;Finally, I want to thank two people who are not at Zend anymore but helped allot toward this project - Seva Lapsha and Yuval Kuck.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;for more details visit the new ZPortal site - &lt;a href="http://code.google.com/p/zportal/"&gt;http://code.google.com/p/zportal/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-4849331678665741858?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/4849331678665741858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=4849331678665741858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/4849331678665741858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/4849331678665741858'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2008/08/zportal-is-open-sourced.html' title='ZPortal is Open-Sourced'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AL58K5147Xg/SKVhOaODv9I/AAAAAAAADAw/XGOANZtYZm4/s72-c/zportal.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-2232229886570607521</id><published>2008-05-24T10:30:00.000-07:00</published><updated>2008-05-27T20:21:35.496-07:00</updated><title type='text'>Eclipse PDT Bug Day</title><content type='html'>According to &lt;a href="http://wiki.eclipse.org/BugDay"&gt;Eclipspedia&lt;/a&gt; the motivation for Eclipse Bug Day is "to help foster community outreach and growth". Since there are &lt;a href="http://www.eclipse.org/newsportal/article.php?id=1991&amp;amp;group=eclipse.tools.pdt#1991"&gt;more and more&lt;/a&gt; people in the Eclipse PHP Development Tools (PDT) community that &lt;a href="http://divby0.blogspot.com/2007/08/phpeclipse-vs-pdt-part-2.html"&gt;start asking&lt;/a&gt; &lt;a href="http://intellectualcramps.blogspot.com/2008/05/pdt-needs-community-patch-loving.html"&gt;for diversity &lt;/a&gt;in the development side, &lt;a href="http://divby0.blogspot.com/"&gt;Nick Boldt&lt;/a&gt; has suggested to help out and contribute patches to the project "if there's Zend folks willing to coach me...". Actually, I am very excited from his (and others) proposal, since it's the first time a group of people have stated that they want to contribute to PDT.&lt;br /&gt;&lt;br /&gt;There are three more things that worth mentioning here:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I do think that PHP developers can (and should) try and contribute to this project although the core development is in Java, since trivalley this project is solely designated for them.&lt;/li&gt;&lt;li&gt;PHPEclipse people that did great on this project, should think about a way to integrate their work and help us so we will unite the forces on one platform.&lt;/li&gt;&lt;li&gt;Since people need to have some knowledge about our platform, we should supply basic design documents. The following two articles can be used for this end, &lt;a href="http://www.eclipse.org/pdt/articles/astview/astview.php"&gt;ASTView&lt;/a&gt; and &lt;a href="http://www.eclipse.org/pdt/articles/ast/PHP_AST.html"&gt;Abstract Syntax Tree&lt;/a&gt;. &lt;/li&gt;&lt;/ol&gt;Save the day, the &lt;a href="http://wiki.eclipse.org/BugDay/May_2008#Projects"&gt;bug day&lt;/a&gt; will be held on May 30th. &lt;a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;classification=Tools&amp;amp;product=PDT&amp;amp;long_desc_type=allwordssubstr&amp;amp;long_desc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;status_whiteboard_type=allwordssubstr&amp;amp;status_whiteboard=&amp;amp;keywords_type=allwords&amp;amp;keywords=bugday&amp;amp;bug_severity=blocker&amp;amp;bug_severity=critical&amp;amp;bug_severity=major&amp;amp;bug_severity=normal&amp;amp;bug_severity=minor&amp;amp;bug_severity=trivial&amp;amp;bug_severity=enhancement&amp;amp;emailtype1=substring&amp;amp;email1=&amp;amp;emailtype2=substring&amp;amp;email2=&amp;amp;bugidtype=include&amp;amp;bug_id=&amp;amp;votes=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;chfieldvalue=&amp;amp;cmdtype=doit&amp;amp;order=Reuse+same+sort+as+last+time&amp;amp;known_name=pdt_open_bugs&amp;amp;query_based_on=pdt_open_bugs&amp;amp;field0-0-0=noop&amp;amp;type0-0-0=noop&amp;amp;value0-0-0="&gt;Getting started&lt;/a&gt; bugs were tagged as "bugday" (thank you David!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-2232229886570607521?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/2232229886570607521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=2232229886570607521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/2232229886570607521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/2232229886570607521'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2008/05/eclipse-pdt-bug-day.html' title='Eclipse PDT Bug Day'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-3729281494457442872</id><published>2008-04-03T01:39:00.000-07:00</published><updated>2008-11-12T22:59:08.344-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zend studio ajax php'/><title type='text'>PHP and JavaScript in a Single Frame</title><content type='html'>Many tutorials and blogs written about “PHP &amp;amp; AJAX” and “Rich Internet Application” but take no notice of a suitable development environment. Actually now days' web application tasks involve many technologies and mechanisms that come to be pretty fast a tedious work, this automatically brings many developers to search for an IDE for PHP and JavaScript.&lt;br /&gt;&lt;br /&gt;Yesterday, I have conducted a &lt;a href="http://www.zend.com/resources/webinars/"&gt;Zend webinar,&lt;/a&gt; named "Developing Rich Internet Applications using Zend Studio for Eclipse". In this Webinar I presented &lt;a href="http://www.zend.com/en/products/studio/"&gt;Zend Studio for Eclipse&lt;/a&gt; empowered by the &lt;a href="http://www.eclipse.org/downloads/download.php?file=/webtools/atf/0.2.3M4-v200709141050/atf-incubation-wtp-0.2.3M4-v200709141050.zip"&gt;Ajax Tools plug-in&lt;/a&gt;, I went over the installation process, project management, source editing and debugging capabilities for both PHP and JavaScript including code assist, code formatter, folding elements, server-client debugging and more.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AL58K5147Xg/R_S_XCPALiI/AAAAAAAAC-k/cbIhWMKINO0/s1600-h/ide.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_AL58K5147Xg/R_S_XCPALiI/AAAAAAAAC-k/cbIhWMKINO0/s320/ide.JPG" alt="" id="BLOGGER_PHOTO_ID_5184979473467977250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p:colorscheme colors="#ffffff,#333300,#969696,#000000,#e5d58a,#cccc00,#999933,#666633"&gt;  &lt;/p:colorscheme&gt;Also I have demonstrated the usage of ZF and Dojo session debugging and with the example that was given by Ralph last week. Thanks Ralph!&lt;br /&gt;&lt;br /&gt;Also I gave a demonstration of the integrated Mozilla editor that communicated with other parts of the broser tolling (like DOM inspector, browser console, request monitor view, JavaScript Evaluator, DOM source view, CSS view and the DOM watcher).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AL58K5147Xg/R_TA3iPALjI/AAAAAAAAC-s/DDHUgHdAC6k/s1600-h/ide.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_AL58K5147Xg/R_TA3iPALjI/AAAAAAAAC-s/DDHUgHdAC6k/s320/ide.JPG" alt="" id="BLOGGER_PHOTO_ID_5184981131325353522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;See you next time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-3729281494457442872?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/3729281494457442872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=3729281494457442872' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3729281494457442872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3729281494457442872'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2008/04/php-and-javascript-in-single-frame.html' title='PHP and JavaScript in a Single Frame'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AL58K5147Xg/R_S_XCPALiI/AAAAAAAAC-k/cbIhWMKINO0/s72-c/ide.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-1150998207455759128</id><published>2008-03-15T09:31:00.000-07:00</published><updated>2008-03-15T09:48:57.358-07:00</updated><title type='text'>EclipseCon 2008 - Here I come...</title><content type='html'>It's time to pack two jeans and get the flight to San Fransisco- &lt;a href="http://www.eclipsecon.org"&gt;EclipseCon&lt;/a&gt;! here I come.&lt;br /&gt;&lt;br /&gt;Though I am a speaker there, I am pretty wait to hear and see some of the Eclipse fellows. Like those from the Data tools platform and from the Web tools platform.&lt;br /&gt;&lt;br /&gt;Also there are many sessions that I am eager to attend-&lt;br /&gt;1. &lt;a href="http://www.eclipsecon.org/2008/?page=sub/&amp;amp;id=318"&gt;Getting started with RAP development &lt;/a&gt;- develop rich, AJAX-enabled web applications using the same development model as RCP.&lt;br /&gt;2. Developing Python IDE on top of Eclipse DLTK Project - a set of frameworks designed to build full featured development environments for dynamic languages.&lt;br /&gt;3. &lt;a href="http://www.eclipsecon.org/2008/?page=sub/&amp;amp;id=115"&gt;Getting Started with OSGi&lt;/a&gt;&lt;br /&gt;4. &lt;a href="http://www.eclipsecon.org/2008/?page=sub/&amp;amp;id=93"&gt;Mylyn: code at the speed of thought&lt;/a&gt;&lt;br /&gt;5. &lt;a href="http://www.eclipsecon.org/2008/?page=sub/&amp;amp;id=456"&gt;What can the WTP Snippets View do for me?&lt;/a&gt;&lt;br /&gt;6. &lt;a href="http://www.eclipsecon.org/2008/?page=sub/&amp;amp;id=272"&gt;Eclipse Command Language&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and a link to the EclipseCon sessions&lt;br /&gt;http://www.eclipsecon.org/2008/index.php?page=introduction/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-1150998207455759128?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/1150998207455759128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=1150998207455759128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/1150998207455759128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/1150998207455759128'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2008/03/eclipsecon-2008-here-i-come.html' title='EclipseCon 2008 - Here I come...'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-1916326520486597965</id><published>2008-02-22T03:59:00.000-08:00</published><updated>2008-11-12T22:59:08.620-08:00</updated><title type='text'>php  Development Tools (PDT) Community News</title><content type='html'>It's funny how differently developers act in 'release cycle' vs. 'development cycle' . While during the first we are busy with users' feedback but we lack of any intellectual challenges , the latter is calm and quite but full of energy and programming disputes. PDT version 1.1 &lt;em&gt;development cycle&lt;/em&gt; has begun and we need an extent of "noise" from our community so we won't lose our way. You are more than welcome to &lt;a href="http://wiki.eclipse.org/RequestedFeatures"&gt;advise us now&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_AL58K5147Xg/R7655BCgVJI/AAAAAAAAC8E/P91iG_7D2qE/s1600-h/graph_coding.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5169773811450533010" alt="PDT v1.1 Development Cycle" src="http://1.bp.blogspot.com/_AL58K5147Xg/R7655BCgVJI/AAAAAAAAC8E/P91iG_7D2qE/s400/graph_coding.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Taken from &lt;a href="http://www.ohloh.net/projects/5684/analyses/latest"&gt;Ohloh's Eclipse PDT page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So what's keeping us busy these days?&lt;br /&gt;&lt;br /&gt;1. &lt;em&gt;&lt;strong&gt;Revising Modeling Techniques&lt;/strong&gt;&lt;/em&gt; – Its time to catch up Eclipse's standards. We have decides that our previous modeling technique is getting oldish. So naturally we are targeting JDT's concepts with adaptation to the &lt;em&gt;php &lt;/em&gt;dynamic binding nature (given by the DLTK project).&lt;br /&gt;&lt;br /&gt;2. &lt;em&gt;&lt;strong&gt;Code Manipulation &lt;/strong&gt;&lt;/em&gt;– sometimes the editor should generate new code or even rewrite an existing code. This is an excellent mechanism for such kind of tasks. Also a great advantage is that we catching up JDT's standards on these capabilities as well so many of JDT's features are quickly portable to &lt;em&gt;php&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;3. &lt;em&gt;&lt;strong&gt;UI enhancements &lt;/strong&gt;&lt;/em&gt;– this is the part that our community should be most happy to hear about. Since infra was enhanced , more and more UI features are available. Taking for example mark occurrences, override indicators, better code completion, fast searching, quick fixes and more.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_AL58K5147Xg/R7666xCgVKI/AAAAAAAAC8M/30nGFKGNT0k/s1600-h/mark_occurrences.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5169774941026931874" alt="" src="http://4.bp.blogspot.com/_AL58K5147Xg/R7666xCgVKI/AAAAAAAAC8M/30nGFKGNT0k/s400/mark_occurrences.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="left"&gt;&lt;span style="font-size:78%;"&gt;Exit Execution Paths are marked in PDT 1.1 Editor&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;4. &lt;em&gt;&lt;strong&gt;Upgrading our Dependencies&lt;/strong&gt;&lt;/em&gt; – While most of Eclipse 3.4 enhancements are infra related, Web Tools 3.0 brings the Ajax tools into their editor and this is automatically brings it to the &lt;em&gt;php &lt;/em&gt;environment. Editing, browsing, launching, code assisting, folding, and more features are now available for the JavaScript side as well. &lt;/p&gt;&lt;p align="left"&gt;&lt;br /&gt;5. &lt;em&gt;&lt;strong&gt;Unit testing &lt;/strong&gt;&lt;/em&gt;– Well... maybe it won't be an interest of any of our users but still it is worth mentioning. We have tripled our unit testing to provide stability and regression testing to PDT. It seems that it also makes the whole development cycle more fun to us! &lt;/p&gt;&lt;p align="left"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-1916326520486597965?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/1916326520486597965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=1916326520486597965' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/1916326520486597965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/1916326520486597965'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2008/02/php-development-tools-pdt-community.html' title='&lt;em&gt;php&lt;/em&gt;  Development Tools (PDT) Community News'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AL58K5147Xg/R7655BCgVJI/AAAAAAAAC8E/P91iG_7D2qE/s72-c/graph_coding.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-7816758960891607805</id><published>2007-12-16T09:13:00.000-08:00</published><updated>2007-12-16T22:24:35.550-08:00</updated><title type='text'>Speaking at EclipseCon 2008 </title><content type='html'>&lt;a href="http://www.eclipsecon.org/2008/?page=sub/&amp;amp;id=16&amp;amp;notaccepted=all"&gt;&lt;img height="100" alt="I'm speaking at EclipseCon 2008" src="http://www.eclipsecon.org/2008/image/100x100_speaking.gif" width="100" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It seems that PHP developers have attracted much attention from the Eclipse community. In the next EclipseCon conference I am going to make two sessions about &lt;a href="http://www.eclipse.org/pdt"&gt;PDT&lt;/a&gt; and its ecosystem.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.eclipsecon.org/2008/index.php?page=sub/&amp;amp;id=16"&gt;Developing Rich Internet Application with Eclipse Tools&lt;/a&gt;&lt;/strong&gt;&lt;p&gt;It's about to get a whole lot easier for AJAX and PHP developers to develop Rich Internet Applications under the Eclipse environment.&lt;br /&gt;&lt;br /&gt;This tutorial introduces tools to develop Rich Internet Application including: &lt;ol&gt;&lt;li&gt;The Eclipse platform&lt;/li&gt;&lt;li&gt;The Web-tools platform and the AJAX Toolkit&lt;/li&gt;&lt;li&gt;The PHP Development tool&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;Content&lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Introduction to Eclipse and Web development environment&lt;/li&gt;&lt;li&gt;PHP (Server-Side) development tools&lt;/li&gt;&lt;li&gt;JavaScript (Browser-Side) development tools&lt;/li&gt;&lt;li&gt;Setting up a generic ‘hello world’ website&lt;/li&gt;&lt;li&gt;Developing your AJAX-PHP web-application&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.eclipsecon.org/2008/?page=sub/&amp;amp;id=17"&gt;Extending the PDT Project&lt;/a&gt;&lt;/strong&gt;&lt;p&gt;The PDT project provides a PHP Development framework for the Eclipse platform. This project encompasses all development components necessary to develop PHP and facilitate extensibility. It leverages the existing Web Tools Project in providing developers with PHP capabilities.&lt;br /&gt;&lt;br /&gt;In the PHP world, where there are hundreds of core extensions and dozens of frameworks, we finally have an accepted development environment that enables framework and core developers to support also their own development tools.&lt;br /&gt;&lt;br /&gt;This tutorial introduces the basics of PDT extension points and architecture as well as a case study of a well-known extension to PDT.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-7816758960891607805?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/7816758960891607805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=7816758960891607805' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/7816758960891607805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/7816758960891607805'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2007/12/speaking-at-eclipsecon-2008.html' title='Speaking at &lt;a href=&quot;http://www.eclipsecon.org/2008/&quot;&gt;EclipseCon 2008 &lt;/a&gt;'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-8298049971509806291</id><published>2007-11-19T08:58:00.000-08:00</published><updated>2007-11-19T22:40:50.769-08:00</updated><title type='text'>PDT Gets Smarty</title><content type='html'>&lt;div&gt;&lt;p&gt;Staring from day one of &lt;a href="http://www.eclipse.org/pdt"&gt;PDT&lt;/a&gt; project, a &lt;a href="https://bugs.eclipse.org/152451"&gt;feature request&lt;/a&gt; screaming "Support smarty template syntax coloring" was very popular in our bug tracking system. Twenty-three people voted for this issue, many posts were written about it in the newsgroup and users keep sending us e-mails hoping their request is going to be fulfilled in the near future.&lt;/p&gt;&lt;p&gt;Well... if I understand the Eclipse Foundation correctly, PDT developers shouldn't operate fast and fix these kinds of features. PDT was built only as a "&lt;i&gt;PHP Development Tools &lt;b&gt;framework&lt;/b&gt;&lt;/i&gt;". In the PHP world &lt;b&gt;where there are hundreds of core extensions and dozens of frameworks&lt;/b&gt; it is impossible to support all of them.&lt;/p&gt;&lt;p&gt;But... a feature request is a feature request. And feature requests are meant to be resolved. &lt;span style="color:black;"&gt;Applying simple logic rules &lt;/span&gt;derives that - "PDT Gets Smarty".&lt;/p&gt;&lt;p&gt;So the &lt;a href="http://www.eclipse.org/pdt/whois.php"&gt;growing eco-system of PDT&lt;/a&gt; has a new sibling called '&lt;a href="http://smartypdt.googlecode.com/"&gt;smartypdt&lt;/a&gt;' which is a project that "enables users to develop Smarty projects utilizing the power of PDT" it is a great initiative developed by &lt;a href="http://phpaspect.blogspot.com/"&gt;William Candillon&lt;/a&gt; , that was guided by me and we expect Dave Kelsey to join us soon. The results are really great!!!&lt;/p&gt;&lt;p&gt;For now two basic capabilities are provided: syntax coloring and compilation&lt;br /&gt;error analysis. This makes PDT and smartypdt the best development environment&lt;br /&gt;for Smarty developers.&lt;/p&gt;&lt;p&gt;The idea is that frameworks and extension creators will re-use the&lt;br /&gt;functionality presented in this project and provide it alongside their products&lt;br /&gt;to ease the development with PHP under PDT. &lt;/p&gt;&lt;p&gt;The package and source code can be accessed from here - &lt;a href="http://smartypdt.googlecode.com/"&gt;http://smartypdt.googlecode.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;You are more than welcome to test-drive it and submit &lt;a href="http://code.google.com/p/smartypdt/issues/entry"&gt;bugs&lt;/a&gt;, &lt;a href="http://code.google.com/p/smartypdt/issues/entry"&gt;features&lt;/a&gt; and &lt;a href="http://code.google.com/p/smartypdt/source"&gt;patches&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 628px; CURSOR: hand; HEIGHT: 268px; TEXT-ALIGN: center" height="181" alt="" src="http://smartypdt.googlecode.com/svn/trunk/org.eclipse.php.smarty.ui/sample/smartypdt.JPG" border="0" /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-8298049971509806291?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/8298049971509806291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=8298049971509806291' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/8298049971509806291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/8298049971509806291'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2007/11/pdt-gets-smarty.html' title='PDT Gets Smarty'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-6992634174498266826</id><published>2007-09-18T15:49:00.000-07:00</published><updated>2007-09-18T15:51:32.834-07:00</updated><title type='text'>One community, Dozen programmers, 1186 bugs and one quest for transcendent PHP editor</title><content type='html'>&lt;strong&gt;&lt;a href="http://www.eclipse.org/pdt"&gt;One community&lt;/a&gt;, &lt;a href="http://www.eclipse.org/pdt/people/main.php"&gt;Dozen programmers&lt;/a&gt;, &lt;a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=PDT"&gt;1186 bugs&lt;/a&gt; and one quest for &lt;a href="http://download.eclipse.org/tools/pdt/downloads/?release=R20070917"&gt;transcendent PHP editor&lt;/a&gt;&lt;/strong&gt;, By Roy Ganor&lt;br /&gt;&lt;br /&gt;A year and a half ago, I got a confirmation e-mail from &lt;a href="http://www.eclipse.org/"&gt;Eclipse Foundation Inc.&lt;/a&gt;, the subject was “Welcome to Eclipse!”. I probably didn’t understand the exact meaning of this message at that time.&lt;br /&gt;&lt;br /&gt;Today the &lt;a href="http://www.eclipse.org/pdt"&gt;PDT project&lt;/a&gt; community consists of about 30 users that are daily involved, and about 300 users that are weekly involved, and about 13,000 users that are monthly involved in the project . Remarkable! by any mean of open-source project.&lt;br /&gt;&lt;br /&gt;Going back to the beginning of the story, the group has started developing an Eclipse based PHP editor with mixed emotions. On the one hand our current implementation that was based on &lt;a href="http://www.zend.com/products/zend_studio"&gt;Java Swing Technology&lt;/a&gt;, was very robust and appreciated by PHP developers (many rewards, compliment reviews and winning contests). On the other hand we saw the effect of &lt;a href="http://www.eclipse.org/jdt/"&gt;JDT project&lt;/a&gt; on the Java community.&lt;br /&gt;&lt;br /&gt;I am not going to write about the development process as it would require at least more than ten pages to cover. I will rather tell you about the community, about us (the group) and about the integration level with the Eclipse community.&lt;br /&gt;&lt;br /&gt;So, the first question is how we grew to a large scale community? I can come up with many reasons.  Starting with the need for such a product and the existing Eclipse community, to the exposure we enjoyed during the development process. But if you ask me - there is one more (and most important) reason for growing to such a scale. Any community is based on its regular users that comprise 95% of it. This is the heart of the community and we felt that we should do more for them. We observed that everything went just great till one finds a defect in the editor, he then may:&lt;br /&gt;Browse to &lt;a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=PDT"&gt;Eclipse's bug tracking system&lt;/a&gt; and reports about the issue.&lt;br /&gt;Go to the \eclipse folder and remove it with a ‘–r’ parameter.&lt;br /&gt;But the question is how to make the user choose the first option? Well the answer is quite simple. A user will report on a bug if he gets a fix ASAP, say in 24 hours. 24 HOURS?! yes, he will then continue working with the product and probably report about another issues or features. In doing so he enters the 2% of the users that are called active users. We delivered the fix as part of a nightly build that was stable enough (unit tested) to be bundled and deployed.&lt;br /&gt;&lt;br /&gt;The integration level with the Eclipse community is another magical and interesting issue. During the process of development we encountered with an “imported” code that is written as a framework on a daily basis. Most of the time we worked with a conformist API that in any circumstances cannot be changed. In other cases we tried to contribute these framework projects and made them more flexible to us – probably this is the strength of one open-source community that is obligated to each other. One of my e-mails to &lt;a href="http://www.eclipse.org/webtools/"&gt;WST Project&lt;/a&gt; leader points out that it is a “miracle” that we integrated the PHP Editor into the Web Editor. Taking for example the JSP Editor whose team is a sub-project of WST and is relatively tight coupled to the Web Editor.&lt;br /&gt;&lt;br /&gt;PDT 1.0 is out and there are many reasons to call it the &lt;a href="http://download.eclipse.org/tools/pdt/downloads/?release=R20070917"&gt;transcendent PHP editor&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;(The name of this post was inspired by “Dreaming in Code”/Scott Rosenberg)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-6992634174498266826?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/6992634174498266826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=6992634174498266826' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/6992634174498266826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/6992634174498266826'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2007/09/one-community-dozen-programmers-1186.html' title='One community, Dozen programmers, 1186 bugs and one quest for transcendent PHP editor'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-3247074282599089558</id><published>2007-01-04T11:25:00.000-08:00</published><updated>2007-01-04T11:45:45.275-08:00</updated><title type='text'>Publish "Add Feed to Your Personalized Site"</title><content type='html'>&lt;u&gt;Google&lt;/u&gt;&lt;br /&gt;&lt;a href="http://fusion.google.com/add?feedurl=rss_url"&gt;http://fusion.google.com/add?feedurl=rss_url&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Msn Live&lt;/u&gt;&lt;br /&gt;&lt;a href="http://www.live.com/?add=rss_url"&gt;http://www.live.com/?add=rss_url&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;My Yahoo&lt;br /&gt;&lt;/u&gt;&lt;a href="http://add.my.yahoo.com/rss?url=rss_url"&gt;http://add.my.yahoo.com/rss?url=rss_url&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Netvibes&lt;/u&gt;&lt;br /&gt;&lt;a href="http://eco.netvibes.com/subscribe.php?url=rss_url&amp;type=rss"&gt;http://eco.netvibes.com/subscribe.php?url=rss_url;type=rss&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-3247074282599089558?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/3247074282599089558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=3247074282599089558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3247074282599089558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3247074282599089558'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2007/01/publish-add-feed-to-your-personalized.html' title='Publish &quot;Add Feed to Your Personalized Site&quot;'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-3557259046717701270</id><published>2007-01-03T10:43:00.000-08:00</published><updated>2007-01-03T10:50:14.205-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse test framework'/><title type='text'>Eclipse Plug-in Test Framework</title><content type='html'>After two weeks of configuring and scripting test packages I can say that "building" a build process is a very hard task, but worth the tears!&lt;br /&gt;&lt;br /&gt;now you can RSS: http://download.eclipse.org/tools/php/downloads/rss/updates.xml &lt;br /&gt;or be a member in pdt-unit-test@eclipse.org to be updated about the test results.&lt;br /&gt;&lt;br /&gt;Good night,&lt;br /&gt;Roy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-3557259046717701270?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/3557259046717701270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=3557259046717701270' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3557259046717701270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/3557259046717701270'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2007/01/eclipse-plug-in-test-framework.html' title='Eclipse Plug-in Test Framework'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-6274142020947784418</id><published>2007-01-02T13:08:00.000-08:00</published><updated>2007-01-02T13:43:43.603-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;end of line&quot; java'/><title type='text'>Transforming to linux-style stream</title><content type='html'>Why there are differences between the platforms end of line characters? Oh yes, Never ask the WHY question on standarts, so I found my self coding a small block to overcome this mini-crisis:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;color:#006600;"&gt;// given an input stream&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;final InputStream is = ...;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:100%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:100%;color:#006600;"&gt;// create a stream that behaves as a linux-style stream&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;InputStream linuxStream = new InputStream() {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family:courier new;"&gt;int &lt;strong&gt;previous&lt;/strong&gt; = -1;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family:courier new;"&gt;int &lt;strong&gt;current&lt;/strong&gt; = -1;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family:courier new;"&gt;int &lt;strong&gt;next&lt;/strong&gt; = -1;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;  public int read() throws IOException {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="font-family:courier new;font-size:100%;"&gt;if (&lt;strong&gt;next&lt;/strong&gt; != -1) {&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#006600;"&gt;// a buffered int was readen last iteration&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="font-family:courier new;font-size:100%;"&gt;&lt;strong&gt;current&lt;/strong&gt; = &lt;strong&gt;next&lt;/strong&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="font-family:courier new;font-size:100%;"&gt;&lt;strong&gt;next&lt;/strong&gt; = -1;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="font-family:courier new;font-size:100%;"&gt;} else { &lt;span style="font-family:courier new;font-size:100%;"&gt;&lt;span style="color:#006600;"&gt;// else read an int from the stream&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="font-family:courier new;font-size:100%;"&gt;&lt;strong&gt;current&lt;/strong&gt; = is.read();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="font-family:courier new;font-size:100%;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;    if (&lt;strong&gt;current&lt;/strong&gt; == 13) {&lt;br /&gt;        &lt;strong&gt;next&lt;/strong&gt; = is.read();&lt;br /&gt;        if (&lt;strong&gt;next&lt;/strong&gt; == 10) { &lt;span style="color:#006600;"&gt;// encounter "\r\n" transform to "\n"&lt;/span&gt;&lt;span style="font-family:courier new;font-size:100%;"&gt;&lt;br /&gt;            &lt;strong&gt;next&lt;/strong&gt; = -1;&lt;br /&gt;        }&lt;br /&gt;        &lt;strong&gt;current&lt;/strong&gt; = 10;&lt;br /&gt;    }&lt;br /&gt;    return &lt;strong&gt;previous&lt;/strong&gt; = &lt;strong&gt;current&lt;/strong&gt;;&lt;br /&gt;  }&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-6274142020947784418?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/6274142020947784418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=6274142020947784418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/6274142020947784418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/6274142020947784418'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2007/01/transforming-to-linux-style-stream.html' title='Transforming to linux-style stream'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36941363.post-7203987363436881624</id><published>2007-01-01T11:16:00.000-08:00</published><updated>2007-01-01T11:57:35.749-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webtop webtops operating systems future roy ganor'/><title type='text'>The Future of Operating Systems</title><content type='html'>Well... as I see it, there is no such thing "future to operating systems".&lt;br /&gt;Hi, wait a minute, are you fooling me? how computer will work without an operating system?&lt;br /&gt;&lt;br /&gt;They will, with a small effort one of the open-source companies will create a simple program that will first of all manage the basic hardware of a computer (I/O and memory), and second let the user the ability to browse the internet. Such kind of computers should be called "&lt;em&gt;Webtops&lt;/em&gt;" (I know that some people use this word to describe web office-style programs but I think that like laptops/desktops, we should call small computers that designed for the net - "&lt;em&gt;Webtops"&lt;/em&gt;). Oh ya! These computers will work fast, since they won't do any "heavy" computations.&lt;br /&gt;&lt;br /&gt;So what you're telling me that simple and light computer program will be backup by a huge backend servers? well... yes.&lt;br /&gt;&lt;br /&gt;There are many question here that I need to answer:&lt;br /&gt;&lt;strong&gt;Q&lt;/strong&gt;: Online vs. Offline work, how one should work without an internet connection?&lt;br /&gt;&lt;strong&gt;A&lt;/strong&gt;:  Do you realy think that internet connection will not be accessible from anywhere in 10 years from now?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Q&lt;/strong&gt;: What about security?&lt;br /&gt;&lt;strong&gt;A&lt;/strong&gt;: Security will be given by the server software.&lt;br /&gt;&lt;br /&gt;TBC...&lt;br /&gt;&lt;br /&gt;Roy Ganor,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36941363-7203987363436881624?l=ganoro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ganoro.blogspot.com/feeds/7203987363436881624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36941363&amp;postID=7203987363436881624' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/7203987363436881624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36941363/posts/default/7203987363436881624'/><link rel='alternate' type='text/html' href='http://ganoro.blogspot.com/2007/01/future-of-operating-systems.html' title='The Future of Operating Systems'/><author><name>Roy Ganor</name><uri>http://www.blogger.com/profile/10470159818677369634</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://bp1.blogger.com/_AL58K5147Xg/R764sRCgVII/AAAAAAAAC78/OEY1ejAIO3k/S220/roy.jpg'/></author><thr:total>1</thr:total></entry></feed>
