Spammer say the darnest things

I recently posted a post about my thoughts on so called “logo software” and found this gem in my comment spam.

“Big fan of these logos. If i’m really honest using photoshop for logo design will give it a more refined and professional look. What did you use for these?” [sic]

I should point out that 1) I posed no logos and  2) using Photoshop for logos is a horrible idea

Software does NOT make you a designer

LDS-Pro-lgAs someone with an associates in Graphic Design and who enjoys good design I am always cautious when something claims to take the work out of design.  So when I saw Logo Design Studio* the it made me laugh and scream. The product’s tag-line is “Easy Logo Design and Illustration.”  Let’s be honest there is nothing “easy” about branding. Good design is hard, takes work, and requires a lot of thought.

It is products like these that worry me, not because I’m scare of losing my job, but because I’m tired of seeing crappy design. There seems to be this misconception out there that if you own Photoshop you’re a designer or if you have a nice camera you’re a photographer. This simply is not the case. I’m not trying to claim to be an expert and to be honest on occasion I’ve seen  great design come from people with no formal design background. What I am saying is that it’s not a matter of software that makes a good designer.

This brings me to a last and somewhat unrelated note, good design cost money. Yet another of my frustration in the design world is that people think that just because they can buy software for say $40 that they should then be able to get a logo for that amount. I’m sorry (okay no I’m not) but this is not the case. Good design will, and should, cost a fair amount of money. Again, it’s not about the money per say, it is however about getting what you pay for. If you think about it a good logo is something you will be using for the life of your business. What that looks like is totally up to you. And trust me it’s easier to do it right from the beginning than to have to go back and start over.

I’ll leave you with this:  yes branding cost money. Yes that can suck. Yes there is software that says it can do it for you. No, it probably can’t. Yes, you get what you pay for. Yes these are my opinions.

*I have to admit, I’ve never used this product, maybe it’s great (but probably not).

Unlisted

As a business owner when I do a web search for my phone number many of the results are from directory services that post information on my business. For some businesses this may be fine, however, for me there are a few problems with this.

  1. The information is just wrong, I changed the name of my business and moved locations but the listings keep the old information. 
  2. I work from my home and don’t love the fact that a few dozen sites think is okay to post my personal information on line
  3. This is done without my consent, I have NO IDEA where these services are getting my information  My best guess is from the public directory of registered businesses. The public directory clearly states “FOR NO COMMERCIAL USE ONLY” meaning that the information shouldn’t be used for these listings
  4. I would rather have my company come up in search results rather than them.

Removal Instructions:

To remove your site you first need to find all the places you are listed. yext and google are both good tools for this.

I’ve had good luck with calling and requesting removal as well as email customer support. This can be tedious and time consuming but for me it’s worth it.

 

 

 

Uploading Files as Post attachments with Gravity Forms

Okay so like may others I love Gravity Forms. Simple, elegant forms for WordPress. However, I recently ran into a snag when trying to use the awesome Custom Post Type plugin to allow my client to upload a PDF then have that be saved as an attachment to the post. Here is my solution in hopes it helps you. I’m open to suggestions on better ways to do this.

add_filter("gform_after_submission", "nifty_add_post_attachements", 10, 3);
 function nifty_add_post_attachements($entry) {
 //you'll need this later, TRUST ME.
 if(!function_exists('wp_generate_attachment_metadata')){require_once(ABSPATH . 'wp-admin/includes/image.php');}

//do we even have a file?
 if (isset($_FILES['input_4'])) {
 $file_url = $entry['4']; //great but what is its url?
 $upload_dir = wp_upload_dir(); //where do you want to put it?
 $file_data = file_get_contents($file_url); //show me what you're made of
 $filename = basename($file_url); //so cute but what's its name?
 if(wp_mkdir_p($upload_dir['path'])) //can we put it there?
 $file = $upload_dir['path'] . '/' . $filename; //yes great
 else //or no, okay fine let's try somewhere else
 $file = $upload_dir['basedir'] . '/' . $filename; //get the whole location
 file_put_contents($file, $file_data); // tada home at last

$wp_filetype = wp_check_filetype($filename, array('pdf' => 'application/pdf','pdf' => 'application/x-pdf') ); //is it the right type of of file?
 $attachment = array( //set up the attachment
 'post_mime_type' => $wp_filetype['type'],
 'post_title' => sanitize_file_name($filename),
 'post_content' => '',
 'post_status' => 'inherit'
 );

$attach_id = wp_insert_attachment( $attachment, $file, $entry['post_id'] ); //insert attachment
 $attach_data = wp_generate_attachment_metadata( $attach_id, $file ); //asign the meta
 wp_update_attachment_metadata( $attach_id, $attach_data ); //update the post

//remove the entry
 //(to keep the entry comment or delete these line)
 // IMPORTANT See:  http://pastebin.com/quvsvGHJ for the function
 if(!function_exists('sedc_gform_remove_entries')){ die('next time maybe you should read the comments');}
 else{ nifty_gform_remove_entries($entry, $form );}
 }
 }

