I did not know Gwen was sick. I didn’t know she had cancer. On Monday, she died.

I respected her and found comfort in her presence. I trusted Gwen to tell me the truth, to find humanity in any situation, to always reflect appropriate levels of concern.

I trusted Gwen Ifill completely. Not because she was on TV, but because she did not hide who she was: she broadcasted it. She was a complete person who was honorable and eminently professional.

Multiple times every week, before dinner, my wife Juniper and I watch the PBS NewsHour. We enjoyed saying hello to Gwen and Judy—out loud!—from our couch. We often would comment to each other that “Gwen and Judy are the best at what they do” and “there is no one else like them.” Then, turning back to the news, Juniper and I would watch Gwen professionally deliver the events of the day with heart and enthusiasm.

Now that she’s gone, I know that Gwen was my role model. She displayed strength, dignity, and professionalism, as well as strong steady passion for her work, kindness, and playfulness.

I switched from developing using Vagrant with VVV to using the new Mac app Pressmatic. I’ve been very happy, and so has my Mac—the dev environment runs much faster and my computer has been working a lot less. Less fan noise is good.

The server environment that Pressmatic uses don’t have some basic stuff that I needed to maintain compatibility with my setup. This is a running list of items that I’ll update as I come across more requirements:

Are you a self-motivated intermediate or advanced PHP freelance developer? Want to work on taking WordPress plugins to the next level?

I want to work with for someone who is interested in contract or hourly work to work with on GravityView, IDX+, and my other WordPress plugins. There is lots of work to be done. We currently have a team of 3 people working on the plugins, and I’m looking to expand my development and support team.

What you would be doing:

Develop additional functionality for existing plugins

Refactor existing code – implement appropriate coding patterns

Help squash bugs

What we’re looking for:

Good code – Write code with well-conceived structure

Problem solving – Figure out solutions that are best-practice and maintainable

Good communication – Check in when milestones are reached and when you have questions or delays

Intermediate to advanced PHP skills (With lots of OOP experience)

Experience with WordPress is a plus (familiarity with actions/filters/functions)

Experience writing unit tests with PHPUnit is a plus

If you are interested and feel like you would like to work with us, please fill out this form:

Almost ready.

It’s been a long haul for the new version of the Constant Contact for WordPress plugin. I started working on it before Constant Contact finalized their new API, so let’s just say it has been a major undertaking 🙂 Now I need help getting it ready for release!

The new Constant Contact WordPress plugin has some cool features, such as inline editing of lists and contacts, nicer report layouts, error/activity logging, and much cleaner ways of doing things.

Please help by installing the plugin and reporting issues.

Please help test the plugin and — most important — report issues using this form.

I want to release the plugin in the next three weeks, so please download, install, and submit issues as soon as possible. It would be a huge help.

Are you a developer?

Please help out and contribute on GitHub. Your help will earn you a thank-you link on the plugin’s settings page!

Future plans

Once the new version is released, I plan on allowing this plugin be the connector to Constant Contact for my other integrations (Contact Form 7, Gravity Forms, and Fast Secure Contact Form). That way, other forms can be used instead of the Form Designer and you’d still get all the other functionality of the main API plugin, like viewing and editing contacts.

WangGuard is a great plugin for blocking spam registrations. Without it, this site gets about 50 per day. No good!

I did encounter an issue, however: The <![if !IE]> tag was showing on my registration form for some reason. The code WangGuard adds inside the tag is used to generate a “honeypot” section: spam bots see the fake form fields but users don’t. Spam bots fill out the fields and when the form is submitted, WangGuard sees that the fake fields are filled in and knows the user is spam. The good news is that WangGuard still works without the honeypot fields.

Add the code below to your functions.php file to remove the honeypot fields:

/**
* Get rid of WangGuard's honeypot fields on the registration form
*/function kws_remove_wangguard_honeypots(){$i=1;// WangGuard generates actions in a random position between 1 and 10, // so we remove all actions that may exist.while($i<11){
remove_action('register_form','wangguard_add_hfield_1',$i);
remove_action('register_form','wangguard_add_hfield_2',$i);
remove_action('register_form','wangguard_add_hfield_3',$i);
remove_action('register_form','wangguard_add_hfield_4',$i);$i++;}}
add_action('plugins_loaded','kws_remove_wangguard_honeypots');

Apple has a deep-seated diversity problem.

In the 30 Years of Mac mini-site, a thoughtfully prepared homage to the history of the Macintosh and the people who use it to create, therewerefourwomen featured out of the twenty-eight profiles. One of the women featured, Noemi Trainor is an educator, a role women are “allowed” to be in. There were no Blacks or Hispanics represented.

