Archive for March, 2009

Grand Central, now Google Voice!

Posted on: March 26th, 2009 by Bobby

I recently received my upgrade from Grand Central to Google Voice, and i must say, its stinking rad. If neither of these services are ringing a bell, then listen up. Grand Central, now

gv1

Google Voice is a free service that offers you a unified phone number that can ring multiple lines such as your office, cell, or home simultaneously. Which if you are on the go like me, then you will love Google for their latest sensation. Some of the new features are super hot like its ability to transcribe messages and have them routed to your favorite email client or even blast a text to your mobile device. The web in-box UI imitates your gmail experience,so you will be up and running in no time. As the calls come in, you can store them indefinitely which is pretty cool and they are completely searchable. If you decide you want to call someone back, you can do so from right inside the web interface. Simply click a button and Google Voice automates the rest based on your preferences.

Google Voice also has some other nifty features like “Listen-In” which allows you to screen the call prior to accepting. Some of the other big ones are: Custom greetings, call blocking, call me widget, and mobile access. While not confirmed, rumor has it they are looking at adding the ability to port numbers in the near future. Google Voice is not yet open to the public,however i would highly recommend heading over to the site and get your name on the waiting list. It will be worth the wait. I promise!

The Photo-Shoot!

Posted on: March 23rd, 2009 by Bobby

Long time friend and amazing photographer Josh Letchworth hit me up with a personal portrait project themed around “Interrogation.”  After a few afternoons of scouting out locations and talking through the concepts we located the “A” spot, and locked down a day to shoot. The result was a super fun day of laughter, lighting, and clicks from the camera! Here is some goodness from behind the scenes!

shoot_3

shoot_2
shoot_11

 

A Name Is Just A Name

Posted on: March 23rd, 2009 by Bobby 1 Comment

First and foremost I would like to welcome you to the new site which by now you know encompasses our new brand. While i am certain there are a lot of die hard Hydra fans freaking out, (Especially those of you with it tattooed on your body!) rest assured that this change is truly in the best interest of the longevity of our company and our service offerings to you. We will continue to rock your socks off with some of the hottest digital goodness found on the web. The truth be told a name is just a name its the charisma of the people behind that name that truly makes it a movement. As Hydra becomes Nostalgia on our walls and in our memory, I truthfully hope your new experiences with Purple, Rock, Scissors is as equally rewarding.

Where to begin? I seriously have so much to talk about, from my thoughts on the new brand, our new site, and even our new offices! Its all about change these days, and in a post election season i am sure we can all think of some nifty slogans that embodies the fundamental reasoning of change. While for the most part i am a huge advocate of change i will also agree that sometimes change is downright disruptive. Its finding that balance of being to comfortable and by my definition of to comfortable i mean stagnant and leading your team into the oh sh** is this really going to work territory. And right now i feel like we have achieved that balance. I am not going to lie and say the last 90 have been a walk in the park especially the move. The move alone is like an unbelievable tale of tales straight out of a war-zone, from the hours we were held captive demoing, painting, and building what not only felt like but was actual Uhaul loads of IKEA furniture, to the logistics of our IT infrastructure headed up by our one and only Christopher Burdick. Jump over to our flickr to see more!

A green shoe that isn’t green…

Posted on: March 19th, 2009 by Shayne

rataplus

I can definitely say this is the most lightweight shoe I have ever owned. The Rata Plus is super comfy and feel like a little piece of the beach under your feet. They are made of hemp, bamboo, water-based inks, with biodegradable corn lace eyelets, making them eco-friendly and super awesome. I want to buy them in every color.

Development Blocks, Waiting In Line

Posted on: March 17th, 2009 by Mike

After developing CSS for so long, it’s rare that one would encounter anything during development that is new and practical, nonetheless life-changing. When dealing with mad scientists such as graphic designers, whose focus is not in semantic markup, document flow, or helping to make the life easy on a development team, there are times where you need to be creative and experiment with new techniques. Carving out the style-sheet for our own website would be one of those times.

In viewing our website, I’m sure you’ve come across the slideshow interface at the top of various pages, with the 1, 2, 3 navigation in switching between slides:

bshot_05

Horizontal navigation through unordered lists is nothing out of the ordinary, and is used at least once or twice every time we develop an interface, which is presumably the same situation for most authors of CSS. Our primary issue is that based on design. the navigation requires a couple factors:

  • The navigation is inline
  • The numbers are positioned on top of the content
  • The navigation is right-aligned

