Cristi Burcă Interview
Interviews

Cristi Burcă (@scribu) is an open-source pragmatist, a prolific plugin daddy with over 30 plugins to his credit, and the man who minds and maintains WP-CLI, a tool that allows you to break up with your web browser and manage your WordPress installations through the command line. Learn a bit more about him and get a sneak peak at upcoming improvements to WP-CLI.
Tell us how you got started working with WordPress? What itch did it scratch for you?
In 2007, I was in high school, just starting to learn programming. Blogging was this exciting new thing, so I set up a personal blog on a free service (similar to wordpress.com).
I wanted to add all sorts of bells and whistles to it — because that’s much more fun than writing, which is damn hard — so I joined a blogging network that allowed me to install whatever plugins I wanted and to tweak my theme code, which I found pretty easy to get started with.
Still not having much to write about, I got more and more involved in the WordPress community: posting to the wp-hackers mailing list, releasing plugins on wordpress.org, submitting patches to Trac, etc.
I guess the itch it scratched for me was having something interesting to work on.
Tell us how you got involved with WP-CLI.
By 2011, I had been working with WordPress for four years on various projects. In that time span, I came across situations where I needed to do batch operations, like generating a new thumbnail size for thousands of attachments.
So, I was looking for some sort of command-line tool for this and stumbled upon an unknown little project on GitHub, called WP-CLI. It seemed to have the right idea, so I started contributing, first with bug reports, then with pull requests. Eventually, the original author, Andreas Creten, granted me push access. After a while, he didn’t have time to work on it anymore, so I effectively became the maintainer.
Pretend you’re speaking with a WordPress beginner: how would you describe WP-CLI? What are its greatest benefits?
WP-CLI is a different interface to WordPress. Instead of going to /wp-admin/
in your browser and clicking around with your mouse, you open a terminal window and start typing commands.
You might think that not being able to use the mouse is a drawback, but it’s actually a feature: you can type commands directly in the terminal window or type them in a file and run that file. This opens the door to automation, which is the first benefit. You can automate common tasks, such as installing and updating plugins, with a few words: wp plugin update --all
.
Secondly, it allows you to perform long-running operations that would be awkward to implement in a traditional web environment. An example I like to give is Alex Mills’ Regenerate Thumbnails plugin. When someone re-implemented it as a WP-CLI command, it took four times less code (and it was only PHP; no JavaScript).
Thirdly, you can start an interactive PHP console, with all the WordPress functions loaded, to try out various things.
I could go on, but I hope that gives you an idea of why it might be useful.
What was it about WordPress that interested you most? What did you find most enjoyable about contributing to Core? What are you most proud of having contributed and why?
Since WordPress was the first open-source project I ever contributed to, everything was interesting. I gravitated toward the lower-level things, like APIs, as opposed to user-facing features. I still think actions and filters are the most elegant piece of the WordPress architecture.
The most rewarding contribution I made was adding support for advanced taxonomy queries — challenging, but also a great example of teamwork, I think.
You have 32 plugins to your credit. Is there one or two that you’re most proud of? Why? What was writing plugins taught you?
There are two plugins that I’m most fond of, because they had a clear concept and because they were a good exercise in keeping complexity at bay as more features were added. They are Front-end Editor and Posts 2 Posts.
Writing plugins taught me a lot of valuable things: how hard it is to make usable UIs and easy-to-use APIs, how to say no, how to manage releases, etc.
If a user new to WordPress asked for plugin support, what tips can you offer him to ensure that he gets great support?
If you’re reporting a bug, try to figure out some steps to reproduce the problem and try to give out as much information as possible, such as the plugin version, the WordPress version, etc.
You’ve spoken at several WordCamps: WordCamp Lisbon, WC Romania, WC Norway. What have your learned from the experience of sharing your knowledge with others?
I learned that speaking in public can be fun, once you have a bit of practice. 🙂
On your personal site you mention being an “open source pragmatist.” Tell us what this philosophy means to you, and how did you come to adopt it?
It basically means that I’m going to prefer an open-source solution over a proprietary one, unless the proprietary one has some significant advantage. For example, I bought a MacBook Air last year, simply because it was the best notebook in its class at the time. I immediately installed Ubuntu on it, but after a while I discovered that I was sacrificing almost two hours of battery life by using it, so I switched to OSX.
Can you give us a sneak preview of any new features or functionality coming to WP-CLI?
Sure. For one, it will have a wp import
command to complement wp export
, which means you’ll be able to import and export content without ever touching /wp-admin/
.
Another interesting feature will be that developers will be able to write third-party commands that, once installed, will be available globally, instead of being limited to a particular WordPress instance.
Of course, those are just two of the many improvements that are coming.