tag:blogger.com,1999:blog-28207743628410865062008-07-16T17:49:14.408-06:00Graydon StonerGraydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comBlogger24125tag:blogger.com,1999:blog-2820774362841086506.post-88779786087131671582008-07-01T15:04:00.006-06:002008-07-01T15:26:14.104-06:00MySQL and I are in a fight over MAX() and SUM()I have a sort of love/hate relationship with MySQL. Although I probably shouldn't drag MySQL into this. SQL and I have a love/hate relationship. I love creating database driven sites since it allows for so many possibilities.<br /><br />But I'm no genius database guru, so when I have a complex query to try to put together our relationship usually is on the outs.<br /><br />I had been working on a solution to get a list of weekly stats for stats that get run daily. I managed to get a query working that allows me to find the weekly stats for a specific person for every week and sort them however I need.<br /><br /><blockquote>SELECT SUM(Stats) as AllStats, Name, week(logdate) AS week_num, MIN(logdate) AS week_start, MAX(logdate) AS week_end FROM stat_table WHERE person_id = 'XXXX' GROUP BY week(logdate) ORDER BY AllStats DESC;</blockquote><br /><br />However, I wanted to expand that to allow the query to pull the top people in a group and find out what week was their best week. This is where it started to break down. I thought I could switch things around a bit and use the following query...<br /><br /><blockquote>SELECT MAX(SUM(Stats)) as MaxStats, Name, person_id, week(logdate) AS week_num, MIN(logdate) AS week_start, MAX(logdate) AS week_end FROM stat_table WHERE group_id = 'XXX' GROUP BY week(logdate), person_id ORDER BY week_num DESC;</blockquote><br /><br />That was a no go. And the weird thing was if I took out the MAX() function at the beginning (and only select SUM(Stats)) I could run all stats for that group.<br /><br />But, thanks to some really helpful people at SitePoint's MySQL forum (<a href="http://www.r937.com">r937</a> in particular) I got a new, uber-complex subquerying query that seems to work great. I've posted it below for anyone else that is looking for a way to find the MAX() of a SUM() or wants to find weekly data when they have multiple records per week.<br /><br /><blockquote>SELECT week_totals.person_id, <br /> week_totals.Name,<br /> week_totals.week_num,<br /> week_totals.week_start,<br /> week_totals.week_end,<br /> week_totals.AllStats<br /> FROM (<br /> SELECT person_id<br /> , Name,<br /> , WEEK(logdate) AS week_num,<br /> , MIN(logdate) AS week_start,<br /> , MAX(logdate) AS week_end,<br /> , SUM(Stats) AS AllStats<br /> FROM stat_table <br /> WHERE group_id = 'XXX' <br /> GROUP <br /> BY person_id<br /> , WEEK(logdate)<br /> ) AS week_totals<br />INNER<br /> JOIN (<br /> SELECT week_num<br /> , MAX(AllStats) AS max_stats<br /> FROM (<br /> SELECT person_id<br /> , WEEK(logdate) AS week_num<br /> , SUM(Stats) as AllStats<br /> FROM stat_table <br /> WHERE group_id = 'XXX' <br /> GROUP <br /> BY person_id<br /> , WEEK(logdate)<br /> ) AS week_totals_1<br /> GROUP<br /> BY week_num<br /> ) AS week_max GROUP BY person_id;</blockquote><br /><br />MySQL and I may just be on speaking terms again.<br /><br />Special thanks to Blogger for maintaining such wonderful formatting in the queries posted above.Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-7273732665005795052008-06-17T00:43:00.004-06:002008-06-17T00:50:34.677-06:00SproutCore - A MVC Framework for JavascriptI've really been enjoying CakePHP more and more, and have just starting delving into the AJAX helper more and implementing that into some new sites. However, there is only so much functionality built into CakePHP, and you'd probably have to integrate one of the other AJAX frameworks out there (like jQuery, etc) to get something more 'Desktop-like'.<br /><br />But after monitoring Apple's just finished WWDC and hearing about SproutCore, I dropped by the site to see what it's all about. It looks like Charles Jolley has put together a really nice framework that Apple has added to and leveraged for their new Mobile Me service.<br /><br />From reading the site, though, it seems as though Ruby on Rails is required to get the framework installed. I'm hoping someone will put together a nice and easy way to integrate SproutCore with PHP (and hopefully with CakePHP) so you could leverage both frameworks together.<br /><br />If anyone does, drop me a line.Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-75821373817901939282008-06-10T20:58:00.004-06:002008-06-10T21:12:45.443-06:00Sometimes I'm a Design NerdBeing a pretty big computer nerd (or geek) sometimes spills over into other areas. One in particular is design. I really enjoy browsing great design, reading about fonts, and seeing what other people use as inspiration.<br /><br />While my own designs are not always necessary that inspiring, I love trying new things and seeing what inspires others.<br /><br />I just came across this post about PF Centro Pro winning the 2008 European Design Award's Font of the Year Award. I'm amazed that they have developed serif, san serif, and slab fonts for this entire family. It's a really nicely designed font. Good legibility. Great design.<br /><br />The blog post below, however, is bound to stir up some controversy. Maybe PF Centro Pro shouldn't have been picked number one.<br /><br /><a href="http://addirection.blogspot.com/2008/06/font-of-year.html">Font of the Year - PF Centro Pro</a>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-62517289546564093302008-04-21T23:42:00.003-06:002008-04-21T23:46:21.401-06:00CakePHP - Zip Code Distance CalculatorGot a new project where we need to calculate the distance between zip codes (find a retail location). I used an open-source script in a project a few years ago, but didn't want to try to dig that up and create a CakePHP wrapper for it (I'm lazy apparently).<br /><br />After a bit of searching on Google I came across this CakePHP class put together on webdevkungfu. Hopefully it works out.<br /><br /><a href="http://www.webdevkungfu.com/cakephp-zip-code-helper/">http://www.webdevkungfu.com/cakephp-zip-code-helper/</a>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-80139145147022201942008-03-31T11:35:00.002-06:002008-03-31T11:38:48.885-06:00Apple iCal Backup ApplescriptI was browsing through <a href="http://www.tuaw.com">TUAW</a> the other day and came across this nice little applescript for backing up an iCal calendar. Little scripts like this sure seem to come in handy if you're ever having to wipe your system clean (in fact I'd like to make one for Mail since it seems to be such a pain to back up that info and get it all to save).<br /><br />I haven't had a chance to really delve into it, but it seems like you should be able to do this without all the keystrokes and clicks, but I could wrong. Also, be sure to read their disclaimer. The script is a little limited in exactly what it can do.<br /><br /><a href="http://www.tuaw.com/2008/03/30/applescript-backup-ical-calendars/">TUAW Applescript: backup iCal calendars</a>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-55846422712598821452008-03-17T10:14:00.003-06:002008-03-17T10:17:58.207-06:00WHITEvoid - 3D Perspective in FlashI woke up today not even thinking that my mind would be blown today.<br /><br />But I came across interactive agency WHITEvoid's portfolio application and I'm still nerding out about it.<br /><br />Very simple. Very clean. Very impressive.<br /><br />Take a look at <a href="http://www.whitevoid.com/application.html">WHITEvoid's portfolio application.</a>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-66973335204901821702008-02-26T12:56:00.002-07:002008-02-26T13:16:06.585-07:00CakePHP Authorize.net ComponentMy last post I threw a lot of love at CakePHP. After a few more weeks though....I still love it. It has made development so much easier, quicker, and better organized. I've been able to reuse code more easily, and have been trying to stick to the whole DRY concept (Don't Repeat Yourself). CakePHP is making it easier and easier.<div><br /></div><div>Anyway, we're just wrapping up a new ecommerce site that needed to interface with the Authorize.net gateway to process credit cards. We've done this on a bunch of other sites, but it's also been somewhat difficult to work with and hasn't been easy to debug either. For this project I created a new CakePHP component to interface with Authorize.net's AIM integration system.</div><div><br /></div><div>Figured if any other CakePHP developers out there want a (hopefully) easier way to process cards through Authorize.net you can feel free to use this component.</div><div><br /></div><div><div><br /><pre><br /><?php<br />class AuthorizeNetComponent extends Object {<br /><br /> ### Created By Graydon Stoner - www.getstonered.com ###<br /> ### <br /><br /><br /> //////////// Controller Usage \\\\\\\\\\\\\<br /> /*<br /> $components = array('AuthorizeNet');<br /> <br /> $billinginfo = array("fname" => "First",<br /> "lname" => "Last",<br /> "address" => "123 Fake St. Suite 0",<br /> "city" => "City",<br /> "state" => "ST",<br /> "zip" => "90210",<br /> "country" => "USA");<br /> <br /> $shippinginfo = array("fname" => "First",<br /> "lname" => "Last",<br /> "address" => "123 Fake St. Suite 0",<br /> "city" => "City",<br /> "state" => "ST",<br /> "zip" => "90210",<br /> "country" => "USA");<br /> <br /> $response = $this->AuthorizeNet->chargeCard('########', '##############', '4111111111111111', '01', '2010', '123', true, 110, 5, 5, "Purchase of Goods", $billinginfo, "email@email.com", "555-555-5555", $shippinginfo);<br /> $response:Array = $this->AuthorizeNet->chargeCard($loginid:String, $trankey:String, $ccnum:String, $ccexpmonth:String, $ccexpyear:String, $ccver:String, $live:Boolean, $amount:Number, $tax:Number, $shipping:Number, $desc:String, $billinginfo:Array, $email:String, $phone:String, $shippinginfo:Array);<br /> <br /> ////////// USAGE NOTES \\\\\\\\\\\\<br /> <br /> PARAMETERS<br /> $loginid : Your Authorize.net Login ID<br /> $trankey : Your Authorize.net Transaction Key<br /> $ccnum : The system removes any spaces in the string to meet Authorize.net requirements<br /> $ccexpmonth : 2 digit month string<br /> $ccexpyear : 2 or 4 digit year string<br /> $ccver : The 3 or 4 digit card verificaton code found on the back of Visa/Mastercard and the front of AmEx<br /> $live : Whether to process as a live or test transaction - true : Live Transcation - false : Test Transaction<br /> $amount : Total amount of the transaction. This must include both tax and shipping if applicable.<br /> $tax : Tax amount charged (if any)<br /> $shipping : Shipping cost (if any)<br /> $desc : Description of the transaction to be logged into Authorize.net system<br /> $billinginfo : Associative Array containing values for customer billing details<br /> $email : Customer email<br /> $phone : Customer phone<br /> $billinginfo : Associative Array containing values for customer shipping details<br /> <br /> RESPONSE<br /> $response : Array (1 based) containing the Payment Gateway Resonse fields<br /> <br /> // Important Response Values<br /> $response[1] = Response Code (1 = Approved, 2 = Declined, 3 = Error, 4 = Held for Review)<br /> $response[2] = Response Subcode (Code used for Internal Transaction Details)<br /> $response[3] = Response Reason Code (Code detailing response code)<br /> $response[4] = Response Reason Text (Text detailing response code and response reason code)<br /> $response[5] = Authorization Code (Authorization or approval code - 6 characters)<br /> $response[6] = AVS Response (Address Verification Service response code - A, B, E, G, N, P, R, S, U, W, X, Y, Z)<br /> (A, P, W, X, Y, Z are default AVS confirmation settings - Use your Authorize.net Merchant Interface to change these settings)<br /> (B, E, G, N, R, S, U are default AVS rejection settings - Use your Authorize.net Merchant Interface to change these settings)<br /> $response[7] = Transaction ID (Gateway assigned id number for the transaction)<br /> $response[38] = MD5 Hash (Gateway generated MD5 has used to authenticate transaction response)<br /> $response[39] = Card Code Response (CCV Card Code Verification response code - M = Match, N = No Match, P = No Processed, S = Should have been present, U = Issuer unable to process request)<br /> <br /> For more information about the Authorize.net AIM response consult their<br /> AIM Implementation Guide at http://developer.authorize.net/guides/AIM/ and<br /> go to Section Four : Fields in the Payment Gateway Response for more details.<br /> <br /> NOTES<br /> This component is meant to abstract payment processing on a website.<br /> As varying sites require different requirements for information, security,<br /> or card processing (like changing Address Verification requirement) the<br /> component does not try to provide any logic to determine if a transaction<br /> was successful. It is up to the user implementing this code to process the<br /> response array and provide response accordingly.<br /> <br /> */<br /><br /> // class variables go here<br /><br /> function startup(&amp;$controller) {<br /> // This method takes a reference to the controller which is loading it.<br /> // Perform controller initialization here.<br /> }<br /> <br /> function chargeCard($loginid, $trankey, $ccnum, $ccexpmonth, $ccexpyear, $ccver, $live, $amount, $tax, $shipping, $desc, $billinginfo, $email, $phone, $shippinginfo) {<br /> <br /> // setup variables<br /> $ccexp = $ccexpmonth . '/' . $ccexpyear;<br /> <br /> $DEBUGGING = 1; # Display additional information to track down problems<br /> $TESTING = 1; # Set the testing flag so that transactions are not live<br /> $ERROR_RETRIES = 2; # Number of transactions to post if soft errors occur<br /> <br /> $auth_net_login_id = $loginid;<br /> $auth_net_tran_key = $trankey;<br /> ### $auth_net_url = "https://certification.authorize.net/gateway/transact.dll";<br /> # Uncomment the line ABOVE for test accounts or BELOW for live merchant accounts<br /> $auth_net_url = "https://secure.authorize.net/gateway/transact.dll";<br /> <br /> $authnet_values = array<br /> (<br /> "x_login" => $auth_net_login_id,<br /> "x_version" => "3.1",<br /> "x_delim_char" => "|",<br /> "x_delim_data" => "TRUE",<br /> "x_url" => "FALSE",<br /> "x_type" => "AUTH_CAPTURE",<br /> "x_method" => "CC",<br /> "x_tran_key" => $auth_net_tran_key,<br /> "x_relay_response" => "FALSE",<br /> "x_card_num" => str_replace(" ", "", $ccnum),<br /> "x_card_code" => $ccver,<br /> "x_exp_date" => $ccexp,<br /> "x_description" => $desc,<br /> "x_amount" => $amount,<br /> "x_tax" => $tax,<br /> "x_freight" => $shipping,<br /> "x_first_name" => $billinginfo["fname"],<br /> "x_last_name" => $billinginfo["lname"],<br /> "x_address" => $billinginfo["address"],<br /> "x_city" => $billinginfo["city"],<br /> "x_state" => $billinginfo["state"],<br /> "x_zip" => $billinginfo["zip"],<br /> "x_country" => $billinginfo["country"],<br /> "x_email" => $email,<br /> "x_phone" => $phone,<br /> "x_ship_to_first_name" => $shippinginfo["fname"],<br /> "x_ship_to_last_name" => $shippinginfo["lname"],<br /> "x_ship_to_address" => $shippinginfo["address"],<br /> "x_ship_to_city" => $shippinginfo["city"],<br /> "x_ship_to_state" => $shippinginfo["state"],<br /> "x_ship_to_zip" => $shippinginfo["zip"],<br /> "x_ship_to_country" => $shippinginfo["country"],<br /> );<br /> <br /> $fields = "";<br /> foreach ( $authnet_values as $key => $value ) $fields .= "$key=" . urlencode( $value ) . "&amp;";<br /> <br /> ///////////////////////////////////////////////////////////<br /> <br /> // Post the transaction (see the code for specific information)<br /> <br /> ### $ch = curl_init("https://certification.authorize.net/gateway/transact.dll");<br /> ### Uncomment the line ABOVE for test accounts or BELOW for live merchant accounts<br /> $ch = curl_init("https://secure.authorize.net/gateway/transact.dll"); <br /> ### curl_setopt($ch, CURLOPT_URL, "https://secure.authorize.net/gateway/transact.dll");<br /> curl_setopt($ch, CURLOPT_HEADER, 0); // set to 0 to eliminate header info from response<br /> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Returns response data instead of TRUE(1)<br /> curl_setopt($ch, CURLOPT_POSTFIELDS, rtrim( $fields, "&amp; " )); // use HTTP POST to send form data<br /> <br /> ### Go Daddy Specific CURL Options<br /> curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);<br /> curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);<br /> curl_setopt($ch, CURLOPT_PROXY, 'http://proxy.shr.secureserver.net:3128');<br /> curl_setopt($ch, CURLOPT_TIMEOUT, 120);<br /> ### End Go Daddy Specific CURL Options<br /> <br /> curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // uncomment this line if you get no gateway response. ###<br /> $resp = curl_exec($ch); //execute post and get results<br /> curl_close ($ch);<br /> <br /> // Parse through response string<br /> <br /> $text = $resp;<br /> $h = substr_count($text, "|");<br /> $h++;<br /> $responsearray = array();<br /><br /> for($j=1; $j <= $h; $j++) { <br /> $p = strpos($text, "|");<br /> if ($p === false) { // note: three equal signs<br /> // x_delim_char is obviously not found in the last go-around<br /> // This is final response string<br /> $responsearray[$j] = $text;<br /> }<br /> else {<br /> $p++;<br /> // get one portion of the response at a time<br /> $pstr = substr($text, 0, $p);<br /> // this prepares the text and returns one value of the submitted<br /> // and processed name/value pairs at a time<br /> // for AIM-specific interpretations of the responses<br /> // please consult the AIM Guide and look up<br /> // the section called Gateway Response API<br /> $pstr_trimmed = substr($pstr, 0, -1); // removes "|" at the end<br /> if($pstr_trimmed==""){<br /> $pstr_trimmed="";<br /> }<br /> $responsearray[$j] = $pstr_trimmed;<br /> // remove the part that we identified and work with the rest of the string<br /> $text = substr($text, $p);<br /> } // end if $p === false<br /> } // end parsing for loop<br /> return $responsearray;<br /> } // end chargeCard function<br /> } ?><br /></pre><br /></div></div><div>Drop me a line in the comments with any projects you're using this component in.</div>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-43005788702807184072008-02-05T16:38:00.000-07:002008-02-07T11:04:47.428-07:00I Love CakePHPI'd heard a lot about CakePHP and how much it can help speed up development. But for some reason I kept resisting trying it out. Call me old school, but I still would rather code with a normal text editor than the majority of software out there.<div><br /><div> </div><div>Not being really well versed with the whole Model/View/Controller concept, I took a bit of time trying to get the hang of how everything is put together.</div><div><br /></div><div> </div><div>But once I got that under my belt, programming has been a breeze. Two days to create a good content management system is a new record for me. In fact, the entire APX Insider was developed using CakePHP.</div><div><br /></div><div> </div><div>Soon I'll post some components I made for uploading and resizing images since I didn't really feel like anything I could find out there was all that simple to implement.</div></div>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-90957595296160258582008-01-31T20:24:00.000-07:002008-02-01T12:25:41.228-07:00New APX Alarm Site - I Am APX and APX InsiderWe're proud to announce the launch of two new websites for security sales company <a href="http://www.apxalarm.com">APX Alarm</a>.<div><br /></div><div><a href="http://www.iamapx.com">I Am APX</a> is a full flash website targeted at recruiting new salesmen (and saleswomen) to work for APX. The site features interactive streaming flash video in multiple areas, and was designed to appear to APX's target demographic, 18-25 year old men and women. The site also includes interviews with APX employees who explain what working for APX is like and what new recruits can expect while they are out pounding the pavement.</div><div><br /></div><div><a href="https://www.apxinsider.com">APX Insider</a> is a news portal specifically for APX employees, in particular their sales force. The site was modeled around news portals such as ESPN.com and features an interface where editors and contributors can add news articles with images, and the system also pulls sales stats to show top salesman, regions, and offices, helping foster synergistic competition between employees. Unfortunately, it's password protected, so unless you work for APX, you're out of luck.</div>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-5369134497507789332008-01-27T20:43:00.000-07:002008-01-27T21:09:56.681-07:00President Gordon B Hinckley Dies at Age 97<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_JA7BVmUda7c/R51VQPyGIqI/AAAAAAAAAB0/_3l-Ly6lRpM/s1600-h/President+Gordon+B.+Hinckley.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_JA7BVmUda7c/R51VQPyGIqI/AAAAAAAAAB0/_3l-Ly6lRpM/s320/President+Gordon+B.+Hinckley.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5160374485639373474" /></a><br /><div> </div><div> </div>I was watching TV and heard a special report that shocked and numbed me.<div><br /><div> </div><div>President Gordon B. Hinckley, President and Prophet of the Church of Jesus Christ of Latter-day Saints (Mormon) died a little more than an hour ago.</div><div><br /></div><div> </div><div>Few people, with the exception of maybe my parents, have had such a profound impact on my life and who I am as this great man. I've grown up listening to his counsel and discourses and look at him like my own father or grandpa.</div><div><br /></div><div> </div><div>If you'd like to read some of his addresses check out the following links.</div><div><br /></div><div> </div><div><a href="http://www.lds.org/ldsorg/v/index.jsp?vgnextoid=f318118dd536c010VgnVCM1000004d82620aRCRD&amp;locale=0&amp;sourceId=707b6169b62fe010VgnVCM100000176f620a____&amp;hideNav=1">http://www.lds.org/ldsorg/v/index.jsp?vgnextoid=f318118dd536c010VgnVCM1000004d82620aRCRD&amp;locale=0&amp;sourceId=707b6169b62fe010VgnVCM100000176f620a____&amp;hideNav=1</a> </div><div> </div><div><br /></div><div><a href="http://www.lds.org/ldsorg/v/index.jsp?vgnextoid=2354fccf2b7db010VgnVCM1000004d82620aRCRD&amp;locale=0&amp;sourceId=cd908949f2f6b010VgnVCM1000004d82620a____&amp;hideNav=1">http://www.lds.org/ldsorg/v/index.jsp?vgnextoid=2354fccf2b7db010VgnVCM1000004d82620aRCRD&amp;locale=0&amp;sourceId=cd908949f2f6b010VgnVCM1000004d82620a____&amp;hideNav=1</a><br /></div></div>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-6108028227095102772008-01-09T20:51:00.001-07:002008-02-27T09:38:31.747-07:00Carpe Testes (Softly)We might not have a great reputation yet, but there is some great interactive coming out of Salt Lake City.<br /><br />Struck (most well known for its work in the Shave Everywhere site) has put together a nice viral website for the Sean Kimerling Testicular Cancer Foundation. The site is a great example that a well done site doesn't have to be over the top to be effective (but you do need some great video to make up for it).<br /><br />Check out <a href="http://www.carpetestes.org">Carpe Testes</a>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-83974795365653846402007-12-12T08:49:00.000-07:002007-12-12T08:52:30.611-07:00You Wouldn't UnderstandI absolutely hate this slogan that Palm is using. It has to be one of the worst ever. Seriously.<div><br /><br /><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_JA7BVmUda7c/R2ADjDzomVI/AAAAAAAAABk/bAyLrkkKnx0/s320/palm.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5143114675309287762" /><div> </div><div> </div></div><div style="text-align: center;"><br /></div><div style="text-align: center;">It's a Palm thing? That's the best they could come up with?</div>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-46934078482483756452007-12-10T23:28:00.000-07:002007-12-11T23:55:48.369-07:00Nike's Interactive Getting LazyI was checking out some of Nike's sites over at their jumpman23 site and noticed some interesting things about the Carmelo Anthony site for his new shoe, the <a href="http://www.nike.com/jumpman23/m4/">M4</a>.<br /><br />1. As is the case with almost all Nike sites, they do an amazing job with their graphic design. In this case, the great imagery works really well with all the hand-drawn illustrations.<br />2. Nice, subtle beat doesn't wear out its welcome too fast like you see on so many other sites.<br />3. I could have sworn I had seen this exact layout and navigation on another Nike site. After doing a little digging I found an older Jumpman 23 site for the <a href="http://www.nike.com/jumpman23/features/xx2/index.html">XX2</a> shoe.<br /><br />Check out both sites and let me know if you think Nike is lazy, or if this is just a good use of repurposing a website with a new look and feel.<br /><br />My vote = lazy.<br /><br />P.S. I'm not sure if Wieden + Kennedy spearheaded this site or if Nike went through R/GA. Anyone know?Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-54087085139985309322007-11-21T10:37:00.001-07:002008-02-27T10:07:27.040-07:00Apple's Give Up on Windows Vista Ads<div><span class="Apple-style-span" style="font-size: x-small;">As a Mac user the majority of the time you can take this post for what it's worth (although up until about 2 years ago I used Windows exclusively).</span><br /></div><div><br /></div><div>I love seeing clever advertising anywhere. The blogosphere is inundated with examples of creative advertising in the real world, but on the web advertising is usually relegated to poorly designed static or flash banner advertisements. Most are bad. Some are horrible. So when you see something clever you can't help but want to share it.</div><div style="text-align: center;"><br /></div><div>Visit c|net.com's Windows Vista page and you'll see one of the more clever uses of banner ads I think I've seen. A horizontal and skyscraper ad work in conjunction to poke fun at Vista using Apple's Mac/PC adds that have been all over TV the past few months.</div><div><br /></div><div><a href="http://www.cnet.com/windows-vista.html">http://www.cnet.com/windows-vista.html</a><br /></div><div style="text-align: center;"><br /></div><div><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_JA7BVmUda7c/R0RvzbSpi0I/AAAAAAAAABY/_4vP83mjm2M/s320/Give+Up+On+Vista.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5135352404399196994" /></div><div style="text-align: center;"><br /></div><div> </div><div> </div><div>I'd love to find out what Apple had to do to get c|net to agree to this. Even if you love Vista, I think you'd have to agree this is one of the best uses of banners anywhere on the interweb.</div><div><br /></div><div><br /></div>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-61131863321867272332007-11-19T15:49:00.000-07:002007-11-19T15:54:30.097-07:00Multiple User Screenshare ApplescriptGot a few requests for listing multiple accounts and accepting if any of those show up in the allowed accounts in the applescript. This should work (sorry, i haven't had any time to test this for sure). Same instructions for using as outline in the previous post.<div><br /></div><div><p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana">(*</p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #4c4e4e; min-height: 15.0px"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #4c4e4e">File: Auto Screenshare Multi Accept.applescript</p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #4c4e4e; min-height: 15.0px"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #4c4e4e">Abstract: An update of Apple's Auto Accept script to allow for automatic screenshare acceptance from a specific buddy. This version allows for multiple accounts to be listed and checks the requesting screen name against the list for verification.</p> <p style="margin: 0.0px 0.0px 0.0px 78.6px; text-indent: -78.6px; font: 12.0px Verdana; min-height: 15.0pxcolor:#4c4e4e;"><span class="Apple-tab-span" style="white-space:pre"> </span></p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #4c4e4e">Version: 1.1</p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #4c4e4e; min-height: 15.0px"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #4c4e4e">Disclaimer: IMPORTANT:  I am not liable for any use of this script. Do not use this script if you are unaware of the potential security issues.</p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #4c4e4e; min-height: 15.0px"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #4c4e4e">Created By: Graydon Stoner</p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #4c4e4e">http://www.getstonered.com</p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #4c4e4e; min-height: 15.0px"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana">*)</p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Helvetica; min-height: 14.0px"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #2900ff"><b>using terms from</b><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#0000ff;">application</span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#000000;">"iChat"</span></p> <p style="margin: 0.0px 0.0px 0.0px 78.6px; text-indent: -78.6px; font: 12.0px Helvetica; min-height: 14.0px"><span class="Apple-tab-span" style="white-space:pre"> </span></p> <p style="margin: 0.0px 0.0px 0.0px 78.6px; text-indent: -78.6px; font: 12.0px Verdana; color:#0000ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>on</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>received video invitation<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#408000;">theText</span><span style="font: 12.0px Helvetica; color:#000000;"> </span>from<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#408000;">theBuddy</span><span style="font: 12.0px Helvetica; color:#000000;"> </span>for<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#408000;">theChat</span></p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>set</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>buddySN<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>to</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#000000;">(</span><span style="color:#2900ff;"><b>get</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#0000ff;">name</span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>of</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>theBuddy<span style="color:#000000;">)</span></p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana"><span style="font: 12.0px Helvetica"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>set</b></span><span style="font: 12.0px Helvetica"> </span><span style="color:#408000;">allowedBuddies</span><span style="font: 12.0px Helvetica"> </span><span style="color:#2900ff;"><b>to</b></span><span style="font: 12.0px Helvetica"> </span>{"buddy1@mac.com",<span style="font: 12.0px Helvetica"> </span>"buddy2@mac.com",<span style="font: 12.0px Helvetica"> </span>"buddy3@mac.com"}</p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>set</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>allowScreenShare<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>to</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#0000ff;">false</span></p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>repeat</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>with</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>curBuddy<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>in</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>allowedBuddies</p> <p style="margin: 0.0px 0.0px 0.0px 157.1px; text-indent: -157.1px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>if</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#000000;">(</span>curBuddy<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>is</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>buddySN<span style="color:#000000;">)</span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>then</b></span></p> <p style="margin: 0.0px 0.0px 0.0px 196.4px; text-indent: -196.4px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>set</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>allowScreenShare<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>to</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#0000ff;">true</span></p> <p style="margin: 0.0px 0.0px 0.0px 157.1px; text-indent: -157.1px; font: 12.0px Verdana; color:#2900ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><b>end</b><span style="font: 12.0px Helvetica; color:#000000;"> </span><b>if</b></p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana; color:#2900ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><b>end</b><span style="font: 12.0px Helvetica; color:#000000;"> </span><b>repeat</b></p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>if</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#000000;">(</span>allowScreenShare<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>is</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#0000ff;">true</span><span style="color:#000000;">)</span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>then</b></span></p> <p style="margin: 0.0px 0.0px 0.0px 157.1px; text-indent: -157.1px; font: 12.0px Verdana; color:#0000ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>if</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#000000;">(</span>screen sharing<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>of</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#408000;">theChat</span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>is</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>local screen<span style="color:#000000;">)</span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>then</b></span></p> <p style="margin: 0.0px 0.0px 0.0px 196.4px; text-indent: -196.4px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#0000ff;">accept</span><span style="font: 12.0px Helvetica; color:#000000;"> </span>theChat</p> <p style="margin: 0.0px 0.0px 0.0px 157.1px; text-indent: -157.1px; font: 12.0px Verdana; color:#2900ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><b>end</b><span style="font: 12.0px Helvetica; color:#000000;"> </span><b>if</b></p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana; color:#2900ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><b>end</b><span style="font: 12.0px Helvetica; color:#000000;"> </span><b>if</b></p> <p style="margin: 0.0px 0.0px 0.0px 78.6px; text-indent: -78.6px; font: 12.0px Verdana; color:#0000ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>end</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>received video invitation</p> <p style="margin: 0.0px 0.0px 0.0px 78.6px; text-indent: -78.6px; font: 12.0px Helvetica; min-height: 14.0px"><span class="Apple-tab-span" style="white-space:pre"> </span></p> <p style="margin: 0.0px 0.0px 0.0px 78.6px; text-indent: -78.6px; font: 12.0px Verdana; color:#0000ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>on</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>received audio invitation<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#408000;">theText</span><span style="font: 12.0px Helvetica; color:#000000;"> </span>from<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#408000;">theBuddy</span><span style="font: 12.0px Helvetica; color:#000000;"> </span>for<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#408000;">theChat</span></p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>set</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>buddySN<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>to</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#000000;">(</span><span style="color:#2900ff;"><b>get</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#0000ff;">name</span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>of</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>theBuddy<span style="color:#000000;">)</span></p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana"><span style="font: 12.0px Helvetica"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>set</b></span><span style="font: 12.0px Helvetica"> </span><span style="color:#408000;">allowedBuddies</span><span style="font: 12.0px Helvetica"> </span><span style="color:#2900ff;"><b>to</b></span><span style="font: 12.0px Helvetica"> </span>{"buddy1@mac.com",<span style="font: 12.0px Helvetica"> </span>"buddy2@mac.com",<span style="font: 12.0px Helvetica"> </span>"buddy3@mac.com"}</p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>set</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>allowScreenShare<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>to</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#0000ff;">false</span></p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>repeat</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>with</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>curBuddy<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>in</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>allowedBuddies</p> <p style="margin: 0.0px 0.0px 0.0px 157.1px; text-indent: -157.1px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>if</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#000000;">(</span>curBuddy<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>is</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>buddySN<span style="color:#000000;">)</span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>then</b></span></p> <p style="margin: 0.0px 0.0px 0.0px 196.4px; text-indent: -196.4px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>set</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>allowScreenShare<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>to</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#0000ff;">true</span></p> <p style="margin: 0.0px 0.0px 0.0px 157.1px; text-indent: -157.1px; font: 12.0px Verdana; color:#2900ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><b>end</b><span style="font: 12.0px Helvetica; color:#000000;"> </span><b>if</b></p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana; color:#2900ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><b>end</b><span style="font: 12.0px Helvetica; color:#000000;"> </span><b>repeat</b></p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>if</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#000000;">(</span>allowScreenShare<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>is</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#0000ff;">true</span><span style="color:#000000;">)</span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>then</b></span></p> <p style="margin: 0.0px 0.0px 0.0px 157.1px; text-indent: -157.1px; font: 12.0px Verdana; color:#0000ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>if</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#000000;">(</span>screen sharing<span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>of</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#408000;">theChat</span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>is</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>local screen<span style="color:#000000;">)</span><span style="font: 12.0px Helvetica; color:#000000;"> </span><span style="color:#2900ff;"><b>then</b></span></p> <p style="margin: 0.0px 0.0px 0.0px 196.4px; text-indent: -196.4px; font: 12.0px Verdana; color:#408000;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#0000ff;">accept</span><span style="font: 12.0px Helvetica; color:#000000;"> </span>theChat</p> <p style="margin: 0.0px 0.0px 0.0px 157.1px; text-indent: -157.1px; font: 12.0px Verdana; color:#2900ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><b>end</b><span style="font: 12.0px Helvetica; color:#000000;"> </span><b>if</b></p> <p style="margin: 0.0px 0.0px 0.0px 117.8px; text-indent: -117.8px; font: 12.0px Verdana; color:#2900ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><b>end</b><span style="font: 12.0px Helvetica; color:#000000;"> </span><b>if</b></p> <p style="margin: 0.0px 0.0px 0.0px 78.6px; text-indent: -78.6px; font: 12.0px Verdana; color:#0000ff;"><span style="font: 12.0px Helvetica; color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#2900ff;"><b>end</b></span><span style="font: 12.0px Helvetica; color:#000000;"> </span>received audio invitation</p> <p style="margin: 0.0px 0.0px 0.0px 78.6px; text-indent: -78.6px; font: 12.0px Helvetica; min-height: 14.0px"><span class="Apple-tab-span" style="white-space:pre"> </span></p> <p style="margin: 0.0px 0.0px 0.0px 39.2px; text-indent: -39.3px; font: 12.0px Verdana; color: #2900ff"><b>end</b><span style="font: 12.0px Helvetica; color:#000000;"> </span><b>using terms from</b></p></div>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-56459045089355284952007-11-05T15:47:00.000-07:002007-11-08T20:51:45.359-07:00Applescript - Automatically Accept iChat Share Screen RequestSo we have been having tons of issues trying to get remote desktop to work properly on our network at the office. Nothing seemed to work. After upgrading to Leopard (sweet) and playing with the amazing new features in iChat, we started debating ways we could get iChat to work as a pseudo remote desktop.<br /><br />I figured a simple Applescript would work well, but didn't realize how simple it would be. Apple has added iChat events into their preferences. You can select any of their preset scripts or create your own. So after some experimentation I created the following scripts to use. Just setup your audio invitation event to use the following applescript on the computer you want to control. Follow the instructions below...<br /><br />1) <span class="Apple-style-span"><span class="Apple-style-span" style="FONT-WEIGHT: bold">Open Script Editor</span></span><span class="Apple-style-span" style="FONT-WEIGHT: bold"> and copy the code below</span>. You'll want to edit the email address in the code (in two areas) to whatever account you will be using to login to that computer.<br /><br />Requirements : iChat for Mac OS X ver. 10.5 Leopard<br /><br /><p style="MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; TEXT-INDENT: -39px">(*<br /></p><p style="MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; COLOR: #4c4e4e; TEXT-INDENT: -39px">File: Auto Screenshare Accept.applescript</p><p style="MIN-HEIGHT: 15px; MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; COLOR: #4c4e4e; TEXT-INDENT: -39px"><br /></p><p style="MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; COLOR: #4c4e4e; TEXT-INDENT: -39px">Abstract: An update of Apple's Auto Accept script to allow for automatic screenshare acceptance from a specific buddy. Also added is auto video chat acceptance which can act as a remote monitoring option so you can spy on people at work....home....wherever.</p><p style="MARGIN: 0px 0px 0px 78px; FONT: 12px Verdana; TEXT-INDENT: -78px"><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></p><p style="MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; COLOR: #4c4e4e; TEXT-INDENT: -39px"></p><p style="MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; COLOR: #4c4e4e; TEXT-INDENT: -39px">Version: 1.0</p><p style="MIN-HEIGHT: 15px; MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; COLOR: #4c4e4e; TEXT-INDENT: -39px"><br /></p><p style="MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; COLOR: #4c4e4e; TEXT-INDENT: -39px">Disclaimer: IMPORTANT: I am not liable for any use of this script. Obviously, there are significant security risks to automatically enabling screen sharing. Do not use this script if you are unaware of or refuse to take responsibility for any potential security issues.</p><p style="MIN-HEIGHT: 15px; MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; COLOR: #4c4e4e; TEXT-INDENT: -39px"><br /></p><p style="MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; COLOR: #4c4e4e; TEXT-INDENT: -39px">Created By: Graydon Stoner</p><p style="MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; COLOR: #4c4e4e; TEXT-INDENT: -39px">http://www.getstonered.com</p><p style="MIN-HEIGHT: 15px; MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; COLOR: #4c4e4e; TEXT-INDENT: -39px"><br /></p><p style="MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; TEXT-INDENT: -39px">*)</p><p style="MIN-HEIGHT: 14px; MARGIN: 0px 0px 0px 39px; FONT: 12px Helvetica; TEXT-INDENT: -39px"><br /></p><p style="MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana; COLOR: #2900ff; TEXT-INDENT: -39px"><b>using terms from</b><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#0000ff;">application</span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#000000;">"iChat"</span></p><p style="MIN-HEIGHT: 14px; MARGIN: 0px 0px 0px 78px; FONT: 12px Helvetica; TEXT-INDENT: -78px"><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></p><p style="MARGIN: 0px 0px 0px 78px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#2900ff;"><b>on</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span>received video invitation<span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#408000;">theText</span><span style="FONT: 12px Helvetica;color:#000000;" > </span>from<span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#408000;">theBuddy</span><span style="FONT: 12px Helvetica;color:#000000;" > </span>for<span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#408000;">theChat</span></p><p style="MARGIN: 0px 0px 0px 117px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#2900ff;"><b>set</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span>buddySN<span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>to</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#000000;">(</span><span style="color:#2900ff;"><b>get</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#0000ff;">name</span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>of</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span>theBuddy<span style="color:#000000;">)</span></p><p style="MARGIN: 0px 0px 0px 117px; FONT: 12px Verdana; TEXT-INDENT: -117px"><span style="FONT: 12px Helvetica"><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#2900ff;"><b>set</b></span><span style="FONT: 12px Helvetica"> </span><span style="color:#408000;">allowedBuddy</span><span style="FONT: 12px Helvetica"> </span><span style="color:#2900ff;"><b>to</b></span><span style="FONT: 12px Helvetica"> </span>"youremail@mac.com"</p><p style="MARGIN: 0px 0px 0px 117px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#2900ff;"><b>if</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#000000;">(</span>buddySN<span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>is</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span>allowedBuddy<span style="color:#000000;">)</span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>then</b></span></p><p style="MARGIN: 0px 0px 0px 157px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#2900ff;"><b>if</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#000000;">(</span>screen sharing<span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>of</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#408000;">theChat</span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>is</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span>local screen<span style="color:#000000;">)</span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>then</b></span></p><p style="MARGIN: 0px 0px 0px 196px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#0000ff;">accept</span><span style="FONT: 12px Helvetica;color:#000000;" > </span>theChat</p><p style="MARGIN: 0px 0px 0px 157px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><b>end</b><span style="FONT: 12px Helvetica;color:#000000;" > </span><b>if</b></p><p style="MARGIN: 0px 0px 0px 117px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><b>end</b><span style="FONT: 12px Helvetica;color:#000000;" > </span><b>if</b></p><p style="MARGIN: 0px 0px 0px 78px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#2900ff;"><b>end</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span>received video invitation</p><p style="MIN-HEIGHT: 14px; MARGIN: 0px 0px 0px 78px; FONT: 12px Helvetica; TEXT-INDENT: -78px"><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></p><p style="MARGIN: 0px 0px 0px 78px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#2900ff;"><b>on</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span>received audio invitation<span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#408000;">theText</span><span style="FONT: 12px Helvetica;color:#000000;" > </span>from<span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#408000;">theBuddy</span><span style="FONT: 12px Helvetica;color:#000000;" > </span>for<span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#408000;">theChat</span></p><p style="MARGIN: 0px 0px 0px 117px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#2900ff;"><b>set</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span>buddySN<span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>to</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#000000;">(</span><span style="color:#2900ff;"><b>get</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#0000ff;">name</span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>of</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span>theBuddy<span style="color:#000000;">)</span></p><p style="MARGIN: 0px 0px 0px 117px; FONT: 12px Verdana; TEXT-INDENT: -117px"><span style="FONT: 12px Helvetica"><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#2900ff;"><b>set</b></span><span style="FONT: 12px Helvetica"> </span><span style="color:#408000;">allowedBuddy</span><span style="FONT: 12px Helvetica"> </span><span style="color:#2900ff;"><b>to</b></span><span style="FONT: 12px Helvetica"> </span>"youremail@mac.com"</p><p style="MARGIN: 0px 0px 0px 117px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#2900ff;"><b>if</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#000000;">(</span>buddySN<span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>is</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span>allowedBuddy<span style="color:#000000;">)</span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>then</b></span></p><p style="MARGIN: 0px 0px 0px 157px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#2900ff;"><b>if</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#000000;">(</span>screen sharing<span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>of</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#408000;">theChat</span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>is</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span>local screen<span style="color:#000000;">)</span><span style="FONT: 12px Helvetica;color:#000000;" > </span><span style="color:#2900ff;"><b>then</b></span></p><p style="MARGIN: 0px 0px 0px 196px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#0000ff;">accept</span><span style="FONT: 12px Helvetica;color:#000000;" > </span>theChat</p><p style="MARGIN: 0px 0px 0px 157px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><b>end</b><span style="FONT: 12px Helvetica;color:#000000;" > </span><b>if</b></p><p style="MARGIN: 0px 0px 0px 117px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><b>end</b><span style="FONT: 12px Helvetica;color:#000000;" > </span><b>if</b></p><p style="MARGIN: 0px 0px 0px 78px; FONT: 12px Verdana"><span style="FONT: 12px Helvetica;color:#000000;" ><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></span><span style="color:#2900ff;"><b>end</b></span><span style="FONT: 12px Helvetica;color:#000000;" > </span>received audio invitation</p><p style="MIN-HEIGHT: 14px; MARGIN: 0px 0px 0px 78px; FONT: 12px Helvetica; TEXT-INDENT: -78px"><span class="Apple-tab-span" style="WHITE-SPACE: pre"></span></p><p style="MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana"><b>end</b><span style="FONT: 12px Helvetica;color:#000000;" > </span><b>using terms from</b></p><p style="MARGIN: 0px 0px 0px 39px; FONT: 12px Verdana"><span class="Apple-style-span" style="FONT-WEIGHT: bold"><br /></span></p><br />2) <span class="Apple-style-span" style="FONT-WEIGHT: bold">Save Applescript</span> to ~user/Library/Scripts/iChat folder. If this folder isn't present you can either create it or open up iChat preferences, go to Alerts, check Run Applescript and select choose script and iChat will create it for you.<br /><br />3) <span class="Apple-style-span" style="FONT-WEIGHT: bold">In iChat preferences</span>, go to Alerts, select Audio Invitation event (screen share is a property of the Audio Invitation class), check Run Applescript, and choose the script you just saved.<br /><br />4) <span class="Apple-style-span" style="FONT-WEIGHT: bold">Rock it out</span>.<br /><br />P.S. Also included is auto accepting video chats which I thought might be useful if you want to spy on anyone who might be at your computer. I'm sure there are lots of other useful uses as well. Keep me posted on what you come up with.Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-82708879279957385752007-10-15T12:46:00.000-06:002007-10-15T12:50:41.909-06:00IKEA - Dream Kitchens for EveryoneApparently today is cool flash website day. I just found another great site from Ikea. They normally have some pretty amazing video + flash work. Often I find sites like that a little frustrating if you're actually looking at buying something but this one is so enjoyable to use I actually enjoyed looking at the products they were showcasing.<div><br /></div><div>The cross fade for each Kitchen's music is stellar, and the video is phenomenal. Plus, try turning around in each section to see a whole new side of each kitchen. <br /><div><br /></div><div>Check it out at <a href="http://www.ikea.com/ms/en_US/room_ideas/ckl/default.html">IKEA - Dream Kitchens</a></div></div>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-92091122038344663202007-10-15T12:11:00.000-06:002007-10-15T12:23:54.868-06:00Ultimate Creativity - Sony Bravia Play-doh BunniesI saw another blogger post about some play-doh bunnies seen around NYC (supposedly for a new  Sony Bravia commercial) a few months back. Today I came across the new commercial on their website at <a href="http://bravia.sony.eu/">http://bravia.sony.eu</a>. <div><br /></div><div>I look forward to one day finding a client who will allow me to do something completely creative with as little strings attached as possible. I imagine the success of the first two videos helped but I've got some ideas for some amazing Flash websites that need only a paying client willing to dream a little.</div><div><br /></div><div>P.S. Make sure to watch the 'making of' - almost as entertaining as the actual commercial.</div>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-18037533552969790392007-10-06T20:47:00.000-06:002007-10-06T20:48:52.182-06:00Adding insult to economicsEvery diss should be this well thought out.<p><a href="http://howardlindzon.com/?p=2725">http://howardlindzon.com/?p=2725</a>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-60347486446739299332007-10-05T23:03:00.000-06:002007-10-15T12:18:32.149-06:00New Site Launch - Regal SecurityToday we wrapped up a new project. It's a full flash site for a door <br />to door security sales company up in Tacoma, WA.<p>Check out Regal Security at <a href="http://www.workforregal.com/">http://www.workforregal.com</a></p><p>We were particularly proud of the reflection of the video on the home <br />page and how seamless the beginning of the video is for each guy on <br />the meet team section.</p><p>Last, I'm thinking of creating an actionscript class to manage the <br />transitions from one page to another even though the current <br />implementation is pretty straightforward.</p><p>If anyone already has something similar I'd love to check it out. Drop <br />me a line in the comments.</p>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-55632133005570077762007-09-24T10:05:00.001-06:002007-09-25T21:06:23.936-06:00Leveraging useful resourcesI have a tendency to always want to create everything myself, not relying on any other potentially useful code or classes. It's a little easier to reuse code in PHP, but in Flash I normally feel I'd be better off creating (or recreating) something myself.<br /><br />We have a project we're currently working on that required a Flash movie to preload a number of FLV files since users would be required to disconnect their internet connection at some point during the process. I began searching for some example code similar to my needs so that, once again, I could reinvent the wheel.<br /><br />However, I stumbled upon a fantastic class from Jack Doyle at Greensock.com. It was easy to implement, and exactly met the needs of the project. You can use it to preload any assets (flv, swf, jpg) for use later.<br /><br />Well played, Jack. Well played.<br /><br /><a href="http://blog.greensock.com/preloadassetmanageras2/">Flash Preload Asset Class: http://blog.greensock.com/preloadassetmanageras2/</a>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-76817101758115860862007-09-18T15:58:00.000-06:002007-09-19T00:26:47.309-06:00The Proof is in the DetailsWe get many clients that have a hard time understanding what sets a great website apart from a good one.<br /><br />While many good websites deliver the same functionality and information as great ones, they usually lack the attention to detail that would make a good website a possible work of art.<br /><div><br />Good Site: <a href="http://www.fourthmeal.com/">http://www.fourthmeal.com</a> - This is Taco Bell's attempt to cash-in on the interactive flash craze. They attempt to create a fun video interactive site (ala <a href="http://www.shaveeverywhere.com/">ShaveEverywhere</a>) and you think they may just pull it off. You start with some decent video of a cab driver (decent actor) and a nicely designed taxi setting. However, once you select a location, the cab drives through some poorly animated 3-d city scenes. Head downtown and you'll find a tired implementation of a user-driven character mini-site. The attempt to be kitchy with some funky graphics and animation come off tired and sloppy (see image below).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_JA7BVmUda7c/RvDAKYH3xXI/AAAAAAAAAA0/-PhpXaznEoA/s1600-h/Picture+1.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_JA7BVmUda7c/RvDAKYH3xXI/AAAAAAAAAA0/-PhpXaznEoA/s320/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5111796861572203890" border="0" /></a><br />Great Site: <a href="http://www.gettheglass.com/">http://www.gettheglass.com</a> - This Goodby-led site for Milk (seriously) uses some amazing 3-d work. The intro leading from the board game to the 3-d world is particularly impressive. Everything, from the textures in the game to the cards at the bottom, oozes polish and an intense attention to detail. I'm not sure it compels me to go buy a couple gallons of milk, but the site is impressive enough to lure novice and expert internet tube* users alike.<br /><br />* Like Al Gore.<br /></div>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-54273438054507405042007-09-14T14:49:00.000-06:002007-09-18T16:02:22.100-06:00What is Creativity?I once heard that creativity is simply a new combination of old ideas.* I just saw a perfect example of this in the new <a href="http://75.ufc.com/">UFC</a> website done by Red Interactive Agency (fellow SLCers). Choose your country, and click on the middle 'Light Heavyweight Division' section in the middle.<br /><br />What you'll see is a rotating list of the contenders for the UFC vs. Pride light heavyweight championship. You can see rotating lists and menus all over the 'net, but the polish and unique take by Red sets it apart.<br /><br />Makes me want to stop by the Price is Right to <a href="http://www.youtube.com/watch?v=7xPUiPvz8T0">spin</a> for the Showcase Showdown.<br /><span style="font-weight: bold;"><br /></span><span style="font-size:78%;">* <a href="http://books.google.com/books?id=O0Ynnxqf2u0C&amp;pg=PA212&amp;lpg=PA212&amp;dq=creativity+is+a+new+combination+of+old+ideas&amp;source=web&amp;ots=xkTiSmH2BG&amp;sig=lSg5qHOiH4zPUp216OGy1a2SkI4">Handbook of Creativity - <span class="author">By John A. Glover</span></a></span>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.comtag:blogger.com,1999:blog-2820774362841086506.post-40734335825312400392007-09-13T23:13:00.000-06:002007-09-18T15:55:27.319-06:00It is the distant future ... the year 2000!Yeah, so it's 2007 and blogs have been around since before 2000.<br /><br />I'm such a trendsetter.<br /><br />I had an old domain name lying around that I had previously used for another venture (as you can tell it was a rousing success) and figured I might as well put it to use.<br /><br />GetStonered.com now features my scintillating commentary on interactive web media/development currently on the Internet as well as what I'm currently working on with my job at <a href="http://www.decademedia.com/">Decade</a>. And maybe some funny videos too.<br /><br />Our latest project: <a href="http://www.keefa.com/">Keefa</a><div><br /></div><div>For those interested in the distant future...<a href="http://www.hbo.com/conchords/video/index.html">Episode 1: Sally > Robots</a></div><div><br /></div>Graydon Stonerhttp://www.blogger.com/profile/02430224727562166186noreply@blogger.com