Let’s start with some basic HTML markup for the unordered list navigation:

<ul class="moneyshot_tabs">
    <li><a title="Click to View" href="#moneyshot_01"></a></li>
    <li><a title="Click to View" href="#moneyshot_02"></a></li>
    <li><a title="Click to View" href="#moneyshot_03"></a></li>
</ul>

Normally, my CSS declarations for basic inline navigation would look like the following:

.moneyshot_tabs {
    list-style: none;
    width: 670px;
}
.moneyshot_tabs li {
    display: inline;
}
.moneyshot_tabs li a {
    background: url(images/bg_numbers.png) top left no-repeat;
    color: #FFF;
    display: block;
    float: left;
    padding: 2px 0 0 0;
}

Pretty simple. This sets all the list elements inline, appearing horizontal, rather than vertical. The width on the UL is for the constraints our particular layout, and the anchors have some additional styles applied for graphics. That takes care of our first requirement:

  • The navigation is inline
  • The numbers are positioned on top of the content
  • The navigation is right-aligned

Positioning the navigation around the content isn’t too much of a challenge either. Let’s assume the navigation falls below the content inside of the markup, and appears at the bottom:

.moneyshot_tabs {
    list-style: none;
    margin: -30px 0 0 -10px;
    position: relative;
    width: 670px;
}

Setting the UL to be relative to the elements around it allows it to move more freely across browsers, eliminating rendering issues that deal with quirks mode. Applying a top negative margin positions the list on top of the content, since it appears below it in the navigation. A negative left margin pulls it into the content, as opposed to being on the right-most edge. At this point, we’ve accomplished two requirements:

  • The navigation is inline 
  • The numbers are positioned on top of the content
  • The navigation is right-aligned

The real challenge is consistently aligning the numbers right. Let’s look at a couple options:

  • Floats
  • Margin / Padding
  • Text Alignment

Floating: If we were to float the LI’s or the A tags, we would run into some issues. Based on document flow, the browser will float the elements in reverse order if they are floated right, forcing the numbers to appear in reverse order:

3, 2, 1

In reality, this can then be solved by rendering the pagination in reverse order:

    <li><a title="Click to View" href="#moneyshot_03"></a></li>
    <li><a title="Click to View" href="#moneyshot_02"></a></li>
    <li><a title="Click to View" href="#moneyshot_01"></a></li>

This wouldn’t be semantic at all, and cause some issues with accessibility and indexing. Floating these elements also causes some rendering issues with the z-indexing of the content. It looks like floats won’t cut it.

bshot_02

Margins / Padding: Since the UL is the containing element, we could apply a left margin or left padding to push the numbers to the right. This would prove to be more of a pain than it’s worth, since the numbers can vary.

Assume you have 3 numbers total. In order to push the 3rd and final number all the way to the right, we would have to apply a left margin of 500 px or more. Say a different version of the UI has only 2 numbers, at this point we have to apply more margin to push the numbers further, since the 3 is not there, leaving a gap:

bshot_03

Sure we would do some math and count the amount of number elements, and apply dynamic margins, though that’s extra development time and processing power that just doesn’t need to happen. Looks like margins and padding are ruled out.

Text-Alignment: The remaining viable option appear to be text alignment. This would make sense in terms of practicality since the text is, well, aligned to the right. Why force floats and display properties on something that should make such simple sense. Let’s try it out:

.moneyshot_tabs {
    list-style: none;
    margin: -30px 0 0 -10px;
    position: relative;
    text-align: right;
    width: 670px;
}

Text-align is pretty odd at times. It only works if you apply it to the block level parent, since it affects the text and elements found within the element you apply it against. Should you apply text-align to an inline element (such as the LI’s), nothing will occur, since there is no box-model boundary for the text-alignment to reference.

Seems to work, except for the anchor hit states. The anchors by default are inline elements. Much like the text-align issue, inline elements cannot have width and height properties properly applied to them. Since we want fat hit states and nice graphics on our navigation, there has to be a way to make them larger. Let’s assume we turn them into block-level elements. This will provide them the ability to have boundaries and display properties such as a width and height. Though once we do this, they stack, and no longer respect the text-align property set on their parent:

bshot_01

Well there’s actually a way to cure this: “inline-block.” According to quirksmode.org:

An inline block is placed inline (ie. on the same line as adjacent content), but it behaves as a block.

This helps us in more ways than we can imagine. It allows us to provide dimension properties to the anchor tags, but they will not stack, and will still respect the text-align property applied previously. Let’s modify our markup, setting this property and giving the anchors some dimension:

.moneyshot_tabs li a {
    background: url(images/bg_numbers.png) top left no-repeat;
    color: #FFF !important;
    width: 20px;
    height: 18px;
    display: inline-block;
    padding: 2px 0 0 0;
    text-align: center;
}

The width, height, and padding settings are based on the background image being used to produce the rounded corner effect. Text-align: center allows the numbers to be positioned perfectly in the center of the rounded box. Check out the final result:

bshot_051

Revising our list of requirements, it looks like we now accomplished everything from the original design…

  • The navigation is inline 
  • The numbers are positioned on top of the content 
  • The navigation is right-aligned

Before using this technique, one should be aware of a couple known circumstances, from QuirksMode.org:

In IE 6 and 7 inline-block works only on elements that have a natural display: inline. Firefox 2 and lower don’t support this value. You can use -moz-inline-box, but be aware that it’s not the same as inline-block, and it may not work as you expect in some situations.

You can see this element in action by visiting our homepage, and can read more about inline-block at the following URL:

http://www.quirksmode.org/css/display.html

Purple, Rock, WordPress

Posted on: March 11th, 2009 by Rob Zienert

Here at Purple, Rock, Scissors, we frequently get projects which are heavy in custom development–whether it be a social network, news syndication website or a complex content management system. Not everything we do is custom, though, which is important because rolling your own is not always the most cost effective solution. Frequently, developers like to live free and reinvent the wheel; commonly known as the "Not invented here" syndrome.

For our web site we had a few, simple goals: Display our work, make it look amazing and communicate we’re a company of individuals who are passionate about what we do. Initially, we looked at a few different options: custom using Zend Framework, Drupal, WordPress or my secret love affair: Django. In the end, I chose to run with WordPress MU:

WordPress MU, or multi-user, is designed to do exactly that. It is most famously used for WordPress.com where it serves tens of millions of hits on hundreds of thousands of blogs each day. – http://mu.wordpress.org

Perfect! So we have the ability to create simple pages and blogs. What about making everything editable in our design so that someone with the likes of Aaron Harvey can update the site? Well, for that we had to make WordPress do a few backflips. How? Plugins: where WordPress really gets it’s power! It’s important to us that we can fully maintain the website while keeping WordPress’ code integrity when updates are released. The plugins we use for the site are:

  • All in One SEO Pack
  • Contact Form 7
  • Socialable
  • WP-Facebook Connect
  • PageMash
  • Purple Team Profile
  • Purple Pages
  • Purple Live Search
  • Purple Mu Search

Ideally, we’d have loved to find everything we needed available from the community; but we had some special requirements.

Purple Team Profile

This plugin which powers each Team Member profile. Our profile descriptions, company positions, money shots and web services are all controlled through this plugin which hooks directly into the current User Profile system offered by WordPress. Being the Zend Framework fanboy that I am and not being pleased with current web service plugins offered by the community, I leveraged Zend_Service and Zend_Rest to power our Twitter, Flickr and Last.fm feeds which are then cached by Zend_Cache. At the end of the day, it provides a simple way for anyone to modify what and how their information is displayed.

Purple Pages

Many of our page designs do not lend themselves well to a single content editor. The plugin uses a myriad of WordPress function extensions to enhance the content publishing functionality of the CMS. Content nodes are defined by privately-published subpages with flexible page title naming conventions for placement, type and ordering. Ultimately, the goal was to provide a non-destructive, flexible and low-cost solution which it provides with flying colors.

Purple Live Search

Our handy Ajax search functionality. The WordPress community already has an armada of plugins that do this; but using Javascript libraries like scriptaculous which we have no desire in using. Going back to the whole, "Not invented here," syndrome–credit needs to go where its due. I based this plugin off of Live Search Popup. I found that about half of the PHP codebase was unnecessary (which was sliced out) and made it work with jQuery.

Purple Mu Search

Lastly, we wanted our search to hit all of our Mu installations. To my surprise, there wasn’t a WordPress MU 2.7 plugin that fulfilled this functionality so I worked off of the concepts done in GT Search All Blogs. I wasn’t a particular fan of locking the plugin into just this use case, so I refactored it up to PHP5 and created overloadable decorators to output results in any fashion deemed necessary. The same functionality powers both the Purple Live Search as well as standard search.

