<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>phoenixheart - portfolio &#38; more &#187; Freebies</title> <atom:link href="http://www.phoenixheart.net/category/freebies/feed/" rel="self" type="application/rss+xml" /><link>http://www.phoenixheart.net</link> <description>phoenixheart - portfolio &#38; more</description> <lastBuildDate>Wed, 25 Aug 2010 03:02:03 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.1</generator> <script type="text/javascript">/*<![CDATA[*/if(typeof Meebo=="undefined"){Meebo=function(){(Meebo._=Meebo._||[]).push(arguments)};(function(q){var args=arguments;if(!document.body){return setTimeout(function(){args.callee.apply(this,args)},100);}var d=document,b=d.body,m=b.insertBefore(d.createElement('div'),b.firstChild);s=d.createElement('script');m.id='meebo';m.style.display='none';m.innerHTML='<iframe id="meebo-iframe"></iframe>';s.src='http'+(q.https?'s':'')+'://'+(q.stage?'stage-':'')+'cim.meebo.com/cim/cim.php?network='+q.network;b.insertBefore(s,b.firstChild);})({network:'phoenixheartnet_bo16we'});}/*]]>*/</script> <item><title>Social Sketches &#8211; a free icon set released for Six Revisions</title><link>http://www.phoenixheart.net/2010/01/social-sketches-a-free-icon-set-released-for-six-revisions/</link> <comments>http://www.phoenixheart.net/2010/01/social-sketches-a-free-icon-set-released-for-six-revisions/#comments</comments> <pubDate>Sun, 10 Jan 2010 02:08:30 +0000</pubDate> <dc:creator>phoenix.heart</dc:creator> <category><![CDATA[Design]]></category> <category><![CDATA[Featured]]></category> <category><![CDATA[Freebies]]></category><guid
isPermaLink="false">http://www.phoenixheart.net/?p=435</guid> <description><![CDATA[Today I&#8217;m so pleased to announce the release of Social Sketches, my hand-drawn icon set exclusively done for Six Revisions. Initially it was made for Referrer Detector on my just-started sketch project The Daily Faces, but then I decided to make it available for public use, hence the featuring on Six Revisions yesterday. Here is [...]]]></description> <content:encoded><![CDATA[<p>Today I&#8217;m so pleased to announce the release of Social Sketches, my hand-drawn icon set exclusively done for Six Revisions. Initially it was made for Referrer Detector on my just-started sketch project <a
href="http://dai.lyfaces.com">The Daily Faces</a>, but then I decided to make it available for public use, hence <a
href="http://sixrevisions.com/freebies/icons/social-sketches-exclusive-free-hand-sketched-icon-set/">the featuring on Six Revisions</a> yesterday.</p><p>Here is the preview of the set:</p><p><img
class="shot" title="Social Sketches Preview" src="/wp-content/uploads/2010/01/social-sketches-preview.jpg" alt="" width="435" height="512" /></p><p>For more information and download, please head to <a
href="http://sixrevisions.com/freebies/icons/social-sketches-exclusive-free-hand-sketched-icon-set/">Six Revisions&#8217; post</a>.</p><p>P.S. I have a plan to add some more icons into the set, so stay tuned <img
src='http://www.phoenixheart.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p> <img
style='display:none' id="post-435-blankimage" onload="Meebo('discoverSharable', {element: ((this.parentNode.className.match('post')) ? this.parentNode : this.parentNode.parentNode) ,url:'http://www.phoenixheart.net/2010/01/social-sketches-a-free-icon-set-released-for-six-revisions/',title:'Social Sketches &#8211; a free icon set released for Six Revisions',tweet:'Today I&#8217;m so pleased to announce the release of Social Sketches, my hand-drawn icon set exclus',description:'Today I&#8217;m so pleased to announce the release of Social Sketches, my hand-drawn icon set exclus'})"><script type='text/javascript'>document.getElementById("post-435-blankimage").onload();</script>]]></content:encoded> <wfw:commentRss>http://www.phoenixheart.net/2010/01/social-sketches-a-free-icon-set-released-for-six-revisions/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Here we go &#8211; CDN Rewrites</title><link>http://www.phoenixheart.net/2009/09/here-we-go-cdn-rewrites/</link> <comments>http://www.phoenixheart.net/2009/09/here-we-go-cdn-rewrites/#comments</comments> <pubDate>Thu, 24 Sep 2009 10:15:34 +0000</pubDate> <dc:creator>phoenix.heart</dc:creator> <category><![CDATA[Featured]]></category> <category><![CDATA[Freebies]]></category> <category><![CDATA[Server stuffs]]></category> <category><![CDATA[cdn-rewrites]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://www.phoenixheart.net/?p=325</guid> <description><![CDATA[Right after Free CDN was released, I got a request to enhance the plugin to support commercial Content Delivery Networks &#8211; you know, those big guys like Akamai, Limelight, EdgeCast, Velocix etc. The implementation is not too complicated: specify an origin host, and rewrite it into a destination host. That origin is of course usually [...]]]></description> <content:encoded><![CDATA[<p>Right after Free CDN was released, I got a request to enhance the plugin to support commercial Content Delivery Networks &#8211; you know, those big guys like Akamai, Limelight, EdgeCast, Velocix etc. The implementation is not too complicated: specify an origin host, and rewrite it into a destination host. That origin is of course usually http://www.a-busy-site.com, and the destination is something a <a
href="http://www.valuecdn.com" class="qc">Content Delivery Network</a> would provide you with: http://static.a-busy-site.com, or http://images.a-busy-site.com, or http://a-static-host.com etc. This way, all static contents will be served from that CDN host.</p><p>So, instead of developing the enhancement as a new feature for Free CDN, I decided to create a new plugin called CDN Rewrites. <span
id="more-325"></span>The implementation was not really a breeze, but in the end it worked rather smoothly.</p><p>I would like to thank <a
href="http://www.ezsite.us/">Mike Colburn</a> for the idea and being so kind enough to help me with all the documents and testing. Without him this plugin would never see the light.</p><p>Head <a
href="/wp-plugins/cdn-rewrites/">here for the plugin&#8217;s official page</a>.</p> <img
style='display:none' id="post-325-blankimage" onload="Meebo('discoverSharable', {element: ((this.parentNode.className.match('post')) ? this.parentNode : this.parentNode.parentNode) ,url:'http://www.phoenixheart.net/2009/09/here-we-go-cdn-rewrites/',title:'Here we go &#8211; CDN Rewrites',tweet:'Right after Free CDN was released, I got a request to enhance the plugin to support commercial Conte',description:'Right after Free CDN was released, I got a request to enhance the plugin to support commercial Conte'})"><script type='text/javascript'>document.getElementById("post-325-blankimage").onload();</script>]]></content:encoded> <wfw:commentRss>http://www.phoenixheart.net/2009/09/here-we-go-cdn-rewrites/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>First version of Free CDN WP plugin released!</title><link>http://www.phoenixheart.net/2009/09/free-cdn-first-version-released/</link> <comments>http://www.phoenixheart.net/2009/09/free-cdn-first-version-released/#comments</comments> <pubDate>Sun, 13 Sep 2009 17:03:10 +0000</pubDate> <dc:creator>phoenix.heart</dc:creator> <category><![CDATA[Featured]]></category> <category><![CDATA[Freebies]]></category> <category><![CDATA[Server stuffs]]></category> <category><![CDATA[free CDN]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://www.phoenixheart.net/?p=314</guid> <description><![CDATA[Office life has its advantages and disadvantages. On one hand, it keeps me so exhausted and leaves me so little free time for other hobbies &#8211; I&#8217;m talking about my books, my December Flower guitar self-training, my photographic stuffs etc. On the other hand, it does improve my knowledge and skills with all those working [...]]]></description> <content:encoded><![CDATA[<p>Office life has its advantages and disadvantages. On one hand, it keeps me so exhausted and leaves me so little free time for other hobbies &#8211; I&#8217;m talking about my books, my <a
href="http://www.youtube.com/watch?v=sLPXAcAsLgo">December Flower</a> guitar self-training, my photographic stuffs etc. On the other hand, it does improve my knowledge and skills with all those working requirements.</p><p>I&#8217;m rather lucky to be working as an R&amp;D guy in my current company, thus got a (legal) chance to (legally) spare a lot of time for (sometimes illegal) new and cool stuffs. Among them is <abbr
title="Content Delivery Network">CDN</abbr>, a solution to distribute (mostly static) contents across a network and let end-user access their copies from the cloud instead of the central server itself, thus reduces bottle neck problems during peak hours. To enterprise websites like those of Microsoft, Yahoo, Amazon, eBay etc., this is vital, as the number of concurrent visitors and downloads very frequently exceeds millions. Some of them build their own CDN, when the others rather hire third party services to handle the load to save time and money. Most well known among these 3rd services are properly <a
href="http://www.akamai.com">Akamai</a> and <a
href="http://www.limelightnetworks.com/">Limelight</a>, though there is a vast of them, naturally. For instance, Windows 7 downloads (~2GB each!) were served through Akamai network, when the live internet broadcast of Barrack Obama&#8217;s inaugural speech was done with help from Limelight.<span
id="more-314"></span></p><p>CDN&#8217;s are great as they save websites from heavy loads thus reduces bandwidth and shorten that number on the webmasters&#8217; monthly bills. So why aren&#8217;t they used so popularly? Well, because in general they are expensive, as you can tell. Depending on each CDN&#8217;s price table and the data size, the cost of using a CDN may range from thousands a month, which is unaffordable for like 98% of our blog owners despite of being just a peanut to Yahoo and Microsoft. So unless he is earning millions from selling Photoshop brushes or Google ads on his personal blog, a blog owner would close his eyes and wait for that Digg wave to calm down instead of (dare) using a CDN and survive the typhoon. So the rich keep getting richer and the poor keep remaining poor, life is bitter huh?</p><p>Not really (whoo hoo!). Akamai and Limelight are big, but they are not the only. Aside of those commerical CDN&#8217;s, there are some free ones, like <a
href="http://www.coralcdn.org/">Coral</a>, which provide us with free CDN &#8211; means free bandwidth. Coral CDN uses peer-to-peer technology in its CDN architecture, thus eliminates the need of maintaining a system of expensive server clusters while still offering an CDN solution with acceptable speed and stability. Long story shot, we small blog owners can also have CDN (on pair with Microsoft, yay!).</p><p>It&#8217;s dead simple to get a content (being any of types, but most commonly static contents like images, video clips, music tracks, css, java scripts) served thought Coral. All you have to do is appending <em
style="color:#f00; font-weight:bold">.nyud.net</em> to the host name of that content&#8217;s URL and call it done. Try it <a
href="http://www.phoenixheart.net.nyud.net">here</a>, <a
href="http://www.thica.net.nyud.net">here</a>, and <a
href="http://www.digg.com.nyud.net">here</a> to see it yourself. The first time requested, the content is retrieved from the original server and cached on Coral&#8217;s distributed servers. From the second request on, visitors will get a copy of that content from Coral. If the content weights 100KB in size, you&#8217;ve just saved 100KB bandwidth. If you have 1000 requests, it&#8217;s 100MB of bandwidth saved. Piece of cake.</p><p>So I was very excited getting to know about Coral and free P2P CDN&#8217;s. Then I told myself: ok, it&#8217;s time for another WordPress plugin &#8211; a &#8220;Free CDN&#8221; one which will rewrite all static URLs (being images, css, js etc.) to take advantage of Coral. Easier said than done, but nonetheless, I managed to get it done (thank you very much <a
href="http://omninoggin.com/">Thaya</a>, for the great help on how to capture the whole WordPress HTML stream). Today is the day <a
href="/wp-plugins/free-cdn/">Free CDN WordPress plugin</a> is born, cheers! The concept behind this plugin is simple: it looks for static contents inside a WordPress page and rewrites them into Coral-ready format. For example, <em>http://www.yourblog.com/wp-contents/themes/one-room/images/sprites.png</em> will be rewritten into <em>http://www.yourblog.com<strong>.nyud.net</strong>/wp-contents/themes/one-room/images/sprites.png</em> and gets handled by Coral network.</p><p>If your blog is rather small and you don&#8217;t have to worry about bandwidth fee / peak times, then it may be not worth your time to lay an eye on this plugin. But if you have a big enough blog with tens of thousands of views a day, and the bandwidth fee is giving you some good nightmare, and the bottle necks are causing you some headaches, then why not <a
href="/wp-plugins/free-cdn/">give Free CDN a try</a>?</p> <img
style='display:none' id="post-314-blankimage" onload="Meebo('discoverSharable', {element: ((this.parentNode.className.match('post')) ? this.parentNode : this.parentNode.parentNode) ,url:'http://www.phoenixheart.net/2009/09/free-cdn-first-version-released/',title:'First version of Free CDN WP plugin released!',tweet:'Office life has its advantages and disadvantages. On one hand, it keeps me so exhausted and leaves m',description:'Office life has its advantages and disadvantages. On one hand, it keeps me so exhausted and leaves m'})"><script type='text/javascript'>document.getElementById("post-314-blankimage").onload();</script>]]></content:encoded> <wfw:commentRss>http://www.phoenixheart.net/2009/09/free-cdn-first-version-released/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>Referrer Detector 4.2.0.1 (and the IE pain)</title><link>http://www.phoenixheart.net/2009/05/referrer-detector-4-2-0-1-ie-pain/</link> <comments>http://www.phoenixheart.net/2009/05/referrer-detector-4-2-0-1-ie-pain/#comments</comments> <pubDate>Sat, 23 May 2009 04:28:14 +0000</pubDate> <dc:creator>phoenix.heart</dc:creator> <category><![CDATA[Freebies]]></category> <category><![CDATA[Server stuffs]]></category> <category><![CDATA[ie]]></category> <category><![CDATA[Referrer Detector]]></category><guid
isPermaLink="false">http://www.phoenixheart.net/?p=302</guid> <description><![CDATA[On May 12 I managed to release the latest major version of Referrer Detector. As it was a complete rewritten, bugs are not a doubt expected. Since then, there has been 5 newer versions: 4.0.1 &#8211; A hot fix to for allow_call_time_pass_reference problem. As for version 5, PHP passes function parameters by reference by default, [...]]]></description> <content:encoded><![CDATA[<p>On May 12 I managed to release <a
href="http://www.phoenixheart.net/2009/05/referrer-detector-4-is-out/">the latest major version</a> of <a
href="http://www.phoenixheart.net/wp-plugins/referrer-detector/">Referrer Detector</a>. As it was a complete rewritten, bugs are not a doubt expected. Since then, there has been 5 newer versions:</p><ul><li>4.0.1 &#8211; A hot fix to for allow_call_time_pass_reference problem. As for version 5, PHP passes function parameters by reference by default, thus eliminate the need of the prefix <em>&amp;</em>. This shouldn&#8217;t be anything big, if it didn&#8217;t generate a warning with any attempt to use <em>&amp;</em> and totally break my JavaScript&#8217;s eval().</li><li>4.0.2 &#8211; Some other hot fixes.</li><li>4.1.0 &#8211; &#8220;Related posts&#8221; feature implemented, and a tiny &#8220;Powered by Referrer Detector&#8221; line added into the welcome div. If you mind, both options can be turned off via Options panel &#8211; one-click. Also, the CSS was nearly completely changed.</li><li>4.1.0.1 &#8211; I accidentally (and stupidly) uploaded some 4.0.2 code in place of 4.1.0, and EVERYTHING was broken. This version is actually a quick roll-back, so the features were exactly the same with 4.0.2 &#8211; oops.</li><li>4.1.1 &#8211; This IS 4.1.0 <img
src='http://www.phoenixheart.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></li></ul><p>So today I would like to announce the release of Referrer Detector 4.2.0.1 (code name: IE-PAIN). For this version we have another option on how to display the welcome box &#8211; in light box style. This is not a joke: I saw the light box in action in <em>my dream</em>, and started to implement it right when I woke up, basing on <a
href="http://www.ericmmartin.com/projects/simplemodal/">SimpleModal</a>. <a
href="http://en.wikipedia.org/wiki/Dmitri_Mendeleev">Mendeleev</a>&#8216;s style, haha. Actually I&#8217;m not sure if this welcome style fits normal needs, but for advertisements it seems to. At least it has some cool effects.<span
id="more-302"></span></p><p>If you wonder about its cool code name, here you go:</p><ul><li>First, version 4.1.1 has a serious bug (or is it IE?) which cause the whole admin panel to stop functioning. IE informally and informatively told me that at line 303, column 13, page ?rd.class.php there was a serious &#8220;Expected identifier, string or number&#8221; error. Actually it was a <em>&lt;/tr&gt;</em> closing tag there&#8230; but I had some experience with it already: must be <a
href="http://avnetlabs.com/javascript/expected-identifier-string-or-number-say-what">an extra comma in a JavaScript array</a>. The problem is, I have like thousands of JavaScript lines within this plugin, and so it took me one hour for a single comma. Thank you, IE, for the extra headache!</li><li>Then, I spent almost 2 hours to beautify the CSS. Everything was perfect, until I switched to IE. Then, I spent almost 2 hours more to beautify THE CSS on IE. Everything was perfect, until I switched back to Firefox. Then, I reverted back my files, and gave up, and went to sleep. Everything was perfect &#8211; damn it.</li><li>After the CSS is ok on all major browsers, the welcome box disappeared on IE. Just the same eval() code worked on Firefox and all others! I tried execScripts(), I tried jQuery plugins, I tried alert(), I tried document.write() &#8211; hopelessly. PHP returned the correct string, Base64 plugin decoded it with no hassle, but IE failed to properly insert it into DOM. Stupid. One more night, and I discovered that in some Ajax circumstances, $(&#8220;element&#8221;).replaceWith(html) doesn&#8217;t work in IE. Stupid. When $(&#8220;element&#8221;).after(html).remove() does. Stupid.</li><li>Troubles wouldn&#8217;t stop there. The message eventually showed up &#8211; kind of. It was there, but not visible. If the mouse was hovering a link &#8211; the line appeared. Moused out, and it&#8217;s gone. Have you ever imagined that? Do you have any clue why CSS <code>display: inline</code> fixed it? I&#8217;ve no idea.</li></ul><p>If it wasn&#8217;t IE, I would have released this new version 3 days ago. So I say (sorry, parental control recommended): Curse you, IE, go die pig!</p><p>Almost forgot it: nevertheless, Referrer Detector 4.2.0.1 is here, that&#8217;s what important <img
src='http://www.phoenixheart.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p> <img
style='display:none' id="post-302-blankimage" onload="Meebo('discoverSharable', {element: ((this.parentNode.className.match('post')) ? this.parentNode : this.parentNode.parentNode) ,url:'http://www.phoenixheart.net/2009/05/referrer-detector-4-2-0-1-ie-pain/',title:'Referrer Detector 4.2.0.1 (and the IE pain)',tweet:'On May 12 I managed to release the latest major version of Referrer Detector. As it was a complete r',description:'On May 12 I managed to release the latest major version of Referrer Detector. As it was a complete r'})"><script type='text/javascript'>document.getElementById("post-302-blankimage").onload();</script>]]></content:encoded> <wfw:commentRss>http://www.phoenixheart.net/2009/05/referrer-detector-4-2-0-1-ie-pain/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Referrer Detector 4.0 is out!</title><link>http://www.phoenixheart.net/2009/05/referrer-detector-4-is-out/</link> <comments>http://www.phoenixheart.net/2009/05/referrer-detector-4-is-out/#comments</comments> <pubDate>Tue, 12 May 2009 16:51:48 +0000</pubDate> <dc:creator>phoenix.heart</dc:creator> <category><![CDATA[Featured]]></category> <category><![CDATA[Freebies]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[Referrer Detector]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://www.phoenixheart.net/?p=290</guid> <description><![CDATA[Finally I&#8217;ve made it! Referrer Detector version 4.0 is now out! I decided to mark this as a major version increment because of these reasons: The code has been COMPLETELY re-written from scratch. As of the previous versions, it was one big file that handled everything from admin to front-end control. Needless to say how [...]]]></description> <content:encoded><![CDATA[<p>Finally I&#8217;ve made it! Referrer Detector version 4.0 is now out! I decided to mark this as a major version increment because of these reasons:</p><ol><li>The code has been COMPLETELY re-written from scratch. As of the previous versions, it was one big file that handled everything from admin to front-end control. Needless to say how inconvenient this approach had become when bug fixes and new features were added&#8230; too bad that I have decided to throw all away and build a brand new <abbr
title="Object Oriented Programming">OOP</abbr> Referrer Detector. Well, it was a looong and tough way, but I&#8217;ve never looked back!</li><li>The data are now in (ahem) database. I was thinking (and convincing myself) that a JavaScript file is faster, as it reduces the number of database requests. But with time, it becomes too bloat and too hard for me to track bugs as well as to add improvements. So I told myself: hell with this sacrifice, I better obey the power of MySQL.</li><li>The biggest new feature that I&#8217;m really excited of is the ability to add <em>localized messages</em>. In the past, your users were welcomed the the same (English) greetings regardless of which country they were from. Now you can specify a localized message for those from Vietnam, another for Brazilians, Portuguese, and so on. The plugin will try to detect users&#8217; country and decide which message to show. Isn&#8217;t it cool?</li><li>The second new feature is the ability to backup and restore stuffs, including entries, excluded URLs, and options. For restoring, in order to keep the administration panel AJAX&#8217;ed, I go with <a
href="http://www.uploadify.com/">Uploadify</a>, a wonderful jQuery file upload plugin. This plugin uses a bit of Flash, but no worries, it will still works if your browser has no Flash player installed.</li><li>For the Stats panel, there were two problems that caused me much of headache. One is Google TLDs which are hundreds in number thus totally ruined the chart. The other is the chart itself: PHP/SWF Charts library is too darn heavy and often broke my SVN commits. So I wrote some code to group those annoying TLDs into one group, and use <a
href="http://code.google.com/apis/chart/">Google Chart</a> instead.</li><li>In the admin panel, I added a &#8220;Support this plugin!&#8221; tab. Just a bit about myself, like &#8220;Follow me on Twitter&#8221;. Hope you aren&#8217;t pissed of with this change.</li></ol><p>As usual, the plugin is downloadable at <a
href="http://wordpress.org/extend/plugins/referrer-detector/">WordPress Codex</a>. Your comments are always welcome here and in the <a
href="/wp-plugins/referrer-detector/">plugin page</a>. Let me know if you&#8217;re happy with the new version, or about the bugs you encounter!</p> <img
style='display:none' id="post-290-blankimage" onload="Meebo('discoverSharable', {element: ((this.parentNode.className.match('post')) ? this.parentNode : this.parentNode.parentNode) ,url:'http://www.phoenixheart.net/2009/05/referrer-detector-4-is-out/',title:'Referrer Detector 4.0 is out!',tweet:'Finally I&#8217;ve made it! Referrer Detector version 4.0 is now out! I decided to mark this as a ma',description:'Finally I&#8217;ve made it! Referrer Detector version 4.0 is now out! I decided to mark this as a ma'})"><script type='text/javascript'>document.getElementById("post-290-blankimage").onload();</script>]]></content:encoded> <wfw:commentRss>http://www.phoenixheart.net/2009/05/referrer-detector-4-is-out/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>WordPress plugins I&#8217;m using</title><link>http://www.phoenixheart.net/2009/02/wordpress-plugins-im-using/</link> <comments>http://www.phoenixheart.net/2009/02/wordpress-plugins-im-using/#comments</comments> <pubDate>Mon, 16 Feb 2009 08:31:49 +0000</pubDate> <dc:creator>phoenix.heart</dc:creator> <category><![CDATA[Featured]]></category> <category><![CDATA[Freebies]]></category> <category><![CDATA[plugins]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://www.phoenixheart.net/?p=232</guid> <description><![CDATA[Just in case you don&#8217;t know &#8211; I&#8217;m pretty sure you do though &#8211; a WordPress-powered website is very limited in any terms without plugins. Or you can tell, a WordPress site that doesn&#8217;t use any plugin is just useless. Plugins bring your site uncountable and invaluable enhancements. Well, enough of babbling. What I wanted [...]]]></description> <content:encoded><![CDATA[<p><span
class="drop-cap">J</span>ust in case you don&#8217;t know &#8211; I&#8217;m pretty sure you do though &#8211; a WordPress-powered website is very limited in any terms without plugins. Or you can tell, a WordPress site that doesn&#8217;t use any plugin is just useless. Plugins bring your site uncountable and invaluable enhancements.</p><p>Well, enough of babbling. What I wanted to say is, today I&#8217;m going to write down here list of plugins I&#8217;m currently using on <strong>this</strong> site. For what, you ask? To show off, of course. Or &#8211; I prefer this &#8211; to share something that may be useful sometimes.</p><p>So in no particular order, here they come.</p><p>1. I use <a
href="http://wordpress.org/extend/plugins/stats/">WordPress.com Stats</a> to have a in-details view on my blog. Five or ten times a day, I click &#8220;Blog Stats&#8221; link in the admin panel to get an idea on the traffic, incoming/ongoing links, search terms etc. All these data are essential if I want to build up a high quality site.</p><p>2. To save a lot of clicks and keep the admin menu bar tidy, <a
href="http://planetozh.com/blog/my-projects/wordpress-admin-menu-drop-down-css/">Ozh&#8217; Admin Drop Down Menu</a> is my plugin of choice. Agree, the new menu system in WordPress 2.7 is a good improvement, but it&#8217;s still nowhere near Ozh&#8217;s version. Write a new post, customize the theme, add a new plugin, change some settings&#8230; almost all the commands are now just one-click away from me. Huge productivity, I&#8217;d say.<span
id="more-232"></span></p><p>3. When it comes to <abbr
title="Search Engine Optimization">SEO</abbr>, <a
href="http://semperfiwebdesign.com/">All in One SEO Pack</a> definitely suits my needs. I didn&#8217;t need to do anything, just installed it and all the keywords, titles, descriptions were there beautifully. Sure, there are plenty more than just than for SEO (like the incoming links) but that should be basically enough for a good start. So if you&#8217;re coming from Google, this plugin deserves some credits.</p><p>4. And some other credits should go to <a
href="http://www.arnebrachhold.de/redir/sitemap-home/">Google XML Sitemaps</a>. This plugin automatically generates a XML-Sitemap compliant site map for me every time I add/edit/remove my posts and pages, so that MSN, Yahoo, Ask, and Google bots can easily browse (and index) my site. I don&#8217;t even want to imagine just how long and boring it would be if I had to manually modify my site map after there was a change in the architecture, so this plugin is a must-have.</p><p>5. I&#8217;m not a good writer. Especially when English is not my mother language. And my articles are boring. So I guess that&#8217;s why I&#8217;m not receiving many comments from my readers. From those darn spammers however, well, there&#8217;s a bunch of spams almost every day. But you don&#8217;t see any of them, right? It&#8217;s totally thanks to the <a
href="http://akismet.com/">Askimet</a> spam fighter. I installed it from the beginning of this blog, and since then there is 0 missed, around ten false positives on over 500 spamming comments got caught. Impressive, huh?</p><p><em>(to be continued)</em></p> <img
style='display:none' id="post-232-blankimage" onload="Meebo('discoverSharable', {element: ((this.parentNode.className.match('post')) ? this.parentNode : this.parentNode.parentNode) ,url:'http://www.phoenixheart.net/2009/02/wordpress-plugins-im-using/',title:'WordPress plugins I&#8217;m using',tweet:'Just in case you don&#8217;t know &#8211; I&#8217;m pretty sure you do though &#8211; a WordPress-po',description:'Just in case you don&#8217;t know &#8211; I&#8217;m pretty sure you do though &#8211; a WordPress-po'})"><script type='text/javascript'>document.getElementById("post-232-blankimage").onload();</script>]]></content:encoded> <wfw:commentRss>http://www.phoenixheart.net/2009/02/wordpress-plugins-im-using/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Kohana PHP framework</title><link>http://www.phoenixheart.net/2009/01/kohana-php-framework/</link> <comments>http://www.phoenixheart.net/2009/01/kohana-php-framework/#comments</comments> <pubDate>Tue, 13 Jan 2009 04:24:06 +0000</pubDate> <dc:creator>phoenix.heart</dc:creator> <category><![CDATA[Featured]]></category> <category><![CDATA[Freebies]]></category> <category><![CDATA[Server stuffs]]></category> <category><![CDATA[CodeIgniter]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[kohana]]></category> <category><![CDATA[php]]></category><guid
isPermaLink="false">http://www.phoenixheart.net/?p=210</guid> <description><![CDATA[You know, I&#8217;m a die-hard fan of CodeIgniter. Among a lot of PHP frameworks out there, I prefer CI over Zend, Cake, Symfony etc. because of its speed, efficiency, and most importantly, simplicity. Just download it, unzip into a folder, and call it done. To me, a framework that costs me more than 10 minutes [...]]]></description> <content:encoded><![CDATA[<p><span
class="drop-cap">Y</span>ou know, I&#8217;m a die-hard fan of <a
href="http://www.codeigniter.com">CodeIgniter</a>. Among a lot of PHP frameworks out there, I prefer CI over Zend, Cake, Symfony etc. because of its speed, efficiency, and most importantly, simplicity. Just download it, unzip into a folder, and call it done. To me, a framework that costs me more than 10 minutes to install is considered failure &#8211; Symfony is one.</p><p>With simplicity and efficiency being the priority in mind, several days ago, I discovered <a
href="http://www.kohanaphp.com">Kohana</a> and was impressed. As clearly specified on its homepage, Kohana was originally based on CodeIgniter, so CI users should find no difficulties migrating. Then, along its (community-driven) development way, Kohana has grown quite a bit, and now looks like a very promising PHP framework. Among its features:</p><ul><li>Highly secure</li><li>Extremely lightweight</li><li>Short learning curve</li><li>Uses the MVC pattern</li><li>100% UTF-8 compatible</li><li>Loosely coupled architecture</li><li>Extremely easy to extend</li></ul><p><span
id="more-210"></span><br
/> And the things make it stand out from the crowd:</p><ol><li>Community, not company, driven. Kohana development is driven by a team of dedicated people that need a framework for fast, powerful solutions.</li><li>Strict PHP 5 OOP. Offers many benefits: visibility protection, automatic class loading, overloading, interfaces, abstracts, and singletons.</li><li>Extremely lightweight. Kohana has no dependencies on PECL extensions or PEAR libraries. Large, monolithic libraries are avoided in favor of optimized solutions.</li><li>GET, POST, COOKIE, and SESSION arrays all work as expected. Kohana does not limit your access to global data, but offers filtering and XSS protection.</li><li>True auto-loading of classes. True on-demand loading of classes, as they are requested in your application.</li><li>No namespace conflicts. All classes are suffixed to allow similar names between components, for a more coherent API.</li><li>Cascading resources offer unparalleled extensibility. Almost every part of Kohana can be overloaded or extended without editing core system files. Modules allow multi-file plugins to be added to your application, transparently.</li><li>Library drivers and API consistency. Libraries can use different &#8220;drivers&#8221; to handle different external APIs transparently. For example, multiple session storage options are available (database, cookie, and native), but the same interface is used for all of them. This allows new drivers to be developed for existing libraries, which keeps the API consistent and transparent.</li><li>Powerful event handler. Observer-style event handlers allow for extreme levels of customization potential.</li><li>Rapid development cycle. Rapid development results in faster response to user bugs and requests.</li></ol><p>You can tell that, originally a fork from CodeIgniter, Kohana should inherit the best from CI when having many improvements. Yes, it&#8217;s true. First, it&#8217;s PHP 5, so you can take full advantages of the new features available in this version. Second, it doesn&#8217;t limit your data in POST and SESSION as CI does (by default, CI disables GET, and it was a nightmare for me trying to integrate Google Custom Search into my CI-based website). Third, it has cool libraries, with the most powerful being <abbr
title="Object Relational Mapping">ORM</abbr>, which is a must-have for serious enterprise application.</p><p>With this being said, I&#8217;ll not dust away CodeIgniter anytime soon. Nevertheless, CI is already mature, with a good userbase, when Kohana is still in its beginning phase and thus has true support limitations. Both have their own pros and cons, so while sticking with CI, I will start playing around with Kohana.</p><p>To my readers: please spread the words! Kohana is definitely a very promising PHP framework. By featuring it on your own blog, you&#8217;re helping an free, useful, open-source, community-driven application grow. That also is contribution <img
src='http://www.phoenixheart.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> <img
style='display:none' id="post-210-blankimage" onload="Meebo('discoverSharable', {element: ((this.parentNode.className.match('post')) ? this.parentNode : this.parentNode.parentNode) ,url:'http://www.phoenixheart.net/2009/01/kohana-php-framework/',title:'Kohana PHP framework',tweet:'You know, I&#8217;m a die-hard fan of CodeIgniter. Among a lot of PHP frameworks out there, I prefer',description:'You know, I&#8217;m a die-hard fan of CodeIgniter. Among a lot of PHP frameworks out there, I prefer'})"><script type='text/javascript'>document.getElementById("post-210-blankimage").onload();</script>]]></content:encoded> <wfw:commentRss>http://www.phoenixheart.net/2009/01/kohana-php-framework/feed/</wfw:commentRss> <slash:comments>8</slash:comments> </item> <item><title>AJAX Random Posts &#8211; a new WP plugin (of mine)</title><link>http://www.phoenixheart.net/2008/12/ajax-random-posts/</link> <comments>http://www.phoenixheart.net/2008/12/ajax-random-posts/#comments</comments> <pubDate>Mon, 15 Dec 2008 09:46:10 +0000</pubDate> <dc:creator>phoenix.heart</dc:creator> <category><![CDATA[Featured]]></category> <category><![CDATA[Freebies]]></category> <category><![CDATA[Server stuffs]]></category> <category><![CDATA[ajax]]></category> <category><![CDATA[php]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://www.phoenixheart.net/?p=164</guid> <description><![CDATA[Firstly, I&#8217;d like to show off a bit: hey I&#8217;ve caught up with the crowd, now both of my sites (this one and Thica.net) are upgraded to WordPress 2.7 &#8211; well, let&#8217;s hope that it is not prone to new vulnerabilities. The most significant change is the admin section &#8211; for the first time in [...]]]></description> <content:encoded><![CDATA[<p><span
class="drop-cap">F</span>irstly, I&#8217;d like to show off a bit: hey I&#8217;ve caught up with the crowd, now both of my sites (this one and <a
href="http://www.thica.net">Thica.net</a>) are upgraded to WordPress 2.7 &#8211; well, let&#8217;s hope that it is not prone to new vulnerabilities. The most significant change is the admin section &#8211; for the first time in my life I have to admit that it looks even better than the front-end. Is it good, or is it bad (my baby), I don&#8217;t know, but if you are using my plugin(s) and are worried about the compatibility, rest assured: they all work in this new versions. That is, of course, unless you tell me that they&#8217;re not.</p><p>But hey, this post is not about WordPress 2.7! There are hundreds of blogs out there babbling about it already! If you&#8217;re a careful reader (definition: a careful reader is someone who reads something from the title on), you probably know it, I&#8217;ve managed to used some free time to write another WP plugin called <a
href="http://wordpress.org/extend/plugins/ajax-random-posts/">AJAX Random Posts</a>, and this post is more or less its homepage.</p><p>As its name is saying, AJAX Random Posts (AjaxRP) display a list of randomly chosen posts from your WordPress-powered blog. Yeah, it&#8217;s nothing new, such a concept is very popular and has been greatly done by several plugins before. The limitation of those plugins however, is the lack of cache plugins compatibility. For example, you install a random post plugin. Then a visitor comes to post A, and under a post he&#8217;s served with 5 other random ones, let&#8217;s say C, Y, M, K, and J. If you have WP-Super Cache enabled on your blog, the post A is cached for, like, one hour. During that one hour, <em>any</em> visitor that reads post A will be served with its <em>cached</em> version, with C, Y, M, K, and J following. You must agree with me, it&#8217;s not so random anymore <img
src='http://www.phoenixheart.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p><p>So, the only difference my AjaxRP is making is its &#8220;AJAX&#8221; part. With AjaxRP, the random list is NOT generated along with post A. Instead, it makes an AJAX call to the server after the page is loaded (more precisely, after the DOM is ready) and retrieves a list of random posts. This way, it works regardless of whether or not you have a cache plugin installed. That means, each page refresh shows a new random list. And I guess that is what should be called &#8220;random&#8221;.<span
id="more-164"></span></p><h3>FAQ</h3><p>Q: Do you provide a template tag/ post tag?<br
/> A: Absolutely. If you don&#8217;t want the random posts to be display after every post, just set &#8220;Automatically display the random posts in a single post page?&#8221; to &#8220;No&#8221; in the Settings page, and</p><ul><li>Manually put <strong>&lt;!&#8211;ajaxrp&#8211;&gt;</strong> at the end of your post, or</li><li>Place this php code: <strong>&lt;?php if (function_exists(&#8216;ajaxrp&#8217;)) ajaxrp(); ?&gt;</strong><br
/> at a proper place in your template&#8217;s <strong>single.php</strong> page</li></ul><p>Q: Where can I find a demo?<br
/> A: Right here! Take a look at the end of this post.</p><p>Q: How do I support this plugin?<br
/> A: Please link back to this post or blog about it. Also I would appreciate a lot if you can rate this plugin 5 stars in the WordPress repository.</p><h3>History</h3><p>Full history can be found <a
href="http://wordpress.org/extend/plugins/ajax-random-posts/other_notes/">here</a>.</p><h3>Download</h3><p>Head <a
href="http://wordpress.org/extend/plugins/ajax-random-posts/">here</a>.</p> <img
style='display:none' id="post-164-blankimage" onload="Meebo('discoverSharable', {element: ((this.parentNode.className.match('post')) ? this.parentNode : this.parentNode.parentNode) ,url:'http://www.phoenixheart.net/2008/12/ajax-random-posts/',title:'AJAX Random Posts &#8211; a new WP plugin (of mine)',tweet:'Firstly, I&#8217;d like to show off a bit: hey I&#8217;ve caught up with the crowd, now both of my s',description:'Firstly, I&#8217;d like to show off a bit: hey I&#8217;ve caught up with the crowd, now both of my s'})"><script type='text/javascript'>document.getElementById("post-164-blankimage").onload();</script>]]></content:encoded> <wfw:commentRss>http://www.phoenixheart.net/2008/12/ajax-random-posts/feed/</wfw:commentRss> <slash:comments>56</slash:comments> </item> <item><title>Referrer Detector 2.1.1 and a little bit more</title><link>http://www.phoenixheart.net/2008/12/referrer-detector-211-and-a-little-bit-more/</link> <comments>http://www.phoenixheart.net/2008/12/referrer-detector-211-and-a-little-bit-more/#comments</comments> <pubDate>Tue, 02 Dec 2008 07:20:56 +0000</pubDate> <dc:creator>phoenix.heart</dc:creator> <category><![CDATA[Featured]]></category> <category><![CDATA[Freebies]]></category> <category><![CDATA[Server stuffs]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[Referrer Detector]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://www.phoenixheart.net/?p=158</guid> <description><![CDATA[Hi everyone! It&#8217;s been a while&#8230; yes I know I&#8217;m feeding up your ears (or eyes) with this same old same old greeting, but I&#8217;ve never been a good speaker. So it&#8217;s been a while, and I&#8217;m writing another small plugin for personal purpose. Remember, I have another site dedicated to Vietnamese poetry? Well, I&#8217;m [...]]]></description> <content:encoded><![CDATA[<p>Hi everyone!</p><p>It&#8217;s been a while&#8230; yes I know I&#8217;m feeding up your ears (or eyes) with this same old same old greeting, but I&#8217;ve never been a good speaker.</p><p>So it&#8217;s been a while, and I&#8217;m writing another small plugin for personal purpose. Remember, I have <a
href="http://www.thica.net">another site</a> dedicated to Vietnamese poetry? Well, I&#8217;m trying to enhance it up a bit &#8211; with some plugins I write maybe&#8230;</p><p>However, something today made me (temporarily) pause the work. Something not so happy.</p><p>In case you don&#8217;t know yet, I&#8217;ll stress it again: <strong>I didn&#8217;t invent the [concept of] <a
href="/2008/11/referrer-detector">Referrer Detector plugin</a></strong>. Instead, I first saw a similar plugin in action on my favorite blog <a
href="http://smashingmagazine.com">Smashing Magazine</a>. As Smashing is more or less a commercial blog, I was thinking it was something they made themselves and thus may not be open source, so I decided to write my own. When I found out that it&#8217;s originally a great plugin from <a
href="http://omninoggin.com/">Thaya Kareeson</a>, my Referrer Detector was nearly finished, and I didn&#8217;t want it to be left abandoned. Apart from that, I also thought that my plugin, while still young and lacked of some important features, had some advantages that I personally could make use of (at that moment). So eventually I registered it in WordPress Codex. That&#8217;s the story.</p><p>When Referrer Detector was out, I was very happy to see how welcomed it was. My [G]mail box were full of comment moderation requests, and I was continuously asked for bug fixes, implementations, even some not so relevant stuffs (like how to change theme <img
src='http://www.phoenixheart.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). These comments were the invaluable support that encouraged me to quickly release newer and hopefully better versions of RD, with visible and invisible changes as well. And it&#8217;s always been a joy for me to open my mailbox and see an unread message titled &#8220;[phoenix.heart - portfolio &amp; more] Please moderate: &#8220;Here it is &#8211; Referrer Detector&#8230;&#8221;.<span
id="more-158"></span></p><p>Thaya has noticed about my plugin, as he even left a comment on my blog entry &#8211; I was happy with it too. So it came to me as a surprise when today, I found out that it&#8217;s not that simple. Seems like he&#8217;s thinking I&#8217;m forking his code and is upset with the fact that RD is sharing the &#8220;fame&#8221; with his WP Greet Box. On a <a
href="http://www.dailyblogtips.com/referrer-detector-wordpress-plugin/">blog that promoted my plugin</a> he left this comment:</p><blockquote><p>Honestly, I am quite disappointed that my plugin hasn’t done better in the WordPress community. I am also even more shocked[upset] that Referrer Detector got the word out much quicker than WP Greet Box. I guess it really does matter “who” you knows in the blogging community.</p><p>I don’t want to sound biased, but as of right now (Referrer Detector version 2.1) I believe that WP Greet Box is hands-down better than Referrer Detector:</p><ol><li>Referrer Detector has a security flaw in its administrative AJAX interface. I won’t say more, so hopefully people with Referrer Detector installed won’t get hacked.</li><li>WP Greet Box works with WPMU.</li><li>WP Greet Box has the ability to keep track of visitors, so the visitor referred from google will not keep getting the same greeting message if they have visited within the last X hours.</li><li>Exclusion rules have regular expressions support.</li><li>More solid default CSS.</li></ol><p>The only pros referrer detector has on WP Greet Box are:</p><ol><li>More default greeting messages</li><li>The ability to include WordPress attributes like url, title, author, category etc. into the greetings</li></ol><p>Given the security flaw Referrer Detector, I wouldn’t even try it out on a production site until the fix comes.</p></blockquote><p>And on <a
href="http://omninoggin.com/projects/wordpress-plugins/wp-greet-box-wordpress-plugin/">his official WP Great Box plugin blog</a>, he changed the Upcoming Features to something below:</p><div
class="quote"><p>I have chosen to keep this list hidden to discourage kiddie coders from forking my code. I know some users that have went to the dark side to use a similar plugin, but they always come back to WP Greet Box because of my “awesome” support <img
src='http://www.phoenixheart.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p></div><p>Maybe I&#8217;m a little over-sensitive, but nevertheless, it seems that I&#8217;m just one of those &#8220;kiddie coders&#8221; who&#8217;s &#8220;forking [his] code&#8221;.</p><p>To be fair, he was right about the pros and cons both plugins have &#8211; although still I believe that mine has something more that that. Also, I agree about the possible security flaw (and have fixed it in the latest version of WordPress). More or less, I&#8217;m not a hacker, so I can&#8217;t tell if it&#8217;s really a security flaw and if someone can make use of it, since first, AJAX calls across domains are very limited in terms of usability, and second, the person who may control the plugin and the admin panel, if not yourself, must be someone you totally trust.</p><p>What made me feel weird are:</p><ol><li>He seems to be thinking that all I (and some other plugin developers) have been doing is forking his code. This is not so correct <img
src='http://www.phoenixheart.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> To me, the code I was forking, if any, came from another plugin called <a
href="http://wordpress.org/extend/plugins/share-this/">ShareThis</a>. Actually, this is the plugin I was learning from when I developed <a
href="http://www.phoenixheart.net/2008/10/digg-this-o-mine/">Digg This O&#8217; Mine</a>, and can be seen as my WordPress plugin tutor. Other than this, except for the concept that I learned <em>from Smashing Magazine</em>, I built my Referrer Detector from the scratch, as you can see if you take a look into the source code (of both RD and WPGB).</li><li>He&#8217;s upset just because &#8220;Referrer Detector got the word out much quicker than WP Greet Box&#8221;. If it&#8217;s something really matters, then my answer will be &#8220;Digg&#8221;. I posted a story about RD onto Digg, that&#8217;s why it gets known rather quickly. Moreover, the more people get to know RD, the more they&#8217;re announced about WPGB, since on my official plugin entry and here again, I give all the initial concept credits to Thaya Kareeson. If his plugin is better, it will simply be used more widely. So why he got upset, I honestly don&#8217;t get.</li><li>Seems like from his upset, he called other developers who share the same concept with him &#8220;kiddie coders&#8221;. Of course he is a great developer, as anyone can see from the concept and the way he&#8217;s writing code. But just because he&#8217;s great doesn&#8217;t mean others are bad, yes? And correct me if I&#8217;m wrong, isn&#8217;t writing various softwares with the same concept and purposes something we see everyday in this open source world? If not, then why so much Linux distributions?</li><li>The &#8220;dark side&#8221; <img
src='http://www.phoenixheart.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></li></ol><p>So, as a conclusion, the concept credits go to Thaya, and I&#8217;m sorry if what I do is causing him some inconvenience. And let&#8217;s face it, everyone has his choice, so if my plugin doesn&#8217;t work for you for any reason, I always recommend WP Gree[a]t Box.</p><p>P/S: Have you noticed yet? <a
href="http://wordpress.org/extend/plugins/referrer-detector/">Referrer Detector 2.1.1</a> which includes the security flaw fix is out!</p> <img
style='display:none' id="post-158-blankimage" onload="Meebo('discoverSharable', {element: ((this.parentNode.className.match('post')) ? this.parentNode : this.parentNode.parentNode) ,url:'http://www.phoenixheart.net/2008/12/referrer-detector-211-and-a-little-bit-more/',title:'Referrer Detector 2.1.1 and a little bit more',tweet:'Hi everyone! It&#8217;s been a while&#8230; yes I know I&#8217;m feeding up your ears (or eyes) with',description:'Hi everyone! It&#8217;s been a while&#8230; yes I know I&#8217;m feeding up your ears (or eyes) with'})"><script type='text/javascript'>document.getElementById("post-158-blankimage").onload();</script>]]></content:encoded> <wfw:commentRss>http://www.phoenixheart.net/2008/12/referrer-detector-211-and-a-little-bit-more/feed/</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>Here it is &#8211; Referrer Detector 2.0</title><link>http://www.phoenixheart.net/2008/11/here-it-is-referrer-detector-20/</link> <comments>http://www.phoenixheart.net/2008/11/here-it-is-referrer-detector-20/#comments</comments> <pubDate>Mon, 17 Nov 2008 05:53:03 +0000</pubDate> <dc:creator>phoenix.heart</dc:creator> <category><![CDATA[Featured]]></category> <category><![CDATA[Freebies]]></category> <category><![CDATA[Server stuffs]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[Referrer Detector]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://www.phoenixheart.net/?p=151</guid> <description><![CDATA[As said yesterday, I&#8217;ve managed to update my Referrer Detector plugin to its second major release. During the last week, it was soooo great to see that despite of all the bugs and limitations, my plugin has been warmly welcomed. And never in my (blogging) life have I had to moderate that many of comments. [...]]]></description> <content:encoded><![CDATA[<p>As <a
href="http://www.phoenixheart.net/2008/11/referrer-detector-12-released/">said</a> yesterday, I&#8217;ve managed to update my <a
href="http://wordpress.org/extend/plugins/referrer-detector/">Referrer Detector</a> plugin to its second major release. During the last week, it was soooo great to see that despite of all the bugs and limitations, my plugin has been warmly welcomed. And never in my (blogging) life have I had to moderate that many of comments. Thank you all, for criticisms and compliments alike!</p><p>For, the most significant change compared to previous versions is the admin (aka Options) panel. With the help of the great <a
href="http://ui.jquery.com/">jQuery UI library</a>, all the options are now divided into much much clearer tabs!</p><p><img
class="shot" src="/wp-content/uploads/2008/11/tabs.png" alt="Tabs" width="464" height="297" /></p><p>Then, from the suggestion of <a
rel="external nofollow" href="http://www.italal.com/">iTalal</a>, I&#8217;ve added an option to specify a list of &#8220;excluded&#8221; URLs. If the user is coming from one of these URLs, the greeting box won&#8217;t be shown. This comes handy with, for an example, Google Reader. Please note that the URLs should come in a separated list, each following the same rule with the entry URL &#8211; no &#8220;http://www&#8221; prefix.</p><p><img
class="shot" src="/wp-content/uploads/2008/11/excluded_urls.gif" alt="Excluded URLs Option" width="467" height="353" /><span
id="more-151"></span></p><p>The next visible change is, now it&#8217;s 100% AJAXed &#8211; well, it was not with the Generic Options, but now even that conservative old guy is convinced by the AJAX power <img
src='http://www.phoenixheart.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> Now you won&#8217;t need to reload the page &#8211; ever!</p><p><img
class="shot" src="/wp-content/uploads/2008/11/generic_loading.png" alt="Generic Options Saving" width="459" height="153" /></p><p>Then, we have some more improvements under the hood:</p><ul><li>As <a
rel="external nofollow" href="http://studybabes.com/">Study Babes</a> suggested, there should be an option to display the welcome message in the <em>theme</em> itself. Well, not until now &#8211; now you can place this <em>template tag</em> somewhere in the theme files (most likely index.php):<div
class="wp_syntax"><div
class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'referrer_detector'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> referrer_detector<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div><p>In case you ever wonder, there is at most <em>one</em> greeting box each page. With that said, this template tag has the highest priority, when the lower goes to the &#8220;Automatically add to every post blah&#8221; settings, and the least is for the custom tag <span>{</span>referrer-detector} if any in the post.</p><p>There is one drawback with the template tag though. Since in such a case, the greeting box is shown in a page with many different posts at once, the tags such as {author} and {categories} become ambiguous. So, please keep in mind that if you use template tag, only the most common {title} and {url} are available.</li><li>Some of the javascript files are now <a
href="http://dean.edwards.name/packer/">packed</a> to save some bandwidth and loading time.</li></ul><p>That&#8217;s all! And is it redundant to add that you can, as usual, <a
href="http://wordpress.org/extend/plugins/referrer-detector/">grab it</a> at the WordPress Codex?</p> <img
style='display:none' id="post-151-blankimage" onload="Meebo('discoverSharable', {element: ((this.parentNode.className.match('post')) ? this.parentNode : this.parentNode.parentNode) ,url:'http://www.phoenixheart.net/2008/11/here-it-is-referrer-detector-20/',title:'Here it is &#8211; Referrer Detector 2.0',tweet:'As said yesterday, I&#8217;ve managed to update my Referrer Detector plugin to its second major rele',description:'As said yesterday, I&#8217;ve managed to update my Referrer Detector plugin to its second major rele'})"><script type='text/javascript'>document.getElementById("post-151-blankimage").onload();</script>]]></content:encoded> <wfw:commentRss>http://www.phoenixheart.net/2008/11/here-it-is-referrer-detector-20/feed/</wfw:commentRss> <slash:comments>10</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)
Database Caching 5/11 queries in 0.018 seconds using disk

Served from: www.phoenixheart.net @ 2010-09-09 08:04:53 -->