It’s easy to say that this has been gone over before. It’s well-known that Apple’s leadership is all white males (soon to include a women, Angela Ahrendts). Using archive.org, I can only find one woman in Apple’s leadership since 1997: Nancy R. Heinen. Nancy Heinen worked at Apple as Senior Vice President and General Counsel from September 1997 to May 2006, until she was sacrificed for backdating stock-options for Steve Jobs. No minorities.

Board recruitment is not the problem, culture is.

The nominating committee is committed to actively seeking out highly qualified women and individuals from minority groups to include in the pool from which board nominees are chosen.

It’s obvious by looking at their leadership team and board roster that diversity is simply not a part of the Apple culture. This culture will not change with an improved board recruiting policy. Changing a culture is a much tougher nut to crack. On Sheryl Sandberg’s LeanIn.org website, there’s a suite of tools for increasing organizational diversity through non-biased hiring and management practices. Creating a Level Playing Field, a brilliant talk by Stanford Professor Shelley Correll, would be a good place to start.

It’s gotten bad.

I’m mad at Apple. It’s inexcusable that one of the largest companies in the world, a trendsetting company, does not care more about diversity. Apple should be setting the example for the tech world and being a diversity leader. I’m tired of seeing high-resolution images of Bob Mansfield and Jonny Ive.

I’m aghast that the 30 Years of Mac website features mainly white dudes, apparently the only innovative users of Macs. Surely, Apple could have found some African American innovative graphic designers that used the Mac over the past 30 years and represented more than four women. Apple chose not to.

Who was the editor of 30 Years of Mac? Who looked at the featured profiles and said “This represents our users”? Did someone at Apple say “I think we should feature more minorities and women?” or “Gee, that list of people is really, really white”? If not, that voice needs to be heard, and if someone did say that, that voice needs to be louder.

It’s time for Apple to step up their game and change their culture.

[EDIT] – Apple has promoted Denise Young Smith, an African-American woman, to run HR. Here’s a snippet from the Bloomberg article:

Smith is the latest woman to join Apple’s top ranks, which also include Katie Cotton, vice president of communications, and Angela Ahrendts, the former Burberry Group Plc chief executive officer who will lead retail operations.

Gender and race is a touchy topic, and I’m trying to represent my point of view without being disrespectful. If I use any language the you find offensive, please let me know.

Working with Google Maps v3 is way fun.

If you’re a masochist.

Scrolling InfoWindow It seems like there’s no easy way to set the width of an InfoWindow. You can set the minWidth parameter, but that does nothing.

If you have content that exceeds the InfoWindow window, you get this: a scrolling box. That’s terrible.

The solution is horribly easy.

The solution presents itself. This will solve all your problems, and make you wish you had the past two hours back of your life: use the provided .gm-style-iw class to style the InfoWindow content container.

After reading Pippin Williamson’s post about gettext speed issues, I wanted to learn more. My IDX+ plugin has 815 translatable strings, and I was worried that it was having a performance impact on the plugin.

I created a test that looped through different methods of outputting and printing strings to try and determine their relative speed. WordPress uses different functions for translating strings, as documented in the Codex, and I included __() and _e(), the functions I use the most often.

Here are the results of a 100,000-iteration loop:

echo 'Test': 0.1786 seconds

$out .= 'Test': 0.2454 seconds (37.4% slower)

__('Test'): 0.5301 seconds (196.8% slower)

_e('Test'): 0.5639 seconds (215.7% slower)

echo __('Test'): 0.5722 seconds (220.4% slower)

__('Test', 'test'): 0.5743 seconds (221.6% slower)

_e('Test', 'test'): 0.6076 seconds (240.2% slower)

echo __('Test', 'test'): 0.614 seconds (243.8% slower)

$out .= __('Test', 'test'): 0.6885 seconds (285.5% slower)

“Findings” (non-scientific)

Contrary to what I had read, echoing inline was by far the fastest method.

Adding a domain (the second parameter) to translation functions slows the functions down a bit.

Storing strings in a variable after using __() is slow.

All times are well below 1/10th of a second when translating 10,000 strings instead of 100,000.

Conclusion

Although translating 100,000 strings adds half a second processing time, if your site is processing well less than that, you shouldn’t have a problem.

It seems the site Pippin was working on had enough strings to affect the responsiveness of the site, but I would bet that’s not a normal site. I also would bet that the issues the site was having are not because of the translation functions themselves, but the translation plugin the site was running.

I’m going to be using more _e() and less echo __(), but other than that