Two Giraffes

We’re Happy to Announce Mesh Lakhani!

Welcome Mesh!

We are extremely excited to have Mesh Lakhani joining our team in the role of biz dev and project management. Mesh was one of my first clients when I was freelancing, and since than has turned into a great friend. I have been working with Mesh for over three years, on various projects. Having finally met Mesh in person this past October, it was a no brainer to have him come on board.

Here are a few words from Mesh:

Hi! I’m Meshal Lakhani (call me Mesh) and I’m honored to be joining Two Giraffes. I will be taking on the role of business development and project management. Clients are important to us. We pride ourselves in our ability to build great relationships. As a former client of Two Giraffes, I know the value of professionalism and I always found that here. Recently I brought my project Album Jacket to Two Giraffes and together we’ve built something great. Developing an idea into a visually impressive and functional product isn’t an easy process, but we will make it a pleasant experience for our clients. I look forward to being a part of this team and working with those who request our services.


We Have Acquired The Geek Talk!

We are pumped to announce that we have acquired TheGeekTalk. The geek talk has been on my radar since I was interviewed on the site back in 2010, and when the site went up for sale, I jumped at the chance. We have some big plans for the geek talk, but here are a few things you can expect in the next month or so.

A Brand New Design

While the geek talk is full of create content, we feel the design is lacking. We are going to revamp some of the UI, and make the site a bit friendlier on the eyes.

Updating Branding

We are going to work with our favorite logo designer on the planet to develop a new identity for the geek talk.

Interviews with more designers

We notice the site is a bit heavy on developer interviews. Wheres the designer love? You can expect to see a healthy ratio of both designers and developers from here on out.

Mobile websites for foodblogs!

We just launched a new service at TwoGiraffes, mobile websites for food blogs! Our new mobile service integrates directly with the WordPress admin, making managing your mobile site headache free. We are super excited about our new service and are glad to be working with the food blogging community again.

How does this work?

Our new mobile service is easy to install. It integrates directly with wordpress and can be controlled through the control panel. It works with any wordpress theme, has automatic updates, and once we skin it to match your existing wordpress blog, setup is instant! Did we mention it worked on all smart phones?

Mobile Advertising

We built our mobile theme with advertising in mind. We allow you to run your custom google adcode, or third party ad service so you can profit off of your mobile readers!

For foodies, by foodies

Alright, so we are not exactly foodies, but we are really involved in the food blogging community. Dashing Dish, the site featured above, is run by the wife of our lead designer, Sean Farrell. We also run, an ad network for food blogs. Lastly, we are huge fans of the bloggers that empower the food blogging community, many of whom we had the pleasure of meeting at last years BlogHer food blogging conference!

How can I go mobile?

Head on over to our contact page and get in touch! We would love to talk to you!

Im Speaking At Wordcamp Miami!

Im happy to report Im speaking at my first Wordcamp! I was selected to speak at Wordcamp Orlando earlier this year, but it was postponed. I had put together some of my presentation already, so I was looking for a place to share my knowledge. Thankfully, Wordcamp Miami accepted me to come speak for their developer track. I’m extremely excited for this opportunity. I love WordPress. Ive contributed to its community and built 50+ websites using it as my platform as choice. Earlier this year, I had the honor of having one of my websites make it to the WordPress Showcase. With Two Giraffes being just over 6 months old, I look forward to continuing to give back to the WordPress community.

My Talk On WordPress Performance & Optimization

Web performance isnt about getting your web page to load in seconds anymore, its about milliseconds. As developers, we need to start re-evaluating the current emphasis we put on load times. With advancements on the mobile front, Google’s emphasis on load times for SEO, and the general commitment to your users, you cant afford to be a second too slow. I will provide the tools you need, as well a concrete examples on minifying css & js files, the best caching techniques, reducing plugin lag, and server-side optimization.

Come Listen to Me Speak!

If you are a South Florida developer, or are looking for a good time to visit Miami (anytime is a good time, ask Lebron) you can find out more information about the event here. Check out the speaker track to see some of the other great developers speaking. I hope to see you there!

Quick Hack: How to disable password resets & changes for wordpress users

One of my client sites ran into a problem where a group of users who share the same login/password, would change the password for the profile, causing all of the other users to become locked out. I wont get into specific details of why their aren’t individual username and password combinations, but here is a quick hack I used to disable this from happening. Below is what the admin screen looks like after this quick hack. The change password option is gone.

To actually disable the password fields in the wp admin, I just commented lines out of user-edit.php in the wp-admin directory. Ill admit, this isnt the best way to do it, as the admin account wont be able to change the password, but in this case, I was looking for something to quickly remove these fields, as I knew I wouldnt be changing the fields anytime soon. I could have set a cron to change the password. Here are lines I removed (lines 291-303)

<!--?php $show_password_fields = apply_filters('show_password_fields', true, $profileuser); if ( $show_password_fields ) : ?-->

<label for="pass1"><!--?php _e('New Password'); ?--></label>

<input id="pass1" name="pass1" size="16" type="password" /> <span class="description"><!--?php _e("If you would like to change the password type a new one. Otherwise leave this blank."); ?--></span>

<input id="pass2" name="pass2" size="16" type="password" /> <span class="description"><!--?php _e("Type your new password again."); ?--></span>
<div id="pass-strength-result"><!--?php _e('Strength indicator'); ?--></div>
<p class="description indicator-hint"><!--?php _e('Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! " ? $ % ^ &amp; ).'); ?--></p>
<!--?php endif; ?-->

By commenting out that code, the change password field is completely removed from the profile screen. Unfortunately, that wasnt enough as WordPress still allows you to reset the password via email. I found a solution in this support thread on

<!--?php<br /--> /*
Plugin Name: Disable Lost Password Feature

function disable_password_reset() { return false; }
add_filter ( 'allow_password_reset', 'disable_password_reset' );
function remove_password_reset_text ( $text ) { if ( $text == 'Lost your password?' ) { $text = ''; } return $text;  }

function remove_password_reset() { add_filter( 'gettext', 'remove_password_reset_text' ); }
add_action ( 'login_head', 'remove_password_reset' );

function remove_password_reset_text_in ( $text ) { return str_replace( 'Lost your password?', '', $text ); }
add_filter ( 'login_errors', 'remove_password_reset_text_in');


After activating the above plugin, that should leave no possible way for a user to change their password. Its not a perfect solution, just something I quickly threw together. I would love to hear if any other developers have come across this, and if so, what their solution was.

Two Giraffes

Finally! Two Giraffes is freshly launched, but still needs some tweaks. Please report any bugs you find and bear with me over the next 48 hours while the polish is piled on!