I have included a function that removes the entry and original file upload. That function can be found here. There is also a simpler version that doesn’t give a damn about the file upload that can be found here. Both are original from the GF support forms but have been slightly modified for v 1.6.  I should also point out that some of the upload code came from here.

Hope you find this useful

Mobile EPS for WordPress 1.4

I just committed Mobile ESP for WP 1.4. This is a Minor Update that updates the Library to the latest version. No other changes have been made.

With HTML5 and responsive themes becoming the new standard (even with my own development) I’m wondering if this plugin is worth keeping updated but it’s the least I can do to keep the lib updated. Let me know if you have any issue or concerns with 1.4.

How to Add the latest Linux Mint Backgrounds (13 to 14)

I recently updated my laptop to Linux Mint 14 Nadia with this update came a bunch of really great desktop backgrounds (see release notes). I am still using mint 13 on my desktop and because it’s a LTS I have no need to update. I did however want the new backgrounds.

The solutions? Download the mint-backgrounds-nadia-extra.deb and install it. And just like that you have these new backgrounds.

Simple Portfolio Widget

Hi, I just wrote a simple portfolio widget and thought I would share. This code uses Justin Tadlock’s get_the_image plugin and custom widget code to display the featured image based on tag or post type.

Just drop this into your functions.php or create a plugin to see it in action

if ( function_exists( 'add_image_size' ) ) {
add_image_size( 'sidebar-thumb', 75,75,true   );

}
class PortfolioWidget extends WP_Widget
{
function PortfolioWidget()
{
$widget_ops = array('classname' => 'PortfolioWidget', 'description' => 'Displays a list of thumbnails for portfolio pieces in the sidebar' );
$this->WP_Widget('PortfolioWidget', 'Portfolio Thumbnails', $widget_ops);
}

function form($instance)
{
$instance = wp_parse_args( (array) $instance, array( 'title' => '','tags' => '', 'post_type' => '' ) );

$title = $instance['title'];
$tags = $instance['tags'];
$post_type = $instance['post_type'];
?>

<p><label for="<?php echo $this->get_field_id('title'); ?>">Title: <input id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo attribute_escape($title); ?>" /></label></p>
<p><label for="<?php echo $this->get_field_id('tags'); ?>">Tags: <input id="<?php echo $this->get_field_id('tags'); ?>" name="<?php echo $this->get_field_name('tags'); ?>" type="text" value="<?php echo attribute_escape($tags); ?>" /></label></p>
<p><label for="<?php echo $this->get_field_id('post_type'); ?>">Post Types: <input id="<?php echo $this->get_field_id('post_type'); ?>" name="<?php echo $this->get_field_name('post_type'); ?>" type="text" value="<?php echo attribute_escape($post_type); ?>" /></label></p>
<?php
}

function update($new_instance, $old_instance)

{
$instance = $old_instance;
$instance['title'] = $new_instance['title'];
$instance['tags'] =  $new_instance['tags'];
$instance['post_type'] = $new_instance['post_type'];

return $instance;
}

function widget($args, $instance)
{
extract($args, EXTR_SKIP);

echo $before_widget;
$title = empty($instance['title']) ? '' : apply_filters('widget_title', $instance['title']);
$tags = empty($instance['tags']) ? '' : wp_parse_id_list($instance['tags']);
$post_type = empty($instance['post_type']) ? '' : preg_split( '/[\s,]+/',strtolower($instance['post_type']));

if (!empty($title))
echo $before_title . $title . $after_title;

$query = new WP_Query( array( 'post_type' => $post_type, 'tag_id' => $tags  ) );
while ( $query->have_posts() ) : $query->the_post();
echo get_the_image( array( 'meta_key' => 'Thumbnail','size' => 'sidebar-thumb') );
endwhile;
wp_reset_postdata();
echo $after_widget;
}

}

Let me know your thoughts or if you have any questions. If there is a large intrest I may post a complete write up and example with images.