ShooFlyBuzz

Welcome to ShooFlyBuzz, the company weblog. We use this space to talk about what’s happening with ShooFlyDesign, but more generally to talk about web design, the challenges we encounter, the tools we use, websites we like, and provide some training on the care and feeding of your own website.

If you want to send in feedback, leave a comment, send an email, or tweet @shooflydesign.

Last month, SoCal WordPress and Hollywood WordPress joined forces for a meetup called "My Favorite Plugin". There were quite a few of us who gave lightning talks on a particular plugin we like. Video from the meetup was just posted. There were many plugins I wasn't familiar with, all coming recommended by folks in the LA WordPress community. Check it out below, or read the post on HollywoodWP.com.

You can also skip to my portion on WP Migrate DB and its powerful, commercial companion WP Migrate DB Pro, at 22:30 or so. As I said in the talk, I haven't quite needed to buy the paid version yet because the free one is well done and covers what I usually need, but I'll probably be buying the Pro version regardless just to say thanks to the developer.

I also hype the idea of writing your own plugin, which was something I went into in a little more depth at the Advanced WordPress meetup later that same week. Our March meetup is this coming Saturday at 11 AM. Come get your weekend WordPress on!

Categories: 

When you change themes on a Drupal 7 site, you often need to reset the placement of your blocks. If you're using the core block module to place them, you may end up with a bunch of blocks in unexpected places on your new theme. If you want to reset everything and start from scratch, you could edit the {blocks} table in your database, but you can also do it with JavaScript. While viewing the blocks admin page (admin/structure/blocks), paste this line into your JavaScript console:

jQuery('#blocks').find('select').val(-1);

If you're trying to make your Drupal site as fast as possible, you might consider using a static HTML file for page not found (404) errors. There are various other solutions that can help make Drupal faster in these situations while still letting you take advantage of Drupal-level redirects and whatnot, but a static page is always the fastest.

Categories: 
Tags: 

I'm participating in this campaign to curtail the massive surveillance happening in this country and elsewhere, through the NSA and related organizations. There's a big gnarly banner across the bottom of my site all day, and you can check out The Day We Fight Back for more information. If you're in the US, you can call and email using the tools in that banner.

Categories: 

The all-powerful Jetpack plugin for WordPress is full of useful features, one of which is contact forms. It's a pretty good choice for this because it ties in with Akismet for spam protection, stores all submissions in the database (so your email account isn't the only place to look if one goes missing), and comes with a nice UI for creating the forms. Once installed, you get an "Add Contact Form" button on your Posts and Pages edit screens, with sensible defaults.

Categories: 
Tags: 

This has been a crazy year. A whole lot of client work, a new arrangement with lynda.com, some unreleased projects that I can't quite talk about yet, and that's just in the ShooFlyDesign part of life!

Categories: 

lynda.com - online training videos I'm delighted to announce that my new course, JavaScript for Web Designers, is now available in the lynda.com online training library.

If you're a web designer comfortable with HTML and CSS, and want to learn how to add interactivity to your projects, this course will help you do that. You're not going to master the entire language and everything it can do in three hours, but it will get you rolling in a hurry, developing your intuition and understanding of using JavaScript on the web. Using this course as a foundation, you can move further into the world of writing code for web browsers, and making all kinds of cool stuff on the web.

There are many free videos available, so you can listen to the melodious sound of my voice and get a feel for the examples and teaching style. Check it out!

Categories: 

I'm working on a Drupal project that requires calculating some custom stats for each registered user. To get it working, I ran my SQL queries right in hook_user_load(), which is wildly inefficient; it's much better to run the queries once and cache the results for a while. Drupal has nice cache functions built-in, and I thought I should use them, but wasn't totally clear on how to do it based on the documentation.

Jeff Eaton of Lullabot wrote a really helpful article on how to do basic caching in Drupal 7, which is a good introduction, but didn't really explain how to cache a bunch of related, but separately calculated, pieces of data using a function you'd call repeatedly. Examples module is also great, and does include a cache_example module, but also didn't have an example that was right up my alley.

So, here's how to write a single function that can be called multiple times on the same kind of object. This is not what you'd want to do for users or other built-in entities (for those, you should use Entity Cache module). Thanks to Planet Drupal readers for the feedback and help clarifying this.

Categories: 
Tags: 

Pages

Subscribe to ShooFlyBuzz