My Steve Jobs Tribute

I did this digital tablet drawing of Steve Jobs for a class project in school. I spent quite a bit of time huddled over my Wacom Cintiq trying to reference draw this portrait, and it just goes to show you that Steve Jobs had an influence my life not just in the products his company Apple produced, but also in my projects I produced as well.

Illustrator Outline Problem

About a month ago, a classmate of mine had pointed out that illustrator sometimes had a mysterious hairline around shapes of objects, even when there wasn’t a border or outline defined on the shape. Furthermore, this outline when exported out into raster format, retained and translated that outline into the pixels of the image!

See the following image close up to see what is happening. Also described here some six years ago but with no solution.

Well as you can see in the image, the problem has to do with the CYMK specifically, and the depth of the colour values for not only K, but cyan, yellow and magenta as well.

For some reason illustrator puts a thin outline around the image.

I really don’t know know if this was planned by Adobe, but I do know how to fix it – simply Set all CMYK values to 100%, or if you want, set all of the values of C, M & Y to those of the background colour, and let the K (black) fill the rest of the shape as the black normally.

Celedays Calendar

Celedays Calendar: Here’s a project I worked on for my Typography 4: Expressive Type class.
The concept revolves around a calendar, “.. [it may be] a usable calendar or one that simply incorporates the elements that one associates with a ‘calenda…

Here’s a project I worked on for my Typography 4: Expressive Type class.

The concept revolves around a calendar, “.. [it may be] a usable calendar or one that simply incorporates the elements that one associates with a ‘calendar’. I.E. numbers, the months, times, days, seasons etc. It’s all about carving up, distribution and categorization of ‘TIME’…”

My calendar distributes time by day, with the topic of holidays as a focus. The names of the holidays were collected at random from polling various people on Facebook asking them for one new holiday celebration per month, I call “Cele-days”.

The poll was conducted through my personal alias Facebook page (Something Interactive), where I created a simple Facebook App that used Google Docs as an embedded online form to collect information with, and also ensuring that anyone filling out the form needn’t leave Facebook.

I pitched the project on the Facebook page with this headline copy:

What if the Canadian Government realized the citizens of Canada work extremely hard and proposed to offer twelve new statutory holidays, one per month. They’ve temporarily named them celebration days (“Celedays”). In time these Celedays will need a more fitting name based on contemporary importance. What name would you recommend for each month’s new Celeday? Please share your reasoning for naming that day.

Once I collected all of the responses, I eliminated the duplicates and created random filler days. Finally, the resulting output was coded and put online here in this presentation. If down the road I feel like want to revisit this, I can easily take the days and resort them, change the display functionality and restyle them easily.

In the first minutes of showcasing this to the public, I noticed that people immediately scroll to the Celeday that coincides with their birthday, how interesting and fun!!

Interac goes Social, Show Some Appreciation!

Interac goes Social, Show Some Appreciation!: I don’t personally know a single Canadian that doesn’t use Interac. From that big purchase at department store to the small coffee at Tim Hortons, Canadians may at times, take for granted the convenienc…

Interac goes Social, Show Some Appreciation!:

Interac LogoI don’t personally know a single Canadian that doesn’t use Interac. From that big purchase at department store to the small coffee at Tim Hortons, Canadians may at times, take for granted the convenience behind our electronic debit system.

With that said, Interac just launched their Facebook and Twitter profiles today.

The reason why I am posting this, is because I launched it for them!

While working at Navgator, I was tasked with building their social media strategy and I had the pleasure of working with their communications team to create a couple different mockups and ideas for launching a fiscally fit themed launch.

I admit my surprise that they didn’t have social media profiles up on Facebook or Twitter earlier.

I encourage everyone to go “spend” some time, thank Interac for being a great service, view their new TV commercial with their lovable Interac Truck, and enter into their “Financially Fit Contest” for a chance to win a cash prize!

Lastly don’t forget to share their Facebook page with your friends or follow them on Twitter!

Gap's New Rebrand

When I visited the Gap website this morning for the first time, I was appaled at the entire roll out (or lack thereof) of their brand across all sources: gap.com (old favicon still displayed on the address bar), wikipedia (not even updated), twitter account (not updated), facebook profile (not updated).

It makes me wonder if this is forgery and/or the gap.com website got hacked.

When companies rebrand themselves as drastically as Gap just has, it leaves the customers questioning their identification with the old brand and how they should adopt the new brand, often leading to severe and negative reactions and counter-loyalty.

The company that has been branding the Gap account for as long as I can remember is the ever-present Laird & Partners. They have nothing on their website about the new rebrand either on their website.

As for my initial reaction, my exact sentiments are shared with what TAXI has to say about it.

Not to mention what many other people think as well:

https://twitter.com/#!/search/%23gap

Get URLs, Captions & Titles for Images Attached to Posts in WordPress

I’ve been working on a new WordPress theme for my client that involves a billboard concept where certain posts are categorized as homepage billboard items, and those post items have images attached to them within the Media gallery of WordPress. I found out how to pull out the URI address of the images that are attached to the posts, but it took me some time to figure out how to get the Title, Caption and Description text associated directly with that image attachment.

I borrowed most of my code from here, but I think my example illustrates the concept of retrieving the data needed much easier.

General Code Concept

$size = "thumbnail"; // options: thumbnail, medium, large, full
$args = array(
	'numberposts' => null, // change this to a specific number of images to grab
	'post_parent' => '25',
	'post_type' => 'attachment',
	'nopaging' => false,
	'post_mime_type' => 'image',
	'order' => 'ASC', // change this to reverse the order
	'orderby' => 'menu_order ID', // select which type of sorting
	'post_status' => 'any'
);
$attachments =& get_children($args);
if ($attachments) {
	foreach($attachments as $attachment) {
		foreach($attachment as $attachment_key => $attachment_value) {
			$imageID = $attachment->ID;
			$imageTitle = $attachment->post_title;
			$imageCaption = $attachment->post_excerpt;
			$imageDescription = $attachment->post_content;
			$imageAlt = get_post_meta($imageID, '_wp_attachment_image_alt', true);
			// $imageAlt = $attachment->image_alt; // not sure about this one
			$imageArray = wp_get_attachment_image_src($attachment_value, $size, false);
			$imageURI = $imageArray[0]; // 0 is the URI
			$imageWidth = $imageArray[1]; // 1 is the width
			$imageHeight = $imageArray[2]; // 2 is the height
			echo "$imageURI \n";
			echo "$imageWidth \n";
			echo "$imageHeight \n";
			echo "$imageID \n";
			echo "$imageTitle \n";
			echo "$imageCaption \n";
			echo "$imageDescription \n";
			if(count($imageAlt)) {
				echo $imageAlt;
			}// if '_wp_attachment_image_alt' is not set, echo $alt; shows text like 'Array()'
			break;
		}
	}
}
unset($args); // clear out arguments if using code multiple times in a theme

Practical Usage #1

Use the following to iterate all images from a post
Hint: can use the above example’s variables to pull additional info for each.

$size = "medium";
$args = array(
	'numberposts' => null,
	'post_parent' => $post->ID,
	'post_type' => 'attachment',
	'nopaging' => false,
	'post_mime_type' => 'image',
	'order' => 'ASC',
	'orderby' => 'menu_order ID',
	'post_status' => 'any'
);
$attachments =& get_children($args);
if ($attachments) {
	foreach($attachments as $attachment) {
		foreach($attachment as $attachment_key => $attachment_value) {
			$imageID = $attachment->ID;
			$imageTitle = $attachment->post_title;
			$imagearray = wp_get_attachment_image_src($attachment_value, $size, false);
			$imageURI = $imagearray[0]; // 0 is the URI
			$imageWidth = $imagearray[1]; // 1 is the width
			$imageHeight = $imagearray[2]; // 2 is the height
			echo "\t<img src="$imageURI" width="$imageWidth" height="$imageHeight" border="0">\n";
			break;
		}
	}
}
unset($args);

Practical Usage #2

If you want to get a specific image ..

$size = "medium";
$args = array(
	'numberposts' => 2, //change this to the image you want
	'post_parent' => $post->ID,
	'post_type' => 'attachment',
	'nopaging' => false,
	'post_mime_type' => 'image',
	'order' => 'ASC',
	'orderby' => 'menu_order ID',
	'post_status' => 'any'
);
$attachments =& get_children($args);
if ($attachments) {
	foreach($attachments as $attachment) {
		foreach($attachment as $attachment_key => $attachment_value) {
			$imageID = $attachment->ID;
			$imageTitle = $attachment->post_title;
			$imagearray = wp_get_attachment_image_src($attachment_value, $size, false);
			$imageURI = $imagearray[0]; // 0 is the URI
			$imageWidth = $imagearray[1]; // 1 is the width
			$imageHeight = $imagearray[2]; // 2 is the height
			// move this down below
			// echo "\t<img src="$imageURI" width="$imageWidth" height="$imageHeight" border="0">\n";
			break;
		}
	}
}
unset($args);
echo "\t<img src="$imageURI" width="$imageWidth" height="$imageHeight" border="0">\n";

The way the code above works is: the foreach loop, loops from the beginning and iterates through, but doesn’t output .. until it’s done the loop. It loops through 1, populating all of the variables, and then loops through 2, replacing all of the variables with 2’s values. Because we changed the number of posts to retrieve, we only retrieve the last one we wanted, in this case the second image!

This can also be changed to work backwards too (ie. we can get the “second last” image). This can be modified to work with any sort of suitable sorting option: alphanumerically, rating, by ID, etc. – all just by changing the orderby and order setting!

Hope this solution works for your custom PHP queries and image retrieval via WordPress’ Media gallery.