<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>PhilFreo.com</title>
	
	<link>http://philfreo.com/blog</link>
	<description>The portfolio and blog of Phil Freo, on web design, development, and entrepreneurship.</description>
	<pubDate>Wed, 08 Jul 2009 17:10:08 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/philfreo" type="application/rss+xml" /><item>
		<title>Now I’m a PHP5 Zend Certified Engineer</title>
		<link>http://feedproxy.google.com/~r/philfreo/~3/ljoTRoSoRH0/</link>
		<comments>http://philfreo.com/blog/php5-zend-certified-engineer/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 03:15:40 +0000</pubDate>
		<dc:creator>Phil Freo</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Zend]]></category>

		<guid isPermaLink="false">http://philfreo.com/blog/?p=96</guid>
		<description><![CDATA[I had a few goals for this summer away from school.  I wanted to go to some tech conferences, check out more startups and web companies in both Silicon Valley and closer to home in Florida, and continue with my freelance development work.  I also decided I wanted to take the Zend PHP 5 Certification [...]]]></description>
			<content:encoded><![CDATA[<p>I had a few goals for this summer away from school.  I wanted to go to some <a href="http://philfreo.com/blog/category/io2009/">tech</a> <a href="http://2009.sf.wordcamp.org/">conferences</a>, check out more startups and web companies in both Silicon Valley and closer to home in Florida, and continue with my freelance development work.  I also decided I wanted to take the <a href="http://www.zend.com/en/services/certification/php-5-certification/">Zend PHP 5 Certification</a> test to learn more, see what I know, and to separate myself from every other kid who thinks they know PHP.</p>
<p><span id="more-96"></span></p>
<p>By the way, the thing I hate about PHP most is that, because it&#8217;s so easy to get started with, you can&#8217;t immediately differentiate between people who really know PHP (with a solid understanding of security issues, scalability, MVC, object-oriented programming, design patterns, etc.) and people who know just enough to be dangerous.  I&#8217;ve seen way too many websites written with PHP and HTML scattered together, SQL injection vulnerabilities, lack of code reusability, etc. This problem isn&#8217;t specific to PHP only, but I find the percentage of novice PHP developers to be <em>far</em> worse than, say, Ruby or Python developers.</p>
<p>So I looked through the &#8220;php|architect&#8217;s Zend PHP 5 Certification&#8221; study guide for the last couple days and took an online practice test.  I actually learned a lot of interesting things about PHP that I didn&#8217;t know – so it was a good experience.</p>
<p>Today I took the exam at a local testing center and am happy to announce that I am officially a PHP 5 Zend Certified Engineer (ZCE).</p>
<p><a href="http://zend.com/zce.php?c=ZEND011307&#038;r=231006815"><img src="http://static.zend.com/topics/php5-zce-logo-new.gif" alt="Zend Certified Engineer, PHP 5" /></a></p>
<p>By the way, if you&#8217;re looking to hire a good PHP developer, let me know (<a href="/resume/">resume is here</a>).  I graduate in December 2009.</p>
<img src="http://feeds.feedburner.com/~r/philfreo/~4/ljoTRoSoRH0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://philfreo.com/blog/php5-zend-certified-engineer/feed/</wfw:commentRss>
		<feedburner:origLink>http://philfreo.com/blog/php5-zend-certified-engineer/</feedburner:origLink></item>
		<item>
		<title>Greasemonkey script: Facebook Reorder Sidebar</title>
		<link>http://feedproxy.google.com/~r/philfreo/~3/nt2bOSdqddo/</link>
		<comments>http://philfreo.com/blog/greasemonkey-script-facebook-reorder-sidebar/#comments</comments>
		<pubDate>Fri, 29 May 2009 06:29:34 +0000</pubDate>
		<dc:creator>Phil Freo</dc:creator>
		
		<category><![CDATA[Facebook]]></category>

		<category><![CDATA[Greasemonkey]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://philfreo.com/blog/?p=90</guid>
		<description><![CDATA[Hate scrolling down to see birthdays on Facebook? I just wrote a quick user script to reorder the parts in the sidebar on Facebook&#8217;s homepage.
Before: Requests, Suggestions, Sponsored, Highlights, Events/Birthdays, Connect
After: Requests, Events/Birthdays, Suggestions, Highlights, Sponsored, Connect
Step 1: install Greasemonkey (Firefox) or GreaseKit (Safari), and restart your browser
Step 2: install my Facebook Reorder Sidebar userscript
Step [...]]]></description>
			<content:encoded><![CDATA[<p>Hate scrolling down to see birthdays on Facebook? I just wrote a quick user script to reorder the parts in the sidebar on Facebook&#8217;s homepage.</p>
<p><strong>Before:</strong> Requests, Suggestions, Sponsored, Highlights, Events/Birthdays, Connect<br />
<strong>After</strong>: Requests, Events/Birthdays, Suggestions, Highlights, Sponsored, Connect</p>
<p><span id="more-90"></span>Step 1: install <a href="http://www.greasespot.net/">Greasemonkey</a> (Firefox) or <a href="http://8-p.info/greasekit/">GreaseKit</a> (Safari), and restart your browser<br />
Step 2: install my <a href="http://userscripts.org/scripts/show/50396">Facebook Reorder Sidebar</a> userscript<br />
Step 3: visit Facebook and enjoy <img src='http://philfreo.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/philfreo/~4/nt2bOSdqddo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://philfreo.com/blog/greasemonkey-script-facebook-reorder-sidebar/feed/</wfw:commentRss>
		<feedburner:origLink>http://philfreo.com/blog/greasemonkey-script-facebook-reorder-sidebar/</feedburner:origLink></item>
		<item>
		<title>Google I/O Keynote 2009, day 2</title>
		<link>http://feedproxy.google.com/~r/philfreo/~3/4dM8ZP36CiM/</link>
		<comments>http://philfreo.com/blog/google-io-keynote-2009-day-2/#comments</comments>
		<pubDate>Thu, 28 May 2009 18:26:12 +0000</pubDate>
		<dc:creator>Phil Freo</dc:creator>
		
		<category><![CDATA[Google]]></category>

		<category><![CDATA[Google Wave]]></category>

		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[io2009]]></category>

		<guid isPermaLink="false">http://philfreo.com/blog/?p=86</guid>
		<description><![CDATA[Google I/O 2009 Keynote, Day 2
4/28/2009
Google Wave - Product, Platform, and Protocol


Attempt to answer &#8220;what would email look like if it was developed today&#8221;
Combines Gmail, Translation, collaboration via Google Docs, Photos, etc., all in one
Because it is completely open, companies can host their own instances of Wave and Google never has to see the data - [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Google I/O 2009 Keynote, Day 2<br />
</strong><em>4/28/2009</em></p>
<p>Google Wave - Product, Platform, and Protocol</p>
<p><span id="more-86"></span></p>
<ul>
<li>Attempt to answer &#8220;what would email look like if it was developed today&#8221;</li>
<li>Combines Gmail, Translation, collaboration via Google Docs, Photos, etc., all in one</li>
<li>Because it is completely open, companies can host their own instances of Wave and Google never has to see the data - yet the users of separate platforms can still communicate with each other!</li>
</ul>
<p><a href="http://www.techcrunch.com/2009/05/28/exclusive-video-interview-with-the-google-wave-founders/?awesm=tcrn.ch_2ls&amp;utm_campaign=techcrunch&amp;utm_content=techcrunch-autopost&amp;utm_medium=tcrn.ch-twitter&amp;utm_source=twitter.com">TechCrunch coverage</a><br />
<a style="text-decoration: none;" href="http://wave.google.com/">Google Wave</a><br />
<a href="http://code.google.com/apis/wave/">Google Wave APIs</a><br />
<a href="http://www.waveprotocol.org/">Google Wave Protocols</a></p>
<p>I&#8217;m looking forward to WordCamp this weekend.  I&#8217;m curious to see if there will be any WordPress / Google Wave integration already.  Being able to have blog comments automatically pushed to users who aren&#8217;t actually looking at your blog would be a huge win.  If there&#8217;s no WordPress integration project already, I may just start one.</p>
<img src="http://feeds.feedburner.com/~r/philfreo/~4/4dM8ZP36CiM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://philfreo.com/blog/google-io-keynote-2009-day-2/feed/</wfw:commentRss>
		<feedburner:origLink>http://philfreo.com/blog/google-io-keynote-2009-day-2/</feedburner:origLink></item>
		<item>
		<title>Notes from Google I/O Keynote 2009, day 1</title>
		<link>http://feedproxy.google.com/~r/philfreo/~3/WONCn4ModNc/</link>
		<comments>http://philfreo.com/blog/notes-from-google-io-keynote-2009-day-1/#comments</comments>
		<pubDate>Thu, 28 May 2009 14:51:19 +0000</pubDate>
		<dc:creator>Phil Freo</dc:creator>
		
		<category><![CDATA[California]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[io2009]]></category>

		<guid isPermaLink="false">http://philfreo.com/blog/?p=81</guid>
		<description><![CDATA[Google I/O Keynote 
Wednesday 5/27/2009
San Francisco, CA #io2009

Better liveblogging here: http://www.techcrunch.com/2009/05/27/live-from-google-io-2009/
100x improvement in JavaScript speed in the last decade
Firefox, Chrome, Safari, &#38; Opera - all supporting HTML5 with Canvas, Video, Geolocation, App cache / database, Web workers

Canvas tag - supported in all but IE
Bespin - web IDE
Chrome profiler is built completely in HTML5
O3D - OpenSource [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Google I/O Keynote </strong></p>
<p><em>Wednesday 5/27/2009</em></p>
<p>San Francisco, CA #io2009</p>
<p><span id="more-81"></span></p>
<p>Better liveblogging here: <a href="http://www.techcrunch.com/2009/05/27/live-from-google-io-2009/">http://www.techcrunch.com/2009/05/27/live-from-google-io-2009/</a></p>
<p>100x improvement in JavaScript speed in the last decade</p>
<p>Firefox, Chrome, Safari, &amp; Opera - all supporting HTML5 with Canvas, Video, Geolocation, App cache / database, Web workers</p>
<p><strong></strong></p>
<p><strong>Canvas</strong> tag - supported in all but IE</p>
<p>Bespin - web IDE</p>
<p>Chrome profiler is built completely in HTML5</p>
<p>O3D - OpenSource 3d in JavaScript</p>
<p><strong>Video</strong> tag - get video out of &#8220;plugin prison&#8221;</p>
<p>YouTube demo with &lt;video&gt; tag</p>
<p><strong>Geolocation</strong> - supported in all browsers but IE</p>
<p>Mozillia VP - &#8220;A good API in 4 browsers is better than a perfect API in 0 or 1 browsers&#8221;</p>
<p>Google Maps will soon be adding a geolocation button</p>
<p>Announcement: Google Latitude on the iPhone in the browser using geolocation (WOW)</p>
<p><strong></strong></p>
<p><strong>App cache / database</strong> - supported in all browsers but IE</p>
<p>Demo: with Safari - manifest file names cached application/graphics files</p>
<p>Demo: web app on Android with GMail in airplane mode - extremely fast</p>
<p><strong></strong></p>
<p><strong>Web workers</strong> - threads in the browser - so JavaScript doesn&#8217;t completely freeze the browser</p>
<p>Demo: motion detection from the video tag all in JavaScript</p>
<p>===</p>
<p><strong>Google App Engine</strong></p>
<p>200,000+ developers, 80,000 + applications</p>
<p>Whitehouse app had 700 requests/second with no problem</p>
<p>Announcement: Java open on App Engine</p>
<p>Demo: develop an Ajax app in Eclipse (with Google plugin) in Java on both serverside (app engine) and client side (GWT) extremely quickly.  Just hit deploy (no FTP) in Eclipse.</p>
<p><strong>Google Web Toolkit</strong></p>
<p>Upcoming: Debug directly in any browser</p>
<p>Upcoming: runAsync() lets the compiler split up JavaScript files.  Example: 1.4MB to 200KB, compiler handled dependencies itself.</p>
<p>===</p>
<p><strong>Google Web Elements </strong>(announcement)</p>
<p>Copy and paste website content:</p>
<p>Calendar, Conversation, Custom Search, Maps, News, Presentations, etc.</p>
<p>===</p>
<p><strong>Android </strong>- coming soon new features</p>
<p>FREE ANDROID for everyone!</p>
<img src="http://feeds.feedburner.com/~r/philfreo/~4/WONCn4ModNc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://philfreo.com/blog/notes-from-google-io-keynote-2009-day-1/feed/</wfw:commentRss>
		<feedburner:origLink>http://philfreo.com/blog/notes-from-google-io-keynote-2009-day-1/</feedburner:origLink></item>
		<item>
		<title>Standalone icons for Prism &amp; Fluid: Gmail/GCal</title>
		<link>http://feedproxy.google.com/~r/philfreo/~3/V1pYUJcK2bo/</link>
		<comments>http://philfreo.com/blog/standalone-icons-for-prism-fluid-gmail-gcal/#comments</comments>
		<pubDate>Tue, 12 May 2009 04:44:39 +0000</pubDate>
		<dc:creator>Phil Freo</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://philfreo.com/blog/?p=67</guid>
		<description><![CDATA[Today I tried Mozilla Prism (cross platform) and Fluid (mac only), both of which are used to create single-site browsers (SSBs).  I especially wanted to use them for GMail and Google Calendar since those are the two web apps I consistently have open in a tab at all times.

I&#8217;m still playing with them both but the first [...]]]></description>
			<content:encoded><![CDATA[<p>Today I tried <a href="http://prism.mozilla.com">Mozilla Prism</a> (cross platform) and <a href="http://fluidapp.com/">Fluid</a> (mac only), both of which are used to create single-site browsers (SSBs).  I especially wanted to use them for GMail and Google Calendar since those are the two web apps I consistently have open in a tab at all times.</p>
<p><span id="more-67"></span></p>
<p>I&#8217;m still playing with them both but the first thing I realized was that they would have to do better than use the 16&#215;16 favicons.  I was able to extract the official high resolution Google icons from the Google Gears desktop shortcuts for GMail and GCal, so they are attached.  These will work for Fluid.  For Prism, you&#8217;ll have to use the PNGs attached.</p>
<p>Later I found <a href="http://csi.nfshost.com/goodies/">Chris Ivarson&#8217;s page</a> with some great icons, but my first couple Google searches didn&#8217;t lead me there, and he doesn&#8217;t have the standard icons that come from Google.</p>
<p>Edit: By the way, I have chosen Fluid because its icon shows me my number of unread messages so I can keep it hidden when I don&#8217;t have new mail&#8230; very helpful.</p>
<p>Attachments: <a href="http://philfreo.com/blog/wp-content/uploads/2009/05/gcal.icns">gcal.icns</a> <a href="http://philfreo.com/blog/wp-content/uploads/2009/05/gmail.icns">gmail.icns</a></p>
<p><img title="gcal.png" src="http://philfreo.com/blog/wp-content/uploads/2009/05/gcal.png" alt="gcal.png" width="128" height="128" /> <img title="gmail.png" src="http://philfreo.com/blog/wp-content/uploads/2009/05/gmail.png" alt="gmail.png" width="128" height="128" /></p>
<img src="http://feeds.feedburner.com/~r/philfreo/~4/V1pYUJcK2bo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://philfreo.com/blog/standalone-icons-for-prism-fluid-gmail-gcal/feed/</wfw:commentRss>
		<feedburner:origLink>http://philfreo.com/blog/standalone-icons-for-prism-fluid-gmail-gcal/</feedburner:origLink></item>
		<item>
		<title>WordPress Plugin: Arbitrary Shortcodes</title>
		<link>http://feedproxy.google.com/~r/philfreo/~3/OqUY6lbY_mY/</link>
		<comments>http://philfreo.com/blog/arbitrary-shortcodes/#comments</comments>
		<pubDate>Mon, 11 May 2009 03:22:39 +0000</pubDate>
		<dc:creator>Phil Freo</dc:creator>
		
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://philfreo.com/blog/?p=60</guid>
		<description><![CDATA[For a new project, I&#8217;m working on launching a large number of very similar WordPress installations with minimal effort.  I needed a way to have WordPress automatically parse some kind of template tag or shortcode (like &#8220;[client_name]&#8220;) across all the different pages on the site.  Not only that, I needed the field&#8217;s values [...]]]></description>
			<content:encoded><![CDATA[<p>For a new project, I&#8217;m working on launching a large number of very similar WordPress installations with minimal effort.  I needed a way to have WordPress automatically parse some kind of template tag or shortcode (like &#8220;[client_name]&#8220;) across all the different pages on the site.  Not only that, I needed the field&#8217;s values to be easily updated in one place, and there would be an arbitrary number of shortcodes.</p>
<p>So I wrote <strong>my first WordPress plugin</strong>&#8230;</p>
<p><span id="more-60"></span></p>
<p>Here&#8217;s a description of it:</p>
<blockquote><p>This plugin allows you to write your page content like this: &#8220;Contact our company, [company_name], by email at: [email].&#8221;</p>
<p>Text with these shortcodes can be defined on any number of pages throughout your site.</p>
<p>The values of all of the shortcodes are controlled in a single location: the Custom Fields of your blog&#8217;s home page. For the above example, there would be Custom Fields on the home page called &#8220;company_name&#8221; and &#8220;email&#8221; with the values, respectively, of &#8220;Example Company Name&#8221; and &#8220;info@example.com&#8221;.</p>
<p><em>This plugin requires that you have WordPress set to show a static Page on the home page under Settings-&gt;Reading and &#8220;Front page&#8221;.</em></p>
<p>So then, for all the custom fields entered on the home page, this plugin looks for shortcodes (in all pages) and replaces each of their values, upon output, with the relevant custom field value.</p>
<p>This is useful for if you want to fill many pages with text that includes an arbitrary number of shortcodes or template text and have all the values can be replaced in one place.</p></blockquote>
<p>You can <strong>download it from the </strong><a href="http://wordpress.org/extend/plugins/arbitrary-shortcodes/"><strong>plugin page</strong></a>, or just grab the <a href="http://plugins.svn.wordpress.org/arbitrary-shortcodes/trunk/">SVN</a>.</p>
<p>Random WordPress notes:</p>
<ul>
<li>I <em>highly</em> recommend always installing WordPress <a href="http://codex.wordpress.org/Installing/Updating_WordPress_with_Subversion">by svn</a> - it&#8217;s easy (faster than uploading) and makes updates a breeze.  If you want to get fancy, you can also install your plugins by svn <a href="http://www.boringguys.com/2008/02/18/using-subversion-externals-property-for-wordpress-upgrades/">through svn:externals</a>.</li>
<li>If you want to make the process go really quickly, take a look at <a href="http://birdhouse.org/software/2008/04/wp-create/">wp-create.sh</a>.  I&#8217;m using this (plus other tools) to setup WordPress installations in no time.</li>
<li>I just found out about /wp-admin/options.php for the first time - very handy way to see/edit all saved options at once.</li>
<li>I also just registered for <a href="http://2009.sf.wordcamp.org/">WordCamp 2009</a> in San Francisco&#8230; looking forward to it!</li>
</ul>
<img src="http://feeds.feedburner.com/~r/philfreo/~4/OqUY6lbY_mY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://philfreo.com/blog/arbitrary-shortcodes/feed/</wfw:commentRss>
		<feedburner:origLink>http://philfreo.com/blog/arbitrary-shortcodes/</feedburner:origLink></item>
		<item>
		<title>On OSX, svn: This client is too old to work with working copy ‘.’; please get a newer Subversion client</title>
		<link>http://feedproxy.google.com/~r/philfreo/~3/wBNL6-8fr1U/</link>
		<comments>http://philfreo.com/blog/svn-this-client-is-too-old-to-work-with-working-copy-please-get-a-newer-subversion-client/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 17:08:16 +0000</pubDate>
		<dc:creator>Phil Freo</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[SVN]]></category>

		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.philfreo.com/blog/?p=51</guid>
		<description><![CDATA[I got this message when trying to use Subversion on OS X through Terminal.
I checked out my svn version using &#8220;svn &#8211;version&#8221; and it said I was using 1.4.4 - so I decided to update.  Here&#8217;s how&#8230;

Download the latest SVN binaries for OS X and install them just like any other program:
http://svnbinaries.open.collab.net/
Update your system [...]]]></description>
			<content:encoded><![CDATA[<p>I got this message when trying to use Subversion on OS X through Terminal.</p>
<p>I checked out my svn version using &#8220;svn &#8211;version&#8221; and it said I was using 1.4.4 - so I decided to update.  Here&#8217;s how&#8230;<br />
<span id="more-51"></span></p>
<p>Download the latest SVN binaries for OS X and install them just like any other program:<br />
<a href="http://svnbinaries.open.collab.net/">http://svnbinaries.open.collab.net/</a></p>
<p>Update your system wide path settings by editing /etc/profile through the Terminal:</p>
<pre>$ cd /etc/
$ sudo vi profile</pre>
<p>At the top of the file, add the following line of text, then save and quit vi.</p>
<pre>export PATH=/opt/subversion:$PATH</pre>
<p>Then rename the old binary:</p>
<pre>$ cd /usr/bin
$ sudo mv svn svn.old
$ cd ~
$ svn --version</pre>
<p>And you should see the later version (mine is 1.5.5) and all is good.</p>
<p>Thanks to <a href="http://www.imarichardson.com/2008/10/06/osx-svn-woes-client-is-too-old-to-work-with-working-copy/">http://www.imarichardson.com/2008/10/06/osx-svn-woes-client-is-too-old-to-work-with-working-copy/</a></p>
<img src="http://feeds.feedburner.com/~r/philfreo/~4/wBNL6-8fr1U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://philfreo.com/blog/svn-this-client-is-too-old-to-work-with-working-copy-please-get-a-newer-subversion-client/feed/</wfw:commentRss>
		<feedburner:origLink>http://philfreo.com/blog/svn-this-client-is-too-old-to-work-with-working-copy-please-get-a-newer-subversion-client/</feedburner:origLink></item>
		<item>
		<title>Upgrading MySQL, PHP MySQL Client Version, phpMyAdmin</title>
		<link>http://feedproxy.google.com/~r/philfreo/~3/RXsWxJyjLsM/</link>
		<comments>http://philfreo.com/blog/upgrading-mysql-php-mysql-client-version-phpmyadmin/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 18:23:07 +0000</pubDate>
		<dc:creator>Phil Freo</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[phpMyAdmin]]></category>

		<guid isPermaLink="false">http://www.philfreo.com/blog/?p=43</guid>
		<description><![CDATA[Some mental notes for myself in case I encounter this again, and maybe this will help someone as I was doing Google searches trying to figure this out myself&#8230;

I have a server with ServInt, which runs WebHost Manager (WHM) and cPanel.  I logged into phpMyAdmin and it said I was running MySQL 4 instead of [...]]]></description>
			<content:encoded><![CDATA[<p>Some mental notes for myself in case I encounter this again, and maybe this will help someone as I was doing Google searches trying to figure this out myself&#8230;</p>
<p><span id="more-43"></span></p>
<p>I have a server with <a href="http://www.servint.com">ServInt</a>, which runs WebHost Manager (WHM) and cPanel.  I logged into phpMyAdmin and it said I was running MySQL 4 instead of 5.  Wanting to upgrade to MySQL 5, I went into WHM and used cPanel-&gt;Upgrade to Latest Version and Software-&gt;Update Server Software.  This updated everything just fine and it said I was running MySQL 5 (and doing &#8220;SELECT VERSION()&#8221; returned 5), even though phpMyAdmin still did not report v5.</p>
<p>I assumed the fact that I was running a very old version of phpMyAdmin was the problem.  Since I couldn&#8217;t find anyway to automatically upgrade phpMyAdmin in WHM/cPanel, I did the following, which tries to use your existing phpMyAdmin config file:</p>
<pre># wget -O /usr/local/cpanel/base/3rdparty/phpMyAdmin-3.1.2-all-languages.tar.gz http://dfn.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-3.1.2-all-languages.tar.gz
# tar xzf /usr/local/cpanel/base/3rdparty/phpMyAdmin-3.1.2-all-languages.tar.gz -C /usr/local/cpanel/base/3rdparty/
# cd /usr/local/cpanel/base/3rdparty/
# rm -f phpMyAdmin-3.1.2-all-languages.tar.gz
# cp -R phpMyAdmin phpMyAdmin-backup
# cp phpMyAdmin/config.inc.php phpMyAdmin-3.1.2-all-languages/config.inc.php
# mv phpMyAdmin phpMyAdmin-old
# mv phpMyAdmin-3.1.2-all-languages phpMyAdmin</pre>
<p>And then I got an error in phpMyAdmin, and seeing nothing significant in my old config file, did this to use the sample that comes with the new version:</p>
<pre># rm phpMyAdmin/config.inc.php
# cp phpMyAdmin/config.sample.inc.php phpMyAdmin/config.inc.php</pre>
<p>Then phpMyAdmin worked just fine, and the new version differentiates between Server version (which was now correct) and PHP Client version (which didn&#8217;t sound right).  I checked phpinfo() and the PHP MySQL client version was 5, but I read that I would have to recompile PHP.  I took the opportunity to upgrade from Apache 1 to 2 and to the latest release of PHP 5, all done using EasyApache under WHM-&gt;Softare.</p>
<p>With PHP upgraded and recompiled, I then went ahead and launched phpMyAdmin again.  It still gives the warning, <em>&#8220;Your PHP MySQL library version 4.1.22 differs from your MySQL server version 5.0.67. This may cause unpredictable behavior.&#8221;</em>, which is what I was trying to get rid of, but now I give up.  I know my MySQL client and server versions are both 5, so if anyone knows how to fix that warning let me know.</p>
<p>Let me know if you know why phpMyAdmin gives this warning.</p>
<p>PS, I also did this:
<pre>#vi phpMyAdmin/config.inc.php</pre>
<p> and added a random string under blowfish_secret. </p>
<img src="http://feeds.feedburner.com/~r/philfreo/~4/RXsWxJyjLsM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://philfreo.com/blog/upgrading-mysql-php-mysql-client-version-phpmyadmin/feed/</wfw:commentRss>
		<feedburner:origLink>http://philfreo.com/blog/upgrading-mysql-php-mysql-client-version-phpmyadmin/</feedburner:origLink></item>
		<item>
		<title>Switch to MacBook Pro and OS X</title>
		<link>http://feedproxy.google.com/~r/philfreo/~3/nJF59e6TMT8/</link>
		<comments>http://philfreo.com/blog/switch-to-macbook-pro-and-os-x/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 22:24:05 +0000</pubDate>
		<dc:creator>Phil Freo</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.philfreo.com/blog/?p=35</guid>
		<description><![CDATA[A couple months ago I bought my first Mac computer with the release of the new MacBook Pros. The new machine is beautiful and the switch to OS X from Windows has been primarily positive overall.
There were a few things from Windows that I greatly missed, but I found solutions which worked:

Make Safari open new [...]]]></description>
			<content:encoded><![CDATA[<p>A couple months ago I bought my first Mac computer with the release of the new MacBook Pros. The new machine is beautiful and the switch to OS X from Windows has been primarily positive overall.</p>
<p>There were a few things from Windows that I greatly missed, but I found solutions which worked:<br />
<span id="more-35"></span></p>
<p><strong>Make Safari open new windows in new tabs</strong> (especially links in Gmail messages), just like Firefox: <a href="http://hetima.com/safari/stand-e.html" target="_blank">http://hetima.com/safari/stand-e.html</a></p>
<p>My Bluetooth Mouse was extremely difficult to use with the <strong>OS X mouse acceleration settings</strong>.  Fortunately after trying several options I found a program that fixed the problem for me: <a href="http://www.usboverdrive.com/" target="_blank">http://www.usboverdrive.com/</a></p>
<p><strong>Create &#8220;new document&#8221; context menu option in Finder</strong> to create a quick way to make a new Word document or Text document in a specific folder: <a href="http://www.growlichat.com/NuFile.php" target="_blank">http://www.growlichat.com/NuFile.php</a></p>
<p><strong>Combine multiple buddy lists into one in iChat</strong>: <a href="http://www.ksuther.com/chax/" target="_blank">http://www.ksuther.com/chax/</a></p>
<p><strong>Quickly lock your computer like Windows Key + L</strong>: <a href="http://www.gkoya.com/2006/11/23/locktight-for-mac-os-x-intel/">http://www.gkoya.com/2006/11/23/locktight-for-mac-os-x-intel/</a></p>
<img src="http://feeds.feedburner.com/~r/philfreo/~4/nJF59e6TMT8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://philfreo.com/blog/switch-to-macbook-pro-and-os-x/feed/</wfw:commentRss>
		<feedburner:origLink>http://philfreo.com/blog/switch-to-macbook-pro-and-os-x/</feedburner:origLink></item>
		<item>
		<title>Google Summer Internship Completed / Goodbye California</title>
		<link>http://feedproxy.google.com/~r/philfreo/~3/JWjgpu4tYQQ/</link>
		<comments>http://philfreo.com/blog/google-summer-internship-completed-goodbye-california/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 19:11:41 +0000</pubDate>
		<dc:creator>Phil Freo</dc:creator>
		
		<category><![CDATA[California]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.philfreo.com/blog/?p=32</guid>
		<description><![CDATA[This summer I had the privilege to intern at Google and spent another summer in Silicon Valley - the hub of all things tech-related.  My internship lasted 10 weeks and, much like my Yahoo! internship last summer (I gave my reasons for not going back to Yahoo! this summer), I had an incredible experience.

I [...]]]></description>
			<content:encoded><![CDATA[<p>This summer I had the privilege to intern at Google and spent another summer in Silicon Valley - the hub of all things tech-related.  My internship lasted 10 weeks and, much like my Yahoo! internship last summer (I gave my <a href="http://www.philfreo.com/blog/?p=29">reasons for not going back to Yahoo! this summer</a>), I had an incredible experience.</p>
<p><span id="more-32"></span></p>
<p>I learned a lot at Google.  I did a combination of development for the front-end (JavaScript/AJAX, CSS/HTML) as well as on the back-end (PHP, Java).  Every line of code that I wrote was code reviewed by another Googler before it could be checked in.  At first I thought this was an unnecessary and time-wasting procedure, but I came to understand the importance of this, even for the seemingly unimportant pieces of code.  When you know someone else is going to be looking at your code, it forces you to program more clearly and concisely, and I learned better coding techniques from the code reviews.  Also, by ensuring that all code at Google conforms to the same style guides, any engineer can quickly jump into someone else&#8217;s code with the smallest possible learning curve.</p>
<p>My software engineering internship was pretty unique and flexible because of the team that I was on, so I also had the opportunity to do a good bit of UI (user interface) work.  I designed from scratch, improved existing UIs, and did research and make recommendations for better UIs.  My other team members (<a href="http://www.guidebookgallery.org/">here&#8217;s</a> <a title="Ted Dziuba" href="http://www.uncov.com/">two</a>) were very talented and I was able to learn a lot just by working along side them.  Working at a company like Google is great because you are constantly surrounded by very intelligent people.</p>
<p>It is a great feeling to know that you&#8217;re working at a company which is providing products and services that millions of people use every day.  It is an even better feeling to know that your work is directly being used and liked by real people.  At Google, while doing research for one of my projects, I had an idea that would help save other Googlers time and make them more productive.  Without getting into details about the project itself, after about 1,000 lines of JavaScript, I had created something that <em>a lot </em>of Googlers started using, talking about, and sharing with others.  It wasn&#8217;t a world changing application that is being launched externally any time soon, but it was useful enough that we could actually see it spreading virally throughout the company, and I got over 100 thank you emails within a few days.  I can only imagine the great feeling it would have been to create an external product (like GMail), that millions of people love and use daily.</p>
<p>Another great part of the summer was the opportunities for networking.  I was able to visit <a href="http://meebo.com">Meebo</a> for another great <a href="http://www.lunch20.com/">lunch2.0</a>, visited the offices of <a href="http://facebook.com/">Facebook</a> a couple times, met the creator of <a href="http://mint.com/">Mint</a> (which I think is my favorite web2.0 app of the year), attended <a href="http://wordcamp.org">WordCamp</a>, and attended the <a href="http://www.techcrunch.com/2007/07/28/techcrunch-9-at-august-capital-thank-you-for-coming/">Techcrunch Party 9</a> at August Capital.  It was also great seeing, meeting, and hanging out with a lot of other young people working in the web space - other Google interns, friends at Yahoo! and eBay, those doing startups, others working in the Bay Area, and friends who flew out to visit.<br />
Overall, I&#8217;d give the summer a thumbs up.  For now, I&#8217;m back in Gainesville studying Computer Engineering at UF, where the weather is significantly hotter.  A lot of people have asked me about next summer and what I want to do when I graduate.  I still do not know.  I could definitely see myself at a company like Google, but for now I am just looking forward to a new semester at school and am not making any definite plans yet.</p>
<img src="http://feeds.feedburner.com/~r/philfreo/~4/JWjgpu4tYQQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://philfreo.com/blog/google-summer-internship-completed-goodbye-california/feed/</wfw:commentRss>
		<feedburner:origLink>http://philfreo.com/blog/google-summer-internship-completed-goodbye-california/</feedburner:origLink></item>
	</channel>
</rss>
