👋🏼
Howdy 👋🏼,
This blog is no longer active but I’m leaving all of my old posts up so this can serve as an archive!
I also publish a photo blog over at photos.jkudish.com if you want a mix of 🌄💺📸 💼🌅🐕🌎💻 in your feed!
I’m extremely happy and excited to announce that I’ll be joining Automattic, the makers of WordPress.com, and many other cool products. As of next monday, I’ll be an Automattician (yes, that’s the real term for an Automattic employee)… Read More
WordCamp San Diego 2012

I’m happy & proud to get the opportunity to speak at WordCamp San Diego on March 24th 2012. The event sold out in a mere 12 hours, so I can’t even tell you to come check it out, unless you already have a ticket! But, the weekend should be a huge blast 🙂
The talk I am giving is about using the version control system Git; best practices, case studies and various workflows when using it with WordPress. In the spirit of open-source and of git, I am doing a bit of an experiment with it. The whole talk is getting prepared on GitHub. That means both the outline and the slides are available there as I prepare them. The idea is that you (everyone/anyone) will collaborate by asking questions you want answered ahead of time, bringing suggestions, corrections and amendments along the way.
Here’s how you can collaborate:
- Take a look at the github repository
- Take a look at the
work-in-progresscompleted slides — these were continuously updated/rebuilt each time I updated them, and since they are just an HTML page, you can revisit them anytime you want. - Open an issue on github for any issues, questions, comments, recommendations, etc…
- Specifically, I want to know what kind of experience you’ve had with Git (versioning plugins, themes, private client sites, working with core, etc.), what challenges you’ve faced (and how did you overcome them), what workflows do you have, what questions using git do you have, etc.
- Fork the repository and submit a pull request if you want a specific change incorporated
- If you’re uncomfortable using git/github, feel free to comment on this post or send me an email at info@jkudish.com (or via the contact form on this site) instead
That’s the idea, no idea if it will work or not. I think the presentation can be that much better with some feedback from the community, but if not, I promise not to disappoint you (too much) either way.
Let me know your thoughts!
Why and how I use Sublime Text 2

My Friend Richard was asking about different software and code editors on twitter last night. I mentioned Sublime Text 2 and how much I love it, to him; and he asked me for more info about it, so I decided to write a blog post about it instead of going and back & forth on Twitter.
So for those who don’t about it yet, Sublime Text 2 (ST2) is a cross-platform (yes it works on OS X, Windows and Linux) awesome code editor with a bunch of productivity tools and geeky goodness but without the huge overhead of typical IDEs (aptana, netbeans, etc…). I was a Textmate user until I switched over to ST2 about 4 or 5 months ago. The transition was seamless since ST2 looks and behaves in similar ways to Textmate and also supports Textmate bundles out of the box. Nonetheless, ST2 is infinitely more powerful than its predecessor.
Some of my favorite features/shortcuts of ST2 are:
- The project sidebar
- ⌘+P (ctrl+p on Windows/Linux) to open any files in the current project
- ⌘+shift+p (ctrl+shift+p on Windows/Linux) to perform special actions
- Automattic code completion using tab/return
- Great search+replace support
- Automatic docblock creation and recognition
- Updated daily or every other day (as long as you use the development track [which you should] & it never crashes yet has awesome small additions)

