{"id":222,"date":"2008-05-20T01:38:12","date_gmt":"2008-05-20T09:38:12","guid":{"rendered":"http:\/\/www.khaitan.org\/blog\/?p=222"},"modified":"2008-05-20T01:38:12","modified_gmt":"2008-05-20T09:38:12","slug":"wordpress-plugin-development-a-windows-deja-vu","status":"publish","type":"post","link":"https:\/\/www.khaitan.org\/blog\/2008\/05\/wordpress-plugin-development-a-windows-deja-vu\/","title":{"rendered":"WordPress Plugin development, a Windows d\u00e9j\u00e0 vu!"},"content":{"rendered":"<p>10+ years ago, in my first job I got an opportunity to code a\u00a0number of Windows applications using MFC\/COM\/Win32 API. Windows was getting popular, client-server computing even more; all Unix apps were wanting to have a visual appeal. Came Windows to the rescue. During those days as a Windows programmer, I battled the following:<\/p>\n<ol>\n<li>Writing code in a way that Windows Operating System couldn&#8217;t mess it up.\u00a0Having an application run on 95, 98 Developer Beta and several hot fixes in between<\/li>\n<li>Avoiding clashes with other Windows applications. This is funny, 90% of the time the issues were related to end-users installing\/uninstalling other related\/unrelated applications<\/li>\n<li>Finally, writing code so that hardware changes don&#8217;t mess the application up&#8211;Installed a new iomega Zip drive? The D:\\ drive stops working. Changed Network properties to make Banyan Vines work? The whole TCP\/IP stack stops responding!<\/li>\n<\/ol>\n<p>Fast forward to Social Media applicaion development today. In my short tryst with WordPress Plugin development, I found that I have to take care of similar things (though in a much easier way compared to\u00a0writing C++ code).<\/p>\n<ol>\n<li>When writing a WordPress Plugin, you have to make sure that it serves at least\u00a03-4 major revisions of WordPress installations. Few people bother to upgrade (although, WordPress does a good job alerting users in the admin panel).<\/li>\n<li>Make sure that your Plugin plays nice with other plugins and themes.\u00a0Due to increased flexibility (love them WordPress!) zealous features may sometimes may not work with\u00a0themes and such; say a\u00a0theme which has\u00a0two sidebars on the left and none on the right.\u00a0<\/li>\n<li>Most of the times WordPress Plugin code (written in PHP) and underlying operating environment (PHP, MySQL) mix each other well. However, at times end-users may have different settings, database permissions and security sandboxing rules. Watch out for these as they&#8217;re hard to detect and the end-user may not have any idea about the configurations.<\/li>\n<\/ol>\n<p>There are specific examples to the above WP issues which I&#8217;ll rant on in future posts.<\/p>\n<p>All in all, these are happy problems and shows the maturity\/popularity of the platform amongst the developer community. Neither these are hard problems&#8211;requires diligent coding and testing and a generous feedback from the &#8216;beta-user&#8217; community \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>10+ years ago, in my first job I got an opportunity to code a\u00a0number of Windows applications using MFC\/COM\/Win32 API. Windows was getting popular, client-server computing even more; all Unix apps were wanting to have a visual appeal. Came Windows to the rescue. During those days as a Windows programmer, I battled the following: Writing [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[99,101,106,119,120,121],"tags":[],"_links":{"self":[{"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/posts\/222"}],"collection":[{"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/comments?post=222"}],"version-history":[{"count":0,"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/posts\/222\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/media?parent=222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/categories?post=222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.khaitan.org\/blog\/wp-json\/wp\/v2\/tags?post=222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}