<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Meredith Dodge</title>
	<atom:link href="http://www.meredithdodge.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.meredithdodge.com</link>
	<description>Designer / Developer</description>
	<lastBuildDate>Fri, 04 May 2012 17:55:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>BizMarx</title>
		<link>http://www.meredithdodge.com/2012/05/04/bizmarx/</link>
		<comments>http://www.meredithdodge.com/2012/05/04/bizmarx/#comments</comments>
		<pubDate>Fri, 04 May 2012 17:36:28 +0000</pubDate>
		<dc:creator>Meredith</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.meredithdodge.com/?p=611</guid>
		<description><![CDATA[BizMarx is a collaboration tool for lawyers and other professionals working with many iterations of documents. This project was a trial by fire for some of my newer UI design and develpment skills. I was responsible for designing the UI (from wireframes to skin) as well as building the HTML, CSS, and most of the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.meredithdodge.com/wp-content/uploads/BizMarx_mockups_R2_c1.jpg" rel="prettyPhoto"><img src="http://www.meredithdodge.com/wp-content/uploads/BizMarx_mockups_R2_c1-458x327.jpg" alt="BizMarx Mockup" title="BizMarx Mockup" class="alignleft size-medium wp-image-612" /></a>BizMarx is a collaboration tool for lawyers and other professionals working with many iterations of documents. This project was a trial by fire for some of my newer UI design and develpment skills. I was responsible for designing the UI (from wireframes to skin) as well as building the HTML, CSS, and most of the JavaScript. This is where I fell in love with jQuery folks. It&#8217;s just so perfect for building the beautiful user interactions that you never dared to hope for.</p>
<p>Check out the <a href='http://www.meredithdodge.com/wp-content/uploads/BizMarx_wireframes_R4-2011-03-30.pdf'>wireframes</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meredithdodge.com/2012/05/04/bizmarx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: Easy jQuery-Based Quiz</title>
		<link>http://www.meredithdodge.com/2012/03/16/tutorial-easy-jquery-based-quiz/</link>
		<comments>http://www.meredithdodge.com/2012/03/16/tutorial-easy-jquery-based-quiz/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 20:04:18 +0000</pubDate>
		<dc:creator>Meredith</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.meredithdodge.com/?p=564</guid>
		<description><![CDATA[In this tutorial I&#8217;ll show you how to create your own interactive quiz using jQuery/JSON and CSS. View the demo or download the source files. Part One: the HTML A nested &#60;ol&#62;, input.submit, and p.feedback inside a div#quiz. The rel attribute of div#quiz is important, more on that later. The question &#60;li&#62;s have unique ids [...]]]></description>
			<content:encoded><![CDATA[<p>In this tutorial I&#8217;ll show you how to create your own interactive quiz using jQuery/JSON and CSS. View the <a title="Easy jQuery-Based Quiz Demo" href="http://www.meredithdodge.com/demos/quiz/" target="_blank">demo</a> or download the <a title="Source Files for Easy jQuery-Based Quiz" href="http://www.meredithdodge.com/wp-content/uploads/MD_Easy_jQuery_Quiz.zip">source files</a>.</p>
<p><strong>Part One: the HTML</strong></p>
<p>A nested &lt;ol&gt;, input.submit, and p.feedback inside a div#quiz. The rel attribute of div#quiz is important, more on that later. The question &lt;li&gt;s have unique ids (q1, q2 etc) while the answer &lt;li&gt;s within each question have classes (a1, a2, etc) that are repeated per question.</p>
<pre>&lt;div id="quiz" rel="key"&gt;
  &lt;ol&gt;
    &lt;li id="q1"&gt;At viverra sapien dignissim eget, vel tristique nibh posuere in? At viverra sapien dignissim eget, vel tristique nibh posuere in? At viverra sapien dignissim eget, vel tristique nibh posuere in?
      &lt;ol&gt;
        &lt;li&gt;
          &lt;label&gt;
            &lt;input type="radio" name="q1"&gt;
            Morbi rutrum tempor nulla Morbi rutrum tempor nulla Morbi rutrum tempor nulla Morbi rutrum tempor nulla Morbi rutrum tempor nulla&lt;/label&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;label&gt;
            &lt;input type="radio" name="q1"&gt;
            Donec congue accumsan turpis&lt;/label&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;label&gt;
            &lt;input type="radio" name="q1"&gt;
            Mauris fermentum elit et ipsum pellentesque mattis.&lt;/label&gt;
        &lt;/li&gt;
      &lt;/ol&gt;
    &lt;/li&gt;
    &lt;li id="q2"&gt;At tempor eros, at dignissim risusvel urna fringilla varius?
      &lt;ol&gt;
        &lt;li&gt;
          &lt;label&gt;
            &lt;input type="radio" name="q2"&gt;
            Proin at eros enim&lt;/label&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;label&gt;
            &lt;input type="radio" name="q2"&gt;
            Etiam eget diam odio&lt;/label&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;label&gt;
            &lt;input type="radio" name="q2"&gt;
            Vestibulum viverra leo&lt;/label&gt;
        &lt;/li&gt;
      &lt;/ol&gt;
    &lt;/li&gt;
    &lt;li id="q3"&gt;Cursus ut hendrerit turpis suscipit risus imperdiet quis adipiscing dui porttitor est sagittis vel malesuada neque pretium?
      &lt;ol&gt;
        &lt;li&gt;
          &lt;label&gt;
            &lt;input type="radio" name="q3"&gt;
            Sed nec mauris id elit condimentum&lt;/label&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;label&gt;
            &lt;input type="radio" name="q3"&gt;
            Praesent cursus lorem &lt;/label&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;label&gt;
            &lt;input type="radio" name="q3"&gt;
            Nullam tempus velit quis&lt;/label&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;label&gt;
            &lt;input type="radio" name="q3"&gt;
            Curabitur in tellus quis neque pulvinar faucibus.&lt;/label&gt;
        &lt;/li&gt;
      &lt;/ol&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
  &lt;input type="button" value="Submit"&gt;
  &lt;p class="feedback"&gt;&lt;/p&gt;
&lt;/div&gt;</pre>
<p><strong>Part Two: the JSON</strong></p>
<p>Create a simple JSON file containing the answers to each question. Having this in a separate file makes the quiz scalable.<br />
<code></code></p>
<pre>{
	"key": {
		"q1": "a3",
		"q2": "a2",
		"q3": "a1"
	}
}</pre>
<p><strong>Part Three: the JavaScript</strong></p>
<p>First, let&#8217;s add our script tags. You can either put all your script in the HTML file or in a separate JS file.</p>
<pre>&lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"&gt;&lt;/script&gt;
&lt;script&gt;
//Fun stuff goes here
&lt;/script&gt;</pre>
<p>Next, let&#8217;s set some variables. I find it&#8217;s a good idea to pull out the paths to file folders as variables, both because you might use them repeatedly, and because they might change during the course of development.</p>
<pre>var imgpath = "images/";
var jsonpath = "json/";
var jsonfile = "";</pre>
<p>Now we need to initialize some things in the $(document).ready() function. While creating the quiz, I soon remembered the browser&#8217;s tendency to remember the checked or disabled status of inputs even after a refresh, so let&#8217;s reset those to not checked or disabled. Let&#8217;s bind our checkQuiz() function to the click of the submit button (and prevent the default action, just in case). We&#8217;ll also grab the rel attribute value from div#quiz and put it in the jsonfile so we know we&#8217;re getting the right answer key for this particular quiz.</p>
<pre>$(document).ready(function(){
	$("input[type='radio']").attr("disabled", false);
	$("input[type='radio']").attr("checked", false);
	$(".submit").click(function(e){
		e.preventDefault();
		checkQuiz();
	});
	jsonfile = $("#quiz").attr("rel")+".json";
});</pre>
<p><code></code> We also need a function to get our answer key JSON file, and execute a callback once the file has finished loading (or throw an error if it fails to load). When we call the getData() function, we&#8217;ll execute all our quiz-checking logic in the callback &#8212; after all, we can&#8217;t check the quiz until we have all the answers. <code></code></p>
<pre>function getData(update){
	$.getJSON(jsonpath+jsonfile, function(json){
		update(json);
	}).error(function(){alert("error");});
}</pre>
<p>Now to the brains of the operation. In the checkQuiz() function, we first remove the submit button, so users don&#8217;t try to submit their answers twice. Then we call the getData() function and in the callback, execute the following:</p>
<ol>
<li>Put the answer key object from the JSON into a new object called ans and create an empty result object.</li>
<li>Loop through the questions and populate the result object with the questions (key) and the corresponding answers the user selected (value).</li>
<li>Also in the questions loop, use the ans object to add circle images to indicate correct answers.</li>
<li>Still in the loop, compare the values from ans and result to see which questions were answered correctly and incorrectly and add respective classes.</li>
<li>After the loop, build the appropriate feedback message based on the number of correctly answered questions. Show the feedback message.</li>
</ol>
<pre>function checkQuiz(){
	$(".submit").remove();
	getData(function(data){
		var ans = data.key;
		var result = {};
		$(".question").each(function(){
			var _q = $(this).attr("id");
			var _a = $("#"+_q+" input:checked").closest("li").attr("class");
			result[_q] = _a;
			$("#"+_q+" ."+ans[_q]).append("&lt;img src='"+imgpath+"circle.png' class='png_bg' alt='correct answer'&gt;");
			if(ans[_q]==_a){
				$(this).addClass("correct");
			}else{
				$(this).addClass("wrong");
			}
		});
		var fdbck = "You got "+$(".correct").length+" out of "+$(".question").length+" correct. "
		if($(".correct").length==0){
			fdbck += "Better luck next time.";
		}else if($(".correct").length&gt;$(".question").length/2){
			fdbck += "Good job!";
		}else{
			fdbck += "Not bad.";
		}
		$(".feedback").text(fdbck);
		$(".feedback").show();
	});
}</pre>
<p><strong>Part Four: the CSS</strong></p>
<p>Just a little bit of formatting and we&#8217;re good to go. It&#8217;s probably best to remove the numbers on the nested &lt;ol&gt;s since they distract from the affordance of the inputs. Also we need to add our correct and wrong images as backgrounds on the .correct and .wrong &lt;li&gt;s. And some absolute positioning on the circle image helps us to display it right over the indicated radio button.</p>
<pre>#quiz&gt;ol {
	padding: 0 0 10px;
	margin: 0;
}
#quiz&gt;ol&gt;li {
	margin: 0 0 0 20px;
}
#quiz li img {
	vertical-align: middle;
}
#quiz ol ol {
	list-style-type: none;
	margin: 0;
	padding: 8px 15px 10px 0;
}
#quiz ol ol li {
	position: relative;
	margin: 0 0 0 -4px;
	padding: 2px 0 5px 4px;
	line-height: 18px;
	clear: left;
}
#quiz ol input {
	margin: 3px 4px;
}
#quiz ol ol li img {
	position: absolute;
	left: 0;
	top: 0;
}
.correct {
	background: url(images/right.png) right center no-repeat;
}
.wrong {
	background: url(images/wrong.png) right center no-repeat;
}
.feedback {
	font-weight: bold;
	color: #006600;
	display: none;
}</pre>
<p>And that&#8217;s all! Here are the links to the <a title="Easy jQuery-Based Quiz Demo" href="http://www.meredithdodge.com/demos/quiz/" target="_blank">demo</a> and <a title="Source Files for Easy jQuery-Based Quiz" href="http://www.meredithdodge.com/wp-content/uploads/MD_Easy_jQuery_Quiz.zip">source files</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meredithdodge.com/2012/03/16/tutorial-easy-jquery-based-quiz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>@font-face problem with Facebook in IE8</title>
		<link>http://www.meredithdodge.com/2011/12/16/font-face-problem-with-facebook-in-ie8/</link>
		<comments>http://www.meredithdodge.com/2011/12/16/font-face-problem-with-facebook-in-ie8/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 23:23:09 +0000</pubDate>
		<dc:creator>Meredith</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[@font-face]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.meredithdodge.com/?p=537</guid>
		<description><![CDATA[While working on a Facebook app that uses web fonts through an @font-face declaration created with Font Squirrel, I noticed a bizarre bug in IE8 in which all the text in the parent frame (ie Facebook) takes on one of the custom fonts supported with an EOT file. Despite the fact that it&#8217;s rather amusing [...]]]></description>
			<content:encoded><![CDATA[<p>While working on a Facebook app that uses web fonts through an @font-face declaration created with Font Squirrel, I noticed a bizarre bug in IE8 in which <em>all the text</em> in the parent frame (ie Facebook) takes on one of the custom fonts supported with an EOT file. Despite the fact that it&#8217;s rather amusing to see all of Facebook rendered in a fancy display font, it would be very wrong and shocking for a user to see this.</p>
<p>Searching for a workaround, I came across a <a href="http://www.samiam.org/blog/20110619.html">few</a> <a href="http://kenneth.kufluk.com/blog/2010/02/losing-face-with-ie8/">different</a> <a href="http://stackoverflow.com/questions/7768029/ie8-web-font-iframe-bug-workarounds">posts</a> that helped me understand the issue better, but didn&#8217;t quite work in the context of a Facebook app.</p>
<p>The heart of the issue is this: the parent frame will take on the EOT font when that EOT loads for the iframe, <em>if</em> the parent frame has not already finished loading at the time.</p>
<p>The solution needs to be this: load the EOT for the font <em>after </em>the parent frame has finished loading.</p>
<p>To do this, we need to perform a little bit of javascript trickery (I&#8217;m using <a href="http://jquery.com/">jQuery </a>and <a href="http://developers.facebook.com/docs/reference/javascript/">Facebook Javascript SDK</a> here).</p>
<ol>
<li>Remove any EOT fonts from the CSS properties for all elements in your (iframed) page, but keep the @font-face declaration in your CSS file. Create a unique class for each EOT font. For example:
<p><code>@font-face {<br />
font-family: 'CairoRegular';<br />
src: url('cairo-webfont.eot');<br />
src: url('cairo-webfont.eot?#iefix') format('embedded-opentype'),<br />
url('cairo-webfont.woff') format('woff'),<br />
url('cairo-webfont.ttf') format('truetype'),<br />
url('cairo-webfont.svg#CairoRegular') format('svg');<br />
font-weight: normal;<br />
font-style: normal;<br />
}</p>
<p>.CairoRegular {<br />
font-family: 'CairoRegular';<br />
}</code></li>
<li>Next, create a function that adds this class to the elements that need it:
<p><code>function addfonts(){<br />
$("#header h1,#content h3,#content h6,.cssbutton").addClass("CairoRegular");<br />
$("#header h4,#header h2,#header h3").addClass("BallparkWeiner");<br />
}</code></li>
<li>And finally, add the FB.Canvas.getPageInfo() function somewhere after your FB.init function and put your font function inside the callback:
<p><code>FB.Canvas.getPageInfo(function() {<br />
addfonts();<br />
});</code></p>
<p>The getPageInfo() function was the closest thing I could find to a listener for the parent page load completion. If you can find something better, by all means use that.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.meredithdodge.com/2011/12/16/font-face-problem-with-facebook-in-ie8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrollbars on Facebook Canvas iframe</title>
		<link>http://www.meredithdodge.com/2011/10/03/scrollbars-on-facebook-canvas-iframe/</link>
		<comments>http://www.meredithdodge.com/2011/10/03/scrollbars-on-facebook-canvas-iframe/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 20:02:37 +0000</pubDate>
		<dc:creator>Meredith</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.meredithdodge.com/?p=534</guid>
		<description><![CDATA[Just a quick heads up for anyone out there who is confounded by the existence of disabled scrollbars on their Facebook app canvas page. In your application&#8217;s advanced settings, checking Canvas Height: Fluid will add scrolling=&#8221;yes&#8221; to the iframe code, so select Settable to get rid of the scrollbars.]]></description>
			<content:encoded><![CDATA[<p>Just a quick heads up for anyone out there who is confounded by the existence of disabled scrollbars on their Facebook app canvas page. In your application&#8217;s advanced settings, checking <strong>Canvas Height: Fluid</strong> will add <strong>scrolling=&#8221;yes&#8221;</strong> to the iframe code, so select <strong>Settable </strong>to get rid of the scrollbars.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meredithdodge.com/2011/10/03/scrollbars-on-facebook-canvas-iframe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Hobart Building</title>
		<link>http://www.meredithdodge.com/2011/07/26/the-hobart-building/</link>
		<comments>http://www.meredithdodge.com/2011/07/26/the-hobart-building/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 05:37:19 +0000</pubDate>
		<dc:creator>Meredith</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.meredithdodge.com/?p=527</guid>
		<description><![CDATA[Fisher Hill Properties, which manages the historic Hobart Building in downtown San Francisco, had a very outdated website in terms of both design and maintenance, so they hired me to do a revamp of not only hobartbuilding.com but also they&#8217;re simple company profile website, fisherhillproperties.com. In addition to a redesign, the project included setting up [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.meredithdodge.com/wp-content/uploads/hobartbuilding_web.jpg" rel="prettyPhoto"><img class="alignleft size-medium wp-image-528" title="Hobart Building website" src="http://www.meredithdodge.com/wp-content/uploads/hobartbuilding_web-458x362.jpg" alt="Hobart Building website" /></a>Fisher Hill Properties, which manages the historic Hobart Building in downtown San Francisco, had a very outdated website in terms of both design and maintenance, so they hired me to do a revamp of not only hobartbuilding.com but also they&#8217;re simple company profile website, fisherhillproperties.com. In addition to a redesign, the project included setting up WordPress on both sites, so that the non-technical could update the site easily.</p>
<p>FHP was looking for a design that was elegant and classy, yet simple. Since their letterhead was done in Bembo, I settled on Times New Roman as the closest/easiest match for a web font. I chose a blend of patterns, soft gradients, and subtle drop shadows to keep the eye moving around the page. In the development phase, my goal was to take advantage of the new capabilities of CSS3 as much as possible. I was very satisfied with the result in the modern browsers, but, of course, even IE9 left me disappointed. Someday.</p>
<p>Go-live was not, of course, without a few hitches. A few words to the wise:</p>
<ul>
<li>Before launching, check your server&#8217;s installed PHP version. If it&#8217;s less than 5, be prepared to turn off any fancy .htaccess tricks that your theme&#8217;s functions.php file contains. Otherwise you&#8217;ll get a 500 Internal Server Error.</li>
<li>Stay away from Yahoo Small Business hosting if possible. They suck in the following ways:</li>
<li>.htaccess file is not supported (no pretty permalinks)
<ul>
<li>Performance is poor</li>
<li>Mail can only be sent from the same domain (for Contact Form 7)</li>
<li>The MySQL database host is mysql instead of localhost as it appears to be</li>
<li>phpMyAdmin has to be installed in a directory within your site&#8217;s root. It is s-l-o-w</li>
</ul>
</li>
</ul>
<p>My role: <strong>Design</strong> — 100% <strong> Code</strong> — 100%</p>
<p><a title="The Hobart Building Website" href="http://www.hobartbuilding.com" target="_blank">Visit site</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.meredithdodge.com/2011/07/26/the-hobart-building/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting my Flash game into an Android app</title>
		<link>http://www.meredithdodge.com/2011/07/14/converting-my-flash-game-into-an-android-app/</link>
		<comments>http://www.meredithdodge.com/2011/07/14/converting-my-flash-game-into-an-android-app/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 19:41:40 +0000</pubDate>
		<dc:creator>Meredith</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.meredithdodge.com/?p=494</guid>
		<description><![CDATA[We all know the story about Flash and the iPhone, but with Android phones there is no such obstacle. So with the help of Paul Trani&#8217;s tutorial on Lynda.com, I was able to convert my Cupcake Invaders Flash game into an Adobe AIR application for Android. The key steps in the conversion: Instead of walking [...]]]></description>
			<content:encoded><![CDATA[<p>We all know the story about Flash and the iPhone, but with Android phones there is no such obstacle. So with the help of <a href="http://www.lynda.com/Flash-CS5-tutorials/flash-professional-cs5-creating-a-simple-game-for-android-devices/74928-2.html">Paul Trani&#8217;s tutorial on Lynda.com</a>, I was able to convert my <a title="Cupcake Invaders game" href="http://www.meredithdodge.com/2011/05/27/cupcake-invaders-game/">Cupcake Invaders Flash game</a> into an Adobe AIR application for Android.</p>
<p><strong>The key steps in the conversion:</strong></p>
<ol>
<li>Instead of walking the character on an arrow button hover or arrow keydown, I used the accelerometer&#8217;s horizontal acceleration. Thus when the player tilts the device to the left or right, the character walks in that direction.</li>
<li>I converted most of the graphics from Flash vector drawings into PNGs. While a PC has the processor power to scale and move vector graphics quickly, phone processors are less beefy and have an easier time with bitmap graphics.</li>
<li>I downloaded the <a title="Download the Adobe AIR SDK" href="http://www.adobe.com/products/air/sdk/">Adobe AIR SDK</a> to compile the APK file and then downloaded the <a title="Download the Android SDK" href="http://developer.android.com/sdk/index.html">Android SDK</a> to push the file to my DroidX for testing.</li>
</ol>
<p>I haven&#8217;t published to the Android Market yet, but you can download and install the <a title="Cupcake Invaders Android app" href="/wp-content/uploads/other/cupcake_invaders.apk">Cupcake Invaders app here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meredithdodge.com/2011/07/14/converting-my-flash-game-into-an-android-app/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dainese D-Store San Francisco</title>
		<link>http://www.meredithdodge.com/2011/07/05/dainese-d-store-san-francisco/</link>
		<comments>http://www.meredithdodge.com/2011/07/05/dainese-d-store-san-francisco/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 23:04:53 +0000</pubDate>
		<dc:creator>Meredith</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.meredithdodge.com/?p=485</guid>
		<description><![CDATA[The Dainese D-Store San Francisco is the flagship retail location for the Italian Dainese brand of motorcycle protective clothing and gear. This website echos the look and feel of the Dainese corporate site, but with a greater design emphasis on information and social networking. The site was built with WordPress. My role: Design — 100% [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="prettyPhoto" href="/wp-content/uploads/Dainese_DStore_SanFrancisco_Website_lg.jpg"><img class="alignleft size-full wp-image-486" title="Dainese_DStore_SanFrancisco_Website" src="http://www.meredithdodge.com/wp-content/uploads/Dainese_DStore_SanFrancisco_Website.jpg" alt="" /></a>The Dainese D-Store San Francisco is the flagship retail location for the Italian Dainese brand of motorcycle protective clothing and gear.</p>
<p>This website echos the look and feel of the Dainese corporate site, but with a greater design emphasis on information and social networking. The site was built with WordPress.</p>
<p>My role: <strong>Design</strong> — 100% <strong>Code </strong>— 100%</p>
<p><a href="http://www.dstoresanfrancisco.com/" target="_blank">Visit site</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.meredithdodge.com/2011/07/05/dainese-d-store-san-francisco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>52 Ways to See Red</title>
		<link>http://www.meredithdodge.com/2011/06/24/52-ways-to-see-red/</link>
		<comments>http://www.meredithdodge.com/2011/06/24/52-ways-to-see-red/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 17:44:57 +0000</pubDate>
		<dc:creator>Meredith</dc:creator>
				<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.meredithdodge.com/?p=479</guid>
		<description><![CDATA[52 Ways to See Red is a deck of cards that plays on the idea that red objects or experiences have strong emotions tied to them. This project took me into unfamiliar territory of combining digital and analog design. Here is the process I used to create the cards: Find images on the web Print [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-480" title="52ways_to_see_red" src="http://www.meredithdodge.com/wp-content/uploads/52ways_to_see_red.jpg" alt="" />52 Ways to See Red is a deck of cards that plays on the idea that red objects or experiences have strong emotions tied to them. This project took me into unfamiliar territory of combining digital and analog design. Here is the process I used to create the cards:</p>
<ol>
<li>Find images on the web</li>
<li>Print the images</li>
<li>Trace the images on tracing paper with black ink</li>
<li>Scan the traced sketches into my computer</li>
<li>Print the traced sketches onto water-color paper</li>
<li>Add color to the sketches using paint</li>
<li>Scan the painted sketches into my computer</li>
<li>Arrange the scanned images for printing on perforated playing-card sheets</li>
<li>Print and detach the cards; smooth edges with sandpaper</li>
</ol>
<p>To purchase a deck, please <a href="/contact">contact me</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meredithdodge.com/2011/06/24/52-ways-to-see-red/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple jQuery UI dialogs in a dynamic page</title>
		<link>http://www.meredithdodge.com/2011/06/21/multiple-jquery-ui-dialogs-in-a-dynamically-page/</link>
		<comments>http://www.meredithdodge.com/2011/06/21/multiple-jquery-ui-dialogs-in-a-dynamically-page/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 23:11:54 +0000</pubDate>
		<dc:creator>Meredith</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.meredithdodge.com/?p=470</guid>
		<description><![CDATA[Recently I was doing the front-end dev for a dynamically generated page that needed to have a large number of popups. I found the following script to help me enable the dialogs in a way that would be easy to integrate with dynamically generated code. The original script My version: $(function() { var options = [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I was doing the front-end dev for a dynamically generated page that needed to have a large number of popups. I found the following script to help me enable the dialogs in a way that would be easy to integrate with dynamically generated code.</p>
<p><a title="Multiple Dialogs (Modal Box)" href="http://forum.jquery.com/topic/multiple-dialogs-modal-box#14737000000517603">The original script</a></p>
<p><strong>My version:</strong></p>
<pre>$(function() {
    var options = {
		autoOpen: false,
		resizable: false,
		width: 462,
		height: 373,
		open: function() {
    		$(this).dialog("widget").find(".ui-dialog-titlebar").hide();
		}
    };
    var n = 1;
    $(".popup").each(function(i) {
        var dlg = $('#popup-' + n).dialog(options);
        $('.opener-' + n).click(function() {
            dlg.dialog("open");
            return false;
        });
        $('#closer-' + n).click(function() {
            dlg.dialog("close");
            return false;
        });
        n++;
    });
});</pre>
<p>&nbsp;</p>
<p><code></code><br />
<strong>What I changed:</strong></p>
<ul>
<li>In the options I added a function on open to remove the title bar.</li>
<li>I used the a class on the dialog div instead of the opener link to run the each loop, because there would be multiple opener links for each dialog.</li>
<li>I added a close function on a closer button.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.meredithdodge.com/2011/06/21/multiple-jquery-ui-dialogs-in-a-dynamically-page/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cupcake Invaders game</title>
		<link>http://www.meredithdodge.com/2011/05/27/cupcake-invaders-game/</link>
		<comments>http://www.meredithdodge.com/2011/05/27/cupcake-invaders-game/#comments</comments>
		<pubDate>Fri, 27 May 2011 06:03:29 +0000</pubDate>
		<dc:creator>Meredith</dc:creator>
				<category><![CDATA[Animation]]></category>

		<guid isPermaLink="false">http://www.meredithdodge.com/?p=461</guid>
		<description><![CDATA[I created this game to be the cupcake version of the classic arcade game Space Invaders, in which the player controls a laser cannon to shoot alien spaceships. In my version, the player controls a pastry bag character with left and right arrows (on the stage or the keyboard) and clicks the mouse to shoot [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Cupcake Invaders Flash game" rel="prettyPhoto[flash]" href="/wp-content/uploads/cupcake_invaders_3.swf?width=800&amp;height=400&amp;flashvars=linkurl=&amp;phpMyAdmin=1ad2f2b5d1ae44c357632753db1ec06c#"><img class="alignleft size-full wp-image-464" title="frost_the_cupcakes_game" src="http://www.meredithdodge.com/wp-content/uploads/frost_the_cupcakes_game.jpg" alt="" /></a>I created this game to be the cupcake version of the classic arcade game Space Invaders, in which the player controls a laser cannon to shoot alien spaceships. In my version, the player controls a pastry bag character with left and right arrows (on the stage or the keyboard) and clicks the mouse to shoot frosting.</p>
<p>With the use of some physics, I was able to get the frosting to follow a trajectory based on the angle of the mouse click in relation to the position of the pastry bag. The player gains points by frosting the cupcake on the correct side (top).</p>
<p>Read about how I <a title="Converting my Flash game into an Android app" href="http://www.meredithdodge.com/2011/07/14/converting-my-flash-game-into-an-android-app/">converted the game to an Android app</a> or download the <a title="Download the Cupcake Invaders Android app" href="/wp-content/uploads/other/cupcake_invaders.apk">app file itself</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meredithdodge.com/2011/05/27/cupcake-invaders-game/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