My Sublime Text 2 Setup
Richard also asked me about which extensions I used and how I had it configured, so here’s my setup:
- The Solarized Color Palette/Theme – I use the light one most of the time but will switch to the dark palette occasionally, especially at night. Note: you can use the Textmate Solarized bundle with ST2
- Package Control for managing extensions/packages
- The following packages (in alphabetical order – all available from Package Control): Additional PHP Snippets, Alignment, ApacheConf/htaccess, As Above, BracketHighlighter, BufferScroll, Case Conversion, Clipboard History, CoffeeScript, ColorPicker, copy-file-name, DetectSyntax, DocBlockr, DocBlox, HTML5, HyperlinkHelper, IndentXML, jQuery Snippets, LESS, MarkDown Preview, Nettus+ Fetch, Open Recent Files, Open Include, PHPDoc, PHPUnit, Placeholders, Prefixr, Pretty JSON, Quick File Creator, Quick File Renamer, SidebarGit, sublime-github, Trailing Spaces, WordCount and of course WordPress
Finally, I’d like to point you to this indispensable ST2 Tips & Tricks article on NetTuts.
One of my favorite things to discuss with fellow developer are the various development environments and set-ups, so please share in the comments! What code editor do you use? If you use ST2, what’s your setup like?
Log Deprecated Notices Extender

If you’re a WordPress developer, then there’s a few developer tools you should have under your belt. One of those is the Log Deprecated Noticed plugin by Andrew Nacin. If you don’t know about it, it’s a plugin you run on your development environment (you have one of those, right?) as opposed to the production environment. From the plugin’s description:
This plugin logs the usage of deprecated files, functions, and function arguments. It identifies where the deprecated functionality is being used and offers the alternative if available.
One of the great features of the plugin is that it shows you how many (if any) new notices/log entries you have, allowing you to quickly see if you’ve used a deprecated function. It does so by adding a little badge (a la updates) right next to it’s menu (which is under Tools). However, since WordPress 3.3 and the fly-out menus, the badge is no longer persistent since the Tools menu isn’t going to be open very frequently, as shown here:
To solve this, I set out to write a plugin that extends the Log Deprecates Notices plugin and adds a link and counter to the new improved toolbar in WordPress 3.3+, like so:
The plugin is available on github and the WordPress.org repository.
Eventually, I’d also like to add the following features to the plugin:
- Update the counter with some kind of callback, so that if a call to deprecated function is made after the toolbar loads, it still counts the new notice.
- Add deprecated log info to the Debug Bar plugin
Any questions, comments, recommendations, let me know!
Always logged in, using mu-plugins
I’ve decided to start posting handy/helpful code snippets here [Idea/inspiration from Bill Erickson].
So here’s my fist snippet! It allows you to remain always logged in when developing sites (Warning: do not use this on a production site!)
I like to put this code in the special mu-plugins folder that way it always runs. We hook into ‘admin_init’ and ‘init’ function, check if we’re logged in, and if not, logs us in. Change the 1
in the get_userdata()
function to match the user ID that you want.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* keeps a user always logged in | |
* don't use this on a production site, ever! | |
*/ | |
add_action('init', 'auto_login'); | |
add_action('admin_init', 'auto_login'); | |
function auto_login() { | |
if (!is_user_logged_in()) { | |
$user = get_userdata(1); // 1 being the ID that I want | |
wp_set_current_user($user->ID, $user->user_login); | |
wp_set_auth_cookie($user->ID); | |
do_action('wp_login', $user->user_login); | |
} | |
} |
Again, don’t use this on a production or even staging site. It’s only meant to be used in a local environment, where you are the sole developer/user of the site (since it always logs into the same user). Use it with caution, you’ve been warned!
Plans for 2012

Lots of people do these look back / look forward posts at the end of the year / beginning of the next year. At first I thought they were a little bit tacky, but as I got to think about it, I think it’s actually pretty valuable to get a bird’s eye view of the last year and the year to come; especially from a business point of view. So here I am, with my own belated “New Year” post.
2011 has been a year of big changes for me. In July, I moved from Montreal, QC (where I grew up and lived my whole life) to Vancouver, BC. The move was great, with a fun road-trip through the US to get here! As I moved 3000 miles across the country, I also made the jump to full-time freelancing. I was previously employed by Stresslimit Designand freelancing only on a part-time basis.
I couldn’t be happier where things are now. I (along with my partner Amy and our two dogs, Winston and Pepinot) live and work in a great apartment in the 2010 Vancouver Olympic Village (now called the Village on False Creek). Here are some pictures:

Our building is the second from the right
Winston (the beagle) & Pepinot (the schnauzer)
Want to see more photos? Follow me on instagram (@jkudish) or here if you don’t have instagram.
Business has also been great since the jump to full time freelancing, with many new and interesting projects having come my way.
There’s a number of things I’d like to improve and start doing in 2012, from a developer point of view:
- Increase my contribution to open source projects (chiefly WordPress, but others too). I use countless of open source projects in my work. Projects that other developers volunteer their time and effort into. Though I’ve made some very minor contributions to WordPress in the past year, I’d like to contribute to the project (and possibly others) even more. I am now devoting approximately 5 hours a week to this.
- Improve my workflow when it comes to project management. Standardize various processes, improve (and hopefully reduce back & forth) communication with my clients, automate as much as possible, etc… I’ve even thought of building my own project management web app that would serve my (and possibly other devs) exact needs, but I am not convinced the investment will be worthwhile. In the mean time, I am using Basecamp with my clients and github for open source stuff.
- Start blogging more and sharing more of my thoughts and experiences with others. I’ve been too quiet and reserved in the past, and I’d like to change that. Two blog posts already in 2012, so that’s a good start 🙂 Now let’s keep it up!
- Come up with and release at least one web application (e.g. not a client site). I’ve got some ideas brewing and am toying with one in particular right now, codereview.cc, check it out ->
- Build more open-source WordPress plugins. I’m currently working with the team at Modern Tribe to bring you The Events Calendar and other plugins. I really enjoy working with them and their process, which only inspires me more to build plugins of my own.
So those are my plans for 2012. What are yours? Thoughts, questions, suggestions welcome!
codereview.cc

As a developer who works primarily alone, I find that there can sometime be a lack of feedback (negative or positive) about my work. Anyone else on a similar boat as me?
I occasionally (and more frequently these last few weeks) work on teams of developers, where we have some kind of review system in place, so that we can each give feedback to each other about our code and practices. I have found that to be very invaluable. Both the experience of receiving feedback and giving it have been very educational for me.
So the idea behind this project is to connect like-minded developers (and who use the same languages) to help each other and perform code reviews for each other. The specifics of the implementation for this project is still what remains to be seen…
If you are interested in hearing more about the project as it develops and when it launches, please enter your email at codereview.cc. And if you can spare two minutes, please fill out the quick survey at codereview.cc/…
Please share any questions, suggestions or comments 🙂
WordCamp Victoria

UPDATE: The talk wasn’t accepted by the organizers of the event.
I’m proposing a talk for WordCamp Victoria 2012, “Bending WordPress to your exact needs” is what we’ll call it for now. In the spirit of open source, I’d like to leave the topic somewhat up to you, the attendees (or members of the WordPress community as a whole – even if you’re not attending).
I’m leaning towards a catch-all topic of “how to make all areas of your website editable”. I build all my sites with the end-goal of my clients being able to manage all aspects of their website, not just blog posts and pages. I’d love to show you how I do that. This talk could lean one of many ways. I could talk about widgets, custom content types (I don’t like calling them custom post types), custom taxonomies, option pages, security concerns and clients, making the admin more user-friendly, etc… This is where you come in, just let me know what topics you think I should cover.
So, please pitch in. Comment below if you have any suggestions for topics/areas I should incorporate (even if isn’t anything I’ve mentioned above), or email me directly at info@jkudish.com.
What qualifies me to talk:
I’m a PHP & WordPress developer. As an independent freelancer, I use and live WordPress daily for 99% of my client work. I am an active member of the open-source WordPress community. I participate in the WordPress forums, the WordPress trac, and build free plugins. I talked at WordCamp Montreal in summer 2011, and led a round-table discussion at WordCamp Portland in fall 2011. I’m looking forward to sharing with you at WordCamp Victoria. Read up about what I do with WordPress »