Tuesday, October 22, 2013

Back on track!

It's been a while since I've posted here and there's been a lot that's happened in the past year. Aside from the ups and downs I've come back to preparing for my first course in Animation Mentor in January. I can't express enough how elated I was to feel as if I had found "that place."

You know the group of people that I'm talking about. The point that you see their faces light up and who have as much passion and drive for the art of animation as you do! It doesn't have to be animation of course, but anything that excites you and gives you that rush of adrenaline while you extrapolate on the tiniest details that seem (to you) that they should have a Nobel prize! This is how I felt when I first took the online campus tour at Animation Mentor.

The staff (Jay and Jules) who hosted the tour were so relaxed and almost shared an animated presence. The enthusiasm you could tell was genuine and that; like myself, they loved the art of animation. It was truly unlike my previous schooling in animation.

Here I'll be posting more updates as school progresses and my experiences as well as links to my demo reel once school starts in January. Until then!

Wednesday, August 1, 2012

HTML5+jQuery+CSS3 Highlight Selected Nav Item

After looking around the net I found that there were a number of ways to highlight the current item on a navigation menu. However, most of them seemed to be very rigid and written for a certain HTML structure. After finding this, I decided to write a simple jQuery script that allows the UX (User eXperience) to display as expected while using HTML5 coding practices. Here is the code for the script...

Script

/******************************************************
 * Listen for click event and set nav item to selected
 ******************************************************/
 var $navSets = $('nav'),
 //var $navSets = $('#navContainer'),
 $navLinks = $navSets.find('a');

 $navLinks.live('click', function(){
  var $this = $(this);
    
  if($this.hasClass('selected')) {
   return false;
  }

  var $navSet = $this.parents('nav');

  $navSet.find("a.selected").removeClass('selected');
  $this.addClass('selected');
 }); // End navLinks.live / click

The setup is pretty straight forward.

HTML Code

<nav>
    <ul>
        <li><a href='javascript:void(0);'>HOME</a></li>
        <li><a href='javascript:void(0);'>PORTFOLIO</a></li>
        <li><a href='javascript:void(0);'>ABOUT</a></li>
    </ul>
</nav>

The beauty of this is that you can add as many items that you want in the navigation and not have to worry about the page that's being called via AJAX to avoid a page refresh. Also, the nice thing about loading content with AJAX is that you only load the content you want to. While this isn't really SEO friendly, it does make for a great experience for the user.

Monday, April 30, 2012

Zbrush 4R3 Notes and Update

Hey folks! I've got away from posting for a while, but I wanted to share some of the exciting things that I've come upon in the past few weeks.

Let's start with the latest version of Zbrush (now at 4R3 at the time of the blog post.) If you had purchased this then you may (or may not) have received an upgrade notice. If you did not then simply contact the support team at Pixologic and they'll get you all squared away. Now on to some of the things that I've found in the upgrade!

First off, the introduction of the Dynamesh is just incredible to say the least! It's much like working with a ball of clay without the concerns of topology for your characters. You can simply rebuild the mesh if it becomes stretched saving a LOT of time.

Of couse the other addition to this release was the Fibers. Once I saw the video tutorial for it I was blown away with how fast hair or fringes could be added to a sub-tool or to a character mesh. Not only can you add the Fibers now, but they have a few built in tools for styling the hair as well. It's quite impressive and I've included a quick example of what can be done with it.


FEATURED ITEM: Spotlight
------------------------------------------------------------------
Key notes for Spotlight:

Images must be imported before you can activate Spotlight. Once this is done, then you can use the following commands to access spotlight.

SHIFT-Z: Turn spotlight off and on
(While in Spotlight) Z: To turn off and on the Spotlight Dial.
------------------------------------------------------------------

As I get further along with the Spotlight tool I will post more information and a video detailing the process of movie assets. This will also cover using Noise Maker, Zspheres and UV Master. So stay tuned for some interesting examples!

Tuesday, February 28, 2012

Accessing GPSLocation data from images

There are a few things that people are unaware of and one of those happens to be the fact that images from cell phones contain GPS location data. What!?! You exclaim. Well, there are many social sites that do strip this information. Although we won't be covering that here, I will cover how to access this data using jQuery and the jQuery plugin Exif.

w00t! Let's get started on this...

Files you will need:

jQuery: https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
Exif Plugin: http://www.nihilogic.dk/labs/exifjquery/jquery.exif.js

I've also included code from Robert K. Davis showing how to convert DMS (Degrees, Minutes Seconds) to decimal for passing to Google Maps.

I'm not a javascript guru and if you see anything that would make this function better then please feel free to comment on this post.

**NOTE: exifPretty() is used to gather a complete list of exif data contained within the image(s).


DMS to DECIMAL: http://www.codingforums.com/archive/index.php/t-9709.html

$(".img").click(function() {
                
                    var longitude = $(this).exif("GPSLongitude");
                    var latitude = $(this).exif("GPSLatitude");
                    
                    var latRef = $(this).exif("GPSLatitudeRef");
                    var lngRef = $(this).exif("GPSLongitudeRef");
    
                    // Let's make the object to a string to split on the ,'s
                    var a1 = new Array();
                    var a2 = new Array();
                    
                    a1=longitude.toString().split(',');
                    a2=latitude.toString().split(',');
                    
                    if(lngRef == "W") {
                        a1[0] = Number(a1[0]);
                        a1[0] = -a1[0];
                    }
                    
                    if(latRef == "S") {
                        a2[0] = Number(a2[0]);
                        a2[0] = -a2[0];
                    }
                    
                    // Alert all of out exif data
                    // alert($(this).exifPretty());
                    
                    /* Populate the fields with the correct data */
                    
                    // Latitude
                    $("input[name=LatDegrees]").val(a2[0]);
                    $("input[name=LatMinutes]").val(a2[1]);
                    $("input[name=LatSeconds]").val(a2[2]);
                    // Longitude
                    $("input[name=LonDegrees]").val(a1[0]);
                    $("input[name=LonMinutes]").val(a1[1]);
                    $("input[name=LonSeconds]").val(a1[2]);
                    
                    //$("this.form").submit(toDecimal(this.form));
                    
                }); 
            });




            /******************************************
            DMS to Decimal Latitude/Longitude Converter
            © 2002 Robert K. Davis [DMS to DEC /START]
            *******************************************/
            function convert(D,M,S){
                 var DD;
                 D < 0 ? DD = roundOff(D + (M/-60) + (S/-3600),6) : DD = roundOff(D + (M/60) + (S/3600),6);
                 return DD;
            }
            function roundOff(num,decimalplaces){
                 var decimalfactor = Math.pow(10,decimalplaces);
                 var roundedValue = Math.round(num*decimalfactor)/decimalfactor;
                 return roundedValue;
            }
            function toDecimal(f){
                 var LatDegrees = parseInt(f.LatDegrees.value);
                 var LatMinutes = parseInt(f.LatMinutes.value);
                 var LatSeconds = parseInt(f.LatSeconds.value);
                 var LonDegrees = parseInt(f.LonDegrees.value);
                 var LonMinutes = parseInt(f.LonMinutes.value);
                 var LonSeconds = parseInt(f.LonSeconds.value);
            
                 var LatDecimalDegrees = convert(LatDegrees,LatMinutes,LatSeconds);
                 var LonDecimalDegrees = convert(LonDegrees,LonMinutes,LonSeconds);
            
                 !isNaN(LatDecimalDegrees) && !(LatDecimalDegrees > 90) && !(LatDecimalDegrees < -90) ? f.LatDecimalDegrees.value = LatDecimalDegrees : f.LatDecimalDegrees.value = "";
                 !isNaN(LonDecimalDegrees) && !(LonDecimalDegrees > 180) && !(LonDecimalDegrees < -180)  ? f.LonDecimalDegrees.value = LonDecimalDegrees : f.LonDecimalDegrees.value = "";
                 
                 sendToGoogle(LatDecimalDegrees, LonDecimalDegrees);
            }
            
            /******************************************
            DMS to Decimal Latitude/Longitude Converter
            © 2002 Robert K. Davis [DMS to DEC /END]
            *******************************************/

Tuesday, October 11, 2011

Browser-Specific CSS Hacks


Browser-Specific CSS Hacks
Originally posted at: http://paulirish.com/2009/browser-specific-css-hacks/

/***** Selector Hacks ******/

/* IE6 and below */
* html #uno  { color: red }

/* IE7 */
*:first-child+html #dos { color: red } 

/* IE7, FF, Saf, Opera  */
html>body #tres { color: red }

/* IE8, FF, Saf, Opera (Everything but IE 6,7) */
html>/**/body #cuatro { color: red }

/* Opera 9.27 and below, safari 2 */
html:first-child #cinco { color: red }

/* Safari 2-3 */
html[xmlns*=""] body:last-child #seis { color: red }

/* safari 3+, chrome 1+, opera9+, ff 3.5+ */
body:nth-of-type(1) #siete { color: red }

/* safari 3+, chrome 1+, opera9+, ff 3.5+ */
body:first-of-type #ocho {  color: red }

/* saf3+, chrome1+ */
@media screen and (-webkit-min-device-pixel-ratio:0) {
 #diez  { color: red  }
}

/* iPhone / mobile webkit */
@media screen and (max-device-width: 480px) {
 #veintiseis { color: red  }
}


/* Safari 2 - 3.1 */
html[xmlns*=""]:root #trece  { color: red  }

/* Safari 2 - 3.1, Opera 9.25 */
*|html[xmlns*=""] #catorce { color: red  }

/* Everything but IE6-8 */
:root *> #quince { color: red  }

/* IE7 */
*+html #dieciocho {  color: red }

/* Firefox only. 1+ */
#veinticuatro,  x:-moz-any-link  { color: red }

/* Firefox 3.0+ */
#veinticinco,  x:-moz-any-link, x:default  { color: red  }

/* FF 3.5+ */
body:not(:-moz-handler-blocked) #cuarenta { color: red; }


/***** Attribute Hacks ******/

/* IE6 */
#once { _color: blue }

/* IE6, IE7 */
#doce { *color: blue; /* or #color: blue */ }

/* Everything but IE6 */
#diecisiete { color/**/: blue }

/* IE6, IE7, IE8 */
#diecinueve { color: blue\9; }

/* IE7, IE8 */
#veinte { color/*\**/: blue\9; }

/* IE6, IE7 -- acts as an !important */
#veintesiete { color: blue !ie; } /* string after ! can be anything */

/* IE8, IE9 */
#anotherone  {color: blue\0/;} /* must go at the END of all rules */

Monday, June 27, 2011

Creative endevors! w00t!

Again, it's been quite a while since I've written in my blog and a lot has happened. I've turned things around once again to be the most positive experiences and a lot of great things have come from it too! I was hired into one of the most amazing career changes that I could have ever asked for as a front-end Web Developer II at a well known national company. I can't say enough about the position and the people there. Right now I'm heading into the third week of work with no outside distractions. I thank God for guiding me to what I needed at this point in my life, for removing the distractions and for helping me to focus on what's really important. Being at my best for my family, those around me and for myself.

As for today, it was an amazing day. I was able to get some things done and my personal site is getting updated in the evenings again. Some of the new things that I've been focusing on with my site have been more Ajax, PHPx and Javascript while I'm still itching to get back into Maya and zBrush. I have some new character concepts that I can't wait to get to the computer. ;)

My goals and aspirations haven't changed and are still in focus. I renewed my lease at the end of last month for another year and I'm focused on living well within my means. A few of the things on my list are to spend more time with my family in New Hampshire and in California and to take two, one week vacations each year during the holidays. That would be the absolute best! A week with Kayla in Cali during Halloween and another during Christmas in N.H. to hit the ski slopes and snow machines!! Awwww yeah!! That would be so fun and I can't wait to get her out in the snow! ;) Lobster, steaks, crab, oysters... *sigh* Missing home already, LOL!

It's time to get back at to coding. I hope that you all have an amazing week and love ya all!

Tuesday, April 6, 2010

Cleaning up and getting ready for learning...

Well, the past few weeks have been pretty interesting and now things are finally getting settled. My words of advice are to not try to put too many things all in a short time period and still expect to get them all done. *smile* Although I always seem to work best on deadlines, it's not cool to place those with my personal life.

At least now the car is getting fixed and will be done tomorrow and I will be starting some new training with Jesse Sandifer from Green Grass Studios.  We had the chance to meet Jesse at the last ZBrush UG meeting and he was really a wonderful person to speak with. Very down to earth and he appeared to be an artists artist. So needless to say I have started working on some of my ZBrush work and trying to get more experience in the application. Given some time, I will be posting some images of my progress and new creations as I move forward.

In other events on the home front, I found out that one can fix a washing machine with some twine, wax and patience LOL. Yes, it seems that I'm a regular MacGyver with some of these things when it comes to being able to save $50 + parts. Seriously though, the twine cost nothing and neither did the wax. Soooo, the end result was that laundry got done and I spent nothing to repair the washing machine. Seems like a win, win situation don't you think? Now for the kicker... as I used the last of the laundry detergent on the second load I realized that the OTHER bottles were in the car (Ack!) Now I have to wait until tomorrow to finish anyway. LOL, how's that for a kick in the pants?

Enough modeling and rambling for tonight. One more smoke and a puppy run before I'm off to bed. I hope that you all have a great time and look for some updates coming when time permits.