When managing a large WordPress community or when your WordPress setup is a little more than a simple blog, it can be useful to see things from your user’s perspective. I have created a simple Must Use Plugin you can just drop into your WordPress installation that allows a Super Administrator user to login as any user on your website (except for other Super Administrators). This is a highly useful functionality when you need to verify that your interfaces are working not only for your Super Administrator roles, but your other user roles as well.
I’ve been writing a ton of jQuery plugins lately and decided to create myself a nice little boilerplate with some common structures. This boilerplate will provide the necessary Object Oriented Class based setup for a plugin and its extension of the jQuery.fn Object.
So, I’m working on a personal project to learn Ruby on Rails and the application structure that I desired required a complicated many-to-many relationship with a join model that itself contained data. This was a pretty complex model structure to setup and has numerous pitfall points that took a weekend of searching the Googles and reading a number of StackOverflow entries, GitHub gem documentation and RailsCasts to finally understand and get working the way I desired. Since all the documentation I found only dealt with small pieces of the whole and it took me all weekend to figure it out, I got to thinking there’s no way I’m the only one out there trying to grok this crap. So, now that I got it working, I’m going to share how the heck to do it so you can learn from my guinea pigging.
Ever write a plugin that needs to utilize AJAX functionality for a rapid response, such as checking if a user exists in the database on key-up, but going through the usual admin-ajax route is too slow? You can write your own AJAX response addressing a PHP file directly with the secret SHORTINIT constant to safely load the WPDB Class and be able to access the WordPress database Object! Continue reading →
I’ve taken it upon myself to start learning a new programming language and leaving my happy little LAMP (or preferably LNMP) comfort zone. I love PHP and how easy it is to get up and running. Its pretty simple and gets the job done quick. PHP unfortunately lacks a lot of the “grace” and modern nuances that a more modern platform such as Ruby on Rails provides.
Now, before the pitchforks start coming out I already know that I’m kind of comparing Apples to Apple Pie. PHP is a language with a ton of community support and Ruby on Rails is a framework. I get it, but there’s a lot to be desired in PHP land. PHP has some good frameworks as well – CakePHP, Zend, CodeIgniter, Yii, etc. – but the sheer variety creates a lot of discontinuity in the community and a lot of the frameworks out there are just Ruby on Rails wannabe’s anyways. More importantly besides any of that, PHP is getting a little boring and I want to learn something new So, I’m starting to learn Ruby, Sinatra and eventually Ruby on Rails and share my learning here.
I’ve done a lot of WordPress plugin development lately and thought I’d share some of the great little tools that I’ve used during creation. To start giving back to the community, I’ve decided to make public my OOP WordPress plugin boilerplate and my Utility Functions MU plugin – both valuable tools that I use whenever I’m building a new masterpiece with WordPress.
So, in an effort to save a little cash on hosting I’ve moved my stack on this server to a pure LNMP stack – no Apache, no Varnish. I’ve also introduced a new third-party caching solution called CloudFlare to see if we can take even more traffic off the server. With W3 Total Cache running as well the site is extremely fast, and this only on a 256MB box. Granted, I get about as much traffic as the 395 in the middle of the Mojave, but its fun running at this speed anyways.
One thing that I’ve found helped me out a lot with development snags is perspective. I know it sounds a little hippy and existential, but it really helps. It always used to frustrate the hell out of me when I’d encounter a bug in my code, but I realized that it was only frustrating me because I was taking it personally – “why the heck isn’t this working! I know I programmed it right!”. Once I realized that this was happening I began taking a different perspective – learning.
I know that I’m going to write some code that will break. I know that something might break because I made changes elsewhere. Knowing this, I take every bug now as an opportunity to learn. So, instead of getting frustrated and pissed at my IDE (Aptana) or my PHP because it isn’t doing what I told it to, I just start from nothing. I assume nothing, and start building up what I can know for sure. I begin throwing a bunch of debug, exits and echos all over the place and starting from the very beginning I try to discover where it might have gone wrong, establishing a base for what I can be sure of. From that base I can discover what went wrong and learn from it because I’m not distracted by my frustration.
Treat every bug like a puzzle to unravel and a chance to learn something new. In becoming a learning opportunity, it looses its power to piss you off