Done!

The end result is as you see it now and the total PHP development time was just over one week. Open source projects win again and the day was saved (for cheap). We plan on releasing our plugins down the road when we’ve used it in some of our client projects and make them more flexible for other use cases.

Why some websites just don’t cut it…

Posted on: March 10th, 2009 by Chris

Just like the first page of a diary sitting blank before you…a first blog post is equally intimidating. All that white space on your screen…ideas racing through your head like, What should I write about?, "Will anyone read this?", "Is Donald Trump’s hair real?", "What is the official definition of a muppet?", "Did Al Gore really invent the internet?", "Should I grab that last cookie sitting on the counter and procrastinate writing?", "Will my mind actually stop wandering?". Then suddenly, the realization comes…it doesn’t matter. The internet is a global market for consumers, hungry for anything and everything. I could technically write about the finer points of using solar power to bake cookies on a deserted island and someone would probably read it. I think that is what fascinates me the most about the internet…if you can think of it, you will most likely find half-a-million websites devoted to it.

Lets take the word ‘cookie’ to start with. This may seem unrelated, but its my stream of consciousness tonight. I like cookies and it is the first thing that popped in my head. If I google for ‘cookie’, I can expect to find results similar to the following:

  • Cookie Recipies
  • The Amazing cookie diet
  • Sesame Street, The Cookie Monster
  • Cookie Monster singing "Wierd Al Yankovich"-inspired Limp Bizkit covers
  • The Cookie Monster, Family Guy
  • Girl Scouts Kick off Cookie Season

The list goes on and on. From dancing hamsters and sneezing pandas to Chocolate Rain and Rick Roll, the internet brings us humor, drama, fact and (Rick Roll included) annoyance. However, with all this "social clutter" making Google ranking a competitive market, how exactly does a company keep their internet presence from falling into the Google Abyss (a.k.a page 3 of search results for your top keywords)?

SEO aside, try starting with a fresh look. A tired looking website certainly doesn’t cut it anymore. People are not just interested in knowing where you are and what you do. That is what a business card ‘was’ for (see vcard for your first upgrade into the digital age). Why settle for that bland website you look at in disgust every morning…wondering when you’ll do something about it. Isn’t it time? (cues audience to nod their head in agreement) You’re website can be so much more. Tell them (your target audience) what they want to know in a fun and interesting medium. While that "circa 1997" site of the past worked, people want to get to know the businesses they work with on a personal level. They really want to know WHO you are. Lets take a look at the internet timeline, according to Chris (thats me).

The Brief (Brief brief brief) History of the Internet:

  • Arpanet (Military guy 1 says Hello World in Virginia, Military guy 2 receives transmission as Hlelo Wlrdo in California) – Success! (It was close enough!)
  • Speculation period of Al Gore being the brainchild of the internet (Similar to being stuck in the Google Abyss…just 10 years earlier)
  • Dial-up (Ah the wonders of the half hour page load)
  • The Personal Home Page now in HTML 1.0 (Now is not the time to admit you STILL use the HTML blink and marquee tags on your site)
  • Email (What? We don’t need e-stamps for our e-mail?)
  • Chat rooms (Scary people saying scary things)
  • Dancing Hampster (Think of it as the "Internet killing the Video star")
  • eBay (The world’s most famous yardsale)
  • (several years of insignificance, excluding the invention of Broadband internet)
  • MySpace (Bored now)
  • YouTube (Now everyone CAN have their 15 minutes of fame)
  • Facebook, Twitter, Social Network Explosion (This is who I am and what I do…take it or leave it)

As you can see, this wasn’t exactly "The Cosmos" with Carl Sagan, but I think you get the idea.

Hmm, you may be asking, "So what’s his point?". Well…I guess I’ll cut to the chase. If social media is in and babies are practically being born with iPhones in their hand (not a scientific fact, but I hear Apple / AT&T are working on it)…throw a little caution to the wind and experiment. If you can’t beat the social media revolution…join it! Have us add a blog on your site, Flickr integration so you can post pictures of your last vacation, inform your clients of what your doing with an integrated twitter feed. Let them explore, consume, share and enjoy your content…instead of just being bored by it.

And worst case, even if people remember you for something like the Ninja Cat, the fact that they remember you at all is what makes the difference. Social media sells…give it a whirl today.