<?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>Aimee Gurl... &#187; Tech</title>
	<atom:link href="http://aimeegurl.com/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://aimeegurl.com</link>
	<description>for as long as i can remember, technology has always fascinated me</description>
	<lastBuildDate>Thu, 29 Jul 2010 03:28:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Will it Blend: Custom Scrollbar in WPF</title>
		<link>http://aimeegurl.com/2010/07/11/customizing-the-scrollbar-in-wpf-with-no-xaml-typing/</link>
		<comments>http://aimeegurl.com/2010/07/11/customizing-the-scrollbar-in-wpf-with-no-xaml-typing/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 10:22:23 +0000</pubDate>
		<dc:creator>Aimee</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[custom]]></category>
		<category><![CDATA[expression blend]]></category>
		<category><![CDATA[no code]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://aimeegurl.com/2010/07/11/customizing-the-scrollbar-in-wpf-with-no-xaml-typing/</guid>
		<description><![CDATA[<p id="top" />
<p>DISCLAIMER: I write this post more for myself because I tend to forget how to do things. There can very well be other proper ways of doing this, but this is the “good enough” solution, at least for me. </p>
<p>I was playing around with WPF again since it’s been a while. I wanted [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>DISCLAIMER: I write this post more for myself because I tend to forget how to do things. There can very well be other proper ways of doing this, but this is the “good enough” solution, at least for me. <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://aimeegurl.com/wp-content/uploads/2010/07/wlEmoticonsmile.png" /></p>
<p>I was playing around with WPF again since it’s been a while. I wanted to customize the scrollbar and I found it was quite a task. I finally figured out a simple way of doing it.</p>
<p>The look I wanted was a simple, thin, vertical bar (I guess you could do the same with the horizontal bar.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/07/image_thumb.png" width="240" height="150" /></a></p>
<p>1. So we start with a ScrollViewer that contains a RichTextBox(or whatever you want) </p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/07/image_thumb1.png" width="266" height="253" /></a>&#160;<a href="http://aimeegurl.com/wp-content/uploads/2010/07/image2.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 6px 0px 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/07/image_thumb2.png" width="266" height="252" /></a></p>
<p>2. Now we proceed to EditTemplate –&gt; Edit a Copy. </p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071116h48_17.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 16h48_17" border="0" alt="2010-07-11 16h48_17" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071116h48_17_thumb.png" width="546" height="485" /></a></p>
<p>3. You’re probably already familiar with this dialog box. Give your template a Name when you click okay, by default, it’ll add this to your window’s xaml. But if you want to later on reuse this template, choose the option to define it in a Resource dictionary. Later on, all you’ll have to do is add that resource dictionary to your project and you’ll be able to apply the style to your ScrollViewer.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071116h50_39.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 16h50_39" border="0" alt="2010-07-11 16h50_39" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071116h50_39_thumb.png" width="458" height="248" /></a></p>
<p>4. We’ll fix the VerticalScrollBar in this sample but you can very well do the same for HorizontalScrollBar. To start, right-click on PART_VerticalScrollBar and click on EditTemplate –&gt; Edit a Copy. Again, you’ll be asked to select a name and where you want to save this style. This time, we’re editing the ScrollBar component (previously was the entire ScrollViewer).</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071116h55_41.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 16h55_41" border="0" alt="2010-07-11 16h55_41" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071116h55_41_thumb.png" width="471" height="443" /></a></p>
<p>5. If you expand the template that you’re presented with, you’ll see the elements below. In my case, I want to delete the two RepeatButtons since clicking anywhere above and below the Thumb more or less does the same thing.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071116h56_50.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 16h56_50" border="0" alt="2010-07-11 16h56_50" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071116h56_50_thumb.png" width="565" height="320" /></a></p>
<p>5a. But lets say you wanted to edit the buttons, what we do, is draw out what we want the button to look like anywhere on the canvas. We’ll delete this later on. Here, we have a Grid that contains our desired button template.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h06_07.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 17h06_07" border="0" alt="2010-07-11 17h06_07" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h06_07_thumb.png" width="386" height="96" /></a></p>
<p>5b. What we’ll do now is right-click on the grid and select Make Into Control. A dialog box will appear that will ask you to select which control you want this grid to magically turn into. You’ll notice above that the buttons for scrolling up and down are RepeatButtons, so we can type into the search box to find the component, click to select and we’ll name it into something we will recognize later on, in my case, ScrollUpButton.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h10_00.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 17h10_00" border="0" alt="2010-07-11 17h10_00" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h10_00_thumb.png" width="500" height="577" /></a></p>
<p>5c. Now we’re editing the RepeatButton template. We can go ahead and delete the automatically generated ContentPresenter since we don’t need any content in our template.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h10_42.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 17h10_42" border="0" alt="2010-07-11 17h10_42" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h10_42_thumb.png" width="506" height="301" /></a></p>
<p>5d. You’ll notice that you can also go into the states tab to edit the look of your button on different states. </p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h12_24.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 17h12_24" border="0" alt="2010-07-11 17h12_24" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h12_24_thumb.png" width="492" height="425" /></a></p>
<p>5e. Once you’re done editing, you can go back to the Objects and Timeline tab and click on this button that will take you back to the ScrollbarTemplate</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/image3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/07/image_thumb3.png" width="297" height="166" /></a></p>
<p>5f. Now to apply the style, select the first RepeatButton –&gt; Edit Template –&gt; Apply Resource –&gt; ScrollUpButton (or whatever you named your template)</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h16_34.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 17h16_34" border="0" alt="2010-07-11 17h16_34" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h16_34_thumb.png" width="692" height="551" /></a></p>
<p>5g. You’ll now see the button with the style you’ve defined. Now remember to delete that Grid turned Repeat button that we used to create the style or else, it’ll become part of your template/application <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://aimeegurl.com/wp-content/uploads/2010/07/wlEmoticonsmile.png" /></p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/image4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/07/image_thumb4.png" width="233" height="116" /></a></p>
<p>6. Like I said, I’m deleting my up and down buttons because I don’t want them. You’ll notice that the grid this ScrollBar was defined in has Rows that hold the buttons and the thumb / track. I’ll need to delete the extra rows since I don’t need them now and I want the thumb and vertical bar to occupy the entire height. I tried deleting this through the designer but it only wreaked havoc (might be a user error) but I found the safest way to do this is to delete from the XAML code.&#160; Click on this button in the upper right corner of your design canvas to show the xaml editor. (Now you know why I said XAML typing instead of XAML editing)</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/image5.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/07/image_thumb5.png" width="794" height="179" /></a></p>
<p>7. What I’ll do now is delete the 1st and 3rd row definitions.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h21_17.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 17h21_17" border="0" alt="2010-07-11 17h21_17" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h21_17_thumb.png" width="321" height="440" /></a></p>
<p>8. Now I’ll see my scrollbar occupy the full height.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/image6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/07/image_thumb6.png" width="678" height="379" /></a></p>
<p>9. Next, I want to change the look of the ScrollBar’s thumb. You’ll see that the type of component this is is a Thumb. So we can do as we did with the Repeat button to style this. Make into Control only works on single objects so if you have several objects you want to include in your template, just right-click –&gt; Group Into –&gt; Grid to make them one. </p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h33_27.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 17h33_27" border="0" alt="2010-07-11 17h33_27" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h33_27_thumb.png" width="370" height="266" /></a></p>
<p>10. Now you can follow the steps in 5b but this time, instead of RepeatButton, we select Thumb in the Make Into Control dialog.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h37_34.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 17h37_34" border="0" alt="2010-07-11 17h37_34" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h37_34_thumb.png" width="500" height="577" /></a></p>
<p>11. Now continue with 5f to go back to ScrollBar template editing and apply the template to the Thumb object. You’ll now see our ScrollBar has changed. Again, remember to delete that extra thumb that we used to create the style. </p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/image7.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/07/image_thumb7.png" width="612" height="331" /></a></p>
<p>12. One last thing. Maybe you don’t want your ScrollBar to be as thick as this. So using the button in 5e, go back up to the ScrollViewer template. With the PART_VerticalScrollBar selected, go to the Properties tab and scroll down to the Style property. You’ll see that it’s highlighted in green which means it’s being bound to a local resource.&#160;&#160; </p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h44_18.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 17h44_18" border="0" alt="2010-07-11 17h44_18" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h44_18_thumb.png" width="914" height="550" /></a></p>
<p>13. Click on Edit Resource</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h45_59.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 17h45_59" border="0" alt="2010-07-11 17h45_59" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h45_59_thumb.png" width="228" height="240" /></a></p>
<p>14. You’ll then see our style, and if with it selected, you scroll down the Properties tab to the Width property, again you’ll see that the Width property is bound.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/image8.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/07/image_thumb8.png" width="754" height="452" /></a></p>
<p>15. Click on the Advanced Options button (that little square) and select Reset. You should then be able to put in whatever width you want.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h50_49.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 17h50_49" border="0" alt="2010-07-11 17h50_49" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071117h50_49_thumb.png" width="246" height="81" /></a></p>
<p>16. Now when you click on the button in 5e. (Return scope button) it actually takes you to the topmost level which is the window. So you’ll have to do an Edit Template… on the ScrollViewer again to edit the ScrollViewerTemplate. (By the way, I’ve edited my Thumb template to make it look alright with a Width of 5, i.e., change the width of the topmost grid in the template to 5 and fixed the components inside to make it look good).</p>
<p>You’ll notice that the second column in the grid is set to auto-sized so you’ll want to click on that icon till it says pixel sized (locked lock)</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071118h05_37.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 18h05_37" border="0" alt="2010-07-11 18h05_37" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071118h05_37_thumb.png" width="580" height="215" /></a></p>
<p>17. With the handle selected (that inverted triangle there) you can now set the width property to what fits your template.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/image9.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/07/image_thumb9.png" width="575" height="202" /></a></p>
<p>Now if you return scope to window, (5e), and run your app, you’ll now see your fully functional and newly styled ScrollViewer.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071118h11_04.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 18h11_04" border="0" alt="2010-07-11 18h11_04" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071118h11_04_thumb.png" width="222" height="240" /></a></p>
<p>hmm.. looks like there’s one more property you need to set. With the PART_VerticalScrollbar selected, set the Background property to No brush.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071118h13_05.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 18h13_05" border="0" alt="2010-07-11 18h13_05" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071118h13_05_thumb.png" width="764" height="557" /></a></p>
<p>This is the effect you will get. Note, I’ve also set the RichTextBox borders to zero to remove all borders.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/07/2010071118h17_06.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="2010-07-11 18h17_06" border="0" alt="2010-07-11 18h17_06" src="http://aimeegurl.com/wp-content/uploads/2010/07/2010071118h17_06_thumb.png" width="222" height="240" /></a>    </p>
<p>And that’s it! </p>
]]></content:encoded>
			<wfw:commentRss>http://aimeegurl.com/2010/07/11/customizing-the-scrollbar-in-wpf-with-no-xaml-typing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Get Windows Live Messenger &amp; Bing on my iPhone</title>
		<link>http://aimeegurl.com/2010/06/23/get-windows-live-messenger-bing-on-my-iphone/</link>
		<comments>http://aimeegurl.com/2010/06/23/get-windows-live-messenger-bing-on-my-iphone/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 17:13:30 +0000</pubDate>
		<dc:creator>Aimee</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://aimeegurl.com/2010/06/23/get-windows-live-messenger-bing-on-my-iphone/</guid>
		<description><![CDATA[<p id="top" />
<p>I’ve been on an app purchasing spree for a while so I had to update my iTunes account with an SG one. Recently though, MS has released a few apps that are US only: Windows Live Messenger &#38; Bing. So what I did, I created another account with a US country (you can [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>I’ve been on an app purchasing spree for a while so I had to update my iTunes account with an SG one. Recently though, MS has released a few apps that are US only: Windows Live Messenger &amp; Bing. So what I did, I created another account with a US country (you can search how to create one without having to input credit card info). Once you have a new account, you can go to settings –&gt; store and logout/login with your new account. </p>
<p>It’s a bit of a hassle though because once you’ve downloaded an app with one account, even if it’s available on both stores, you’ll have to be in the correct store to do an update. If that happens, just delete and re-download (of course, you’ll only want to do this with free apps. <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://aimeegurl.com/wp-content/uploads/2010/06/wlEmoticonsmile.png" /></p>
<p>So what to check out? For Windows Live Messenger, apart from the obvious social feed integration and IM, you should also check out the photos application that allows you to apply some basic effects to your photos before posting them onto skydrive, privacy setting settable to everyone or just you. <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-ninja" alt="Ninja" src="http://aimeegurl.com/wp-content/uploads/2010/06/wlEmoticonninja.png" /> &lt;- new emoticon!</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/06/IMG_0818.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="IMG_0818" border="0" alt="IMG_0818" src="http://aimeegurl.com/wp-content/uploads/2010/06/IMG_0818_thumb.png" width="160" height="240" /></a><a href="http://aimeegurl.com/wp-content/uploads/2010/06/IMG_0817.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 12px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="IMG_0817" border="0" alt="IMG_0817" src="http://aimeegurl.com/wp-content/uploads/2010/06/IMG_0817_thumb.png" width="160" height="240" /></a></p>
<p> 
<p>For the Bing app, there’s a new social tab that allows you to integrate with facebook and twitter so when you do a search, it searches your social feed as well.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/06/IMG_0819.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="IMG_0819" border="0" alt="IMG_0819" src="http://aimeegurl.com/wp-content/uploads/2010/06/IMG_0819_thumb.png" width="160" height="240" /></a><a href="http://aimeegurl.com/wp-content/uploads/2010/06/IMG_0820.png"><img style="border-right-width: 0px; margin: 0px 6px 0px 12px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="IMG_0820" border="0" alt="IMG_0820" src="http://aimeegurl.com/wp-content/uploads/2010/06/IMG_0820_thumb.png" width="160" height="240" /></a>    </p>
<p>Another new one is the Camera search. I thought this was really cool, you can search a barcode or cover art using your iPhone camera. I haven’t seen a successful search using the barcode yet since my camera is a bit crap. Perhaps 3GS users will have better luck. </p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/06/IMG_0821.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="IMG_0821" border="0" alt="IMG_0821" src="http://aimeegurl.com/wp-content/uploads/2010/06/IMG_0821_thumb.png" width="160" height="240" /></a><a href="http://aimeegurl.com/wp-content/uploads/2010/06/IMG_0822.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 12px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="IMG_0822" border="0" alt="IMG_0822" src="http://aimeegurl.com/wp-content/uploads/2010/06/IMG_0822_thumb.png" width="160" height="240" /></a>    </p>
<p>So yes, now I have to figure out how to back up my apps to update to iOS4.   <br />//Update: so it’s in iTunes: Right click on iTunes –&gt; transfer purchases. Haven’t tried it yet though, I accidentally hit sync thinking it would prompt me for options on what to sync, now it’s just taking forever to backup. <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Sad smile" src="http://aimeegurl.com/wp-content/uploads/2010/06/wlEmoticonsadsmile.png" /> AND no cancel button. <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-cryingface" alt="Crying face" src="http://aimeegurl.com/wp-content/uploads/2010/06/wlEmoticoncryingface.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://aimeegurl.com/2010/06/23/get-windows-live-messenger-bing-on-my-iphone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TechFriday: Amazon Kindle 2.5 Update!</title>
		<link>http://aimeegurl.com/2010/06/11/techfriday-amazon-kindle-2-5-update/</link>
		<comments>http://aimeegurl.com/2010/06/11/techfriday-amazon-kindle-2-5-update/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 07:50:03 +0000</pubDate>
		<dc:creator>Aimee</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[techfriday]]></category>

		<guid isPermaLink="false">http://aimeegurl.com/?p=984</guid>
		<description><![CDATA[<p id="top" />So i was quite excited when i was browsing around the Kindle Facebook page and saw some buzz about how the kindle 2.5.2 update was available for international users. It posted a link to the engadget article who in turn links to the forums. I had a bit of difficulty downloading the files [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />So i was quite excited when i was browsing around the <a href="http://www.facebook.com/kindle">Kindle Facebook page</a> and saw some buzz about how the kindle 2.5.2 update was available for international users. It posted a link to the <a href="http://www.engadget.com/2010/06/10/kindle-2-5-2-firmware-available-for-manual-update-but-only-for/">engadget article</a> who in turn links to the forums. I had a bit of difficulty downloading the files listed on <a href="http://www.kindleboards.com/index.php/topic,24554.msg490359.html#msg490359">kindleboards</a> so for those having trouble with the files, I&#8217;ve uploaded them onto my skydrive. You shouldn&#8217;t trust files people put up for you to run on your devices though, it&#8217;s a dangerous habit. <img src='http://aimeegurl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
DOH i think the skydrive updates are messing with the links.. i guess you&#8217;ll have to try getting the links from the forums. <img src='http://aimeegurl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<iframe title ="Preview" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" style="width:98px;height:115px;padding:0;background-color:#fcfcfc;" src="http://cid-bdfb7845c22e26b6.skydrive.live.com/embedicon.aspx/Blog%20Assets/Kindle%20Updates"></iframe></p>
<p>To update your kindle, copy the files one by one to your kindle, trigger an update through the menu -&gt; settings -&gt; menu &#8211; update your kindle option</p>
<p>Do this for the files in the following order:</p>
<p>Update &#8230;. 2.3.3</p>
<p>Update &#8230; 2.3.4</p>
<p>Update_4311&#8230;490480060</p>
<p>your kindle may already intermediary updates already (mine was fresh at 2.3) so install the appropriate ones. Okay, I&#8217;m off to play with my newly updated kindle!</p>
<p>*For those who want to update, note that this update is for devices with serial numbers starting B003, i.e . the Global Wireless ones.</p>
]]></content:encoded>
			<wfw:commentRss>http://aimeegurl.com/2010/06/11/techfriday-amazon-kindle-2-5-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Useless Tutorial: How to have 2 Accounts with same login name on youtube</title>
		<link>http://aimeegurl.com/2010/04/30/useless-tutorial-how-to-have-2-accounts-with-same-login-name-on-youtube/</link>
		<comments>http://aimeegurl.com/2010/04/30/useless-tutorial-how-to-have-2-accounts-with-same-login-name-on-youtube/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 16:15:48 +0000</pubDate>
		<dc:creator>Aimee</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://aimeegurl.com/2010/04/30/useless-tutorial-how-to-have-2-accounts-with-same-login-name-on-youtube/</guid>
		<description><![CDATA[<p id="top" />
<p>I stumbled on this when I logged into YouTube using the wrong password and found myself logged into an account where I had no activity/uploads whatsoever, when I distinctly remember adding favorites and uploads on my account. Apparently, this is what happened:</p>
<p>1. A while back I created a YouTube account with the username [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>I stumbled on this when I logged into YouTube using the wrong password and found myself logged into an account where I had no activity/uploads whatsoever, when I distinctly remember adding favorites and uploads on my account. Apparently, this is what happened:</p>
<p>1. A while back I created a YouTube account with the username <strong>Foo</strong>, and uploaded, and favorited some videos on the site. When I created the account, I had linked it to an email address <a href="mailto:bar@live.com.sg"><strong>bar@live.com.sg</strong></a>.</p>
<p>2. At a later time, I created a gmail account <a href="mailto:Foo@gmail.com"><strong>Foo@gmail.com</strong></a><strong> </strong>with a different password (password2). </p>
<p>3. At a much later time, I decided to create a YouTube account (by this time I had forgotten I already had one <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-disappointedsmile" alt="Disappointed smile" src="http://aimeegurl.com/wp-content/uploads/2010/04/wlEmoticondisappointedsmile.png" />) using my gmail credentials. When signing up, I had to put in <strong>Fuu</strong> as <strong>Foo </strong>was not available as a username, which I probably found strange but forgot about at that time.</p>
<p>4. I went back to using my former password by the time I wanted to login to YouTube again, so I put in login name <strong>Foo</strong> with the former password (password1) and then started favoriting videos. </p>
<p>5. After a while of YouTube inactivity, I one day decided to log back in, and absentmindedly put in my new password (password2). At first I panicked, I thought my account had been wiped out as there were no favorites nor uploads in my account. Then I noticed my account name <strong>Fuu.</strong> That’s when I tried logging in with my other password (password1), and sure enough, it took me to the account I was accustomed of using.</p>
<p>6. Just for fun, I changed my Foo (<a href="mailto:bar@live.com.sg">bar@live.com.sg</a> ) password to be the same as my <a href="mailto:Foo@gmail.com">Foo@gmail.com</a> (Fuu) password. Obviously, it goes to the former unless I specify <a href="mailto:Foo@gmail.com">Foo@gmail.com</a> as my login name.</p>
<p>I just tried it out signing up test accounts (though I think I forgot my password after I changed again (or did I?) because I couldn’t login to my test account anymore) and the same thing happens.</p>
<p>The chances of this happening to 2 different people are I guess next to none. I wonder if the same happens with Flickr + Yahoo. Yahoo accounts take longer to sign up so I’m too lazy to test <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smilewithtongueout" alt="Smile with tongue out" src="http://aimeegurl.com/wp-content/uploads/2010/04/wlEmoticonsmilewithtongueout.png" /> but my guess is yes. If I am right, I wonder what a good solution would be to prevent this from happening. If I’m wrong, I’m interested to find out what the fix is. I’m sure someone’s already figured it out with all these companies buying other companies.</p>
]]></content:encoded>
			<wfw:commentRss>http://aimeegurl.com/2010/04/30/useless-tutorial-how-to-have-2-accounts-with-same-login-name-on-youtube/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Techfriday: Looping Panorama for Windows Phone 7 Series</title>
		<link>http://aimeegurl.com/2010/03/26/tech-friday-panoramic-looping-exercise/</link>
		<comments>http://aimeegurl.com/2010/03/26/tech-friday-panoramic-looping-exercise/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 16:39:00 +0000</pubDate>
		<dc:creator>Aimee</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[expressionblend]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[techfriday]]></category>
		<category><![CDATA[WP7]]></category>

		<guid isPermaLink="false">http://aimeegurl.com/2010/03/26/tech-friday-panoramic-looping-exercise/</guid>
		<description><![CDATA[<p id="top" />
<p>Just a quick note:&#160; I’m sure MS will be providing controls to this interface in the future so we don’t have to spend too much time building these controls ourselves  This post, as with the previous one, was meant more as an Expression Blend Exercise for myself to be explore the features [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>Just a quick note:&#160; I’m sure MS will be providing controls to this interface in the future so we don’t have to spend too much time building these controls ourselves <img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://aimeegurl.com/wp-content/uploads/2010/03/wlEmoticonsmile2.png" /> This post, as with the previous one, was meant more as an Expression Blend Exercise for myself to be explore the features of Silverlight / Windows Phone 7 and Expression Blend to see how much can be done with what we have today. </p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:8070ac6e-1c02-408e-bf96-370447cfb807" class="wlWriterEditableSmartContent">
<div><object width="482" height="361"><param name="movie" value="http://www.youtube.com/v/3Da1DUf5W-I&amp;hl=en&amp;fs=1&amp;hl=en"></param><embed src="http://www.youtube.com/v/3Da1DUf5W-I&amp;hl=en&amp;fs=1&amp;hl=en" type="application/x-shockwave-flash" width="482" height="361"></embed></object></div>
<div style="width:482;clear:both;font-size:.8em;color:#000000">This is more of an Expression Blend exercise to simulate a looping panoramic interface on Windows Phone 7</div>
</div>
<p>There’s one annoying thing that I can’t figure out though: on the first scroll, you’ll notice from the video that the screen flickers. There’s probably something I’m doing wrong here but I just can’t figure it out yet <img class="wlEmoticon wlEmoticon-sad" alt="Sad" src="http://aimeegurl.com/wp-content/uploads/2010/03/wlEmoticonsad.png" /></p>
<p>So I had set out to accomplish two things: Simulate the looping background and sections in the panoramic interface on windows phone and instead of flicking, let the user touch and drag the controls from left to right before switching. I was able to accomplish the two, but like I mentioned, there’s an annoying thing that happens on the first transition from state one to state two. Another thing that’s wrong with this sample is that, I shouldn’t be switching states right away on a drag to left or drag to right. You should be able to pan a bit and the screen holds to that position till you pan to a certain threshold before the interface snaps to the next section. But yeah, maybe next time.</p>
<p>The first challenge was implementing the drag to next state instead of the flick. I couldn’t really isolate this into either a trigger or an action as it’s actually a combination of both, therefore a behavior. Basically, depending on the sum of the left and right value of the users drag motion, I trigger either GoToNextState() or GoToPreviousState(). Code for these two were modified from <a title="http://gallery.expression.microsoft.com/en-us/MIXBehaviorPack" href="http://gallery.expression.microsoft.com/en-us/MIXBehaviorPack">http://gallery.expression.microsoft.com/en-us/MIXBehaviorPack</a>.</p>
<p> <a href="http://aimeegurl.com/wp-content/uploads/2010/03/image18.png"><img style="border-right-width: 0px; margin: 0px 20px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb19.png" width="563" height="262" /></a>
<p>So I built a PanoramicPanningBehavior that has a few properties I can set. </p>
<p>First there are&#160; the <strong>BackgroundElement</strong>, <strong>SectionsElement</strong>, <strong>TitleElement</strong>. I want them to be grouped so when it’s time for me to handle the drags, they don’t necessarily have to move at the same pace. That’s when the <strong>BackgroundMovementFactor</strong> and <strong>TitleMovementFactor </strong>come to play. Intstead of translating the background and title according to the value of the drag, I multiply it by the specified factor first. I’ve also let myself specify the <strong>StateGroup</strong> that has the states of our sections as described in <a href="http://aimeegurl.com/2010/03/18/panoramic-navigation-on-windows-phone-7-with-no-code">my previous post</a>, just in case you have other stategroups in the scene (though I haven’t tested this yet ^_^)</p>
<p> Now that I have the essential parts of my UI identified, I can now define what I want to do with them in my behavior when I start handling the events ManipulationDelta and ManipulationCompleted.   <br /> 
<p>&#160;</p>
<p>&#160;</p>
<p>First for ManipulationDelta, I first check to see whether the parts are not null, and then based on the input factors, I apply them to the Translation.X property of the DeltaManipulation, or basically the change in the touch points and assign the value to the TranslateX properties of the CompositeTransform of the elements that have been identified through the properties. I think it’s better to read the code <img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://aimeegurl.com/wp-content/uploads/2010/03/wlEmoticonsmile2.png" />&#160;</p>
<pre class="code"><span style="color: blue">void </span>RootVisual_ManipulationDelta(<span style="color: blue">object </span>sender, <span style="color: #2b91af">ManipulationDeltaEventArgs </span>e)
     {
         <span style="color: blue">if </span>(!e.IsInertial)
         {
             <span style="color: blue">if </span>(BackgroundElement != <span style="color: blue">null</span>) {
                 <span style="color: blue">var </span>BG = getElement(BackgroundElement).RenderTransform <span style="color: blue">as </span><span style="color: #2b91af">CompositeTransform</span>;
                 BG.TranslateX += e.DeltaManipulation.Translation.X * BackgroundMovementFactor;

             }
             <span style="color: blue">if </span>(SectionsElement != <span style="color: blue">null</span>) {
                 <span style="color: blue">var </span>SE = getElement(SectionsElement).RenderTransform <span style="color: blue">as </span><span style="color: #2b91af">CompositeTransform</span>;
                 SE.TranslateX += e.DeltaManipulation.Translation.X;

             }
             <span style="color: blue">if </span>(TitleElement != <span style="color: blue">null</span>) {
                 <span style="color: blue">var </span>TE = getElement(TitleElement).RenderTransform <span style="color: blue">as </span><span style="color: #2b91af">CompositeTransform</span>;
                 TE.TranslateX += e.DeltaManipulation.Translation.X* TitleMovementFactor;
             }

         };
     }</pre>
<p>&#160;</p>
<p>If I wanted to run the project at this point, I’ll have to create a stateGroup and the section states in order for this not to go haywire. When I recreated the project, I actually added the panning behavior last. Next we’ll see the reason why I say this is meant more as an exercise for myself (and maybe for building demo apps) than production code. I think from this screenshot you can more or less figure out what I did.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image19.png"><img style="border-right-width: 0px; margin: 0px 20px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb20.png" width="1024" height="591" /></a></p>
<p>Okay, so seeing as how you’re able to, from the leftmost part of your UI, be able to pan even more to the left to peek and even transit into the rightmost section, there had to be something there. And since I didn’t want to duplicate all the controls, I wanted to use WPF’s VisualBrush. Sadly, this isn’t available for Silverlight, however, I did find this: <a href="http://dotneteers.net/blogs/vbandi/archive/2009/03/26/discovering-silverlight-3-poor-man-s-visualbrush-behavior.aspx">http://dotneteers.net/blogs/vbandi/archive/2009/03/26/discovering-silverlight-3-poor-man-s-visualbrush-behavior.aspx</a> When I tested it out, it wasn’t as performant as WPF’s visual brush, but since I only needed to draw the UI once, I thought this would do.If we had the PathListBox in WP7, that would have been a better option too.</p>
<p>If you look at my visual tree, I basically created a brush for the background image(<strong>image</strong>), the <strong>TitleGrid </strong>and the <strong>ContentGrid</strong> (which you won’t see since I collapsed it because there were more stuff inside. Next, you’ll notice that these elements are inside a stack and before and after each of them is a Rectangle. Basically, I created identically sized rectangles that use as brushes the PoorMansVisualBrush.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image20.png"><img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb21.png" width="304" height="238" /></a>To do this, after adding a reference to the PoorMansVisualBrush (which I’ve made a WP version of ), I select the Rectangle and temporarily choose, TileBrush, click on Advanced Options in the <strong>Fill </strong>property and select <strong>Convert to New Resource… </strong>This will prompt me with a dialog to create a new brush resource and I’ll name it accordingly. In this Case, I have BackgroundBrush.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image21.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 20px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb22.png" width="648" height="434" /></a> </p>
<p>Next, with the behavior selected, I set the properties accordingly. Most important to note is to set the UpdateIntervalDuration to 00:00:00 so that the behavior doesn’t waste resources by repainting the brush. Next, you’ll want to go to each of the rectangles and assign their fill properties to the BrushResources you created. Also remember to set the <strong>Stroke </strong>to <strong>No brush </strong>especially if you have background images that are supposed to seamlessly merge the leftmost and rightmost portions. Now the tedious part is doing this for all the rectangles. <img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://aimeegurl.com/wp-content/uploads/2010/03/wlEmoticonsmile2.png" />&#160;</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image22.png"><img style="border-right-width: 0px; margin: 0px 20px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb23.png" width="856" height="373" /></a></p>
<p>
  <br />The last, and yet another tricky part is setting up the states. What you’re seeing here is pretty much the same as the last post where I have 3 states, to show my 3 sections. Note that when you position the states, you’ll want to position the actual to the middle/actual objects. It’ll probably be too difficult to set up using the rectangles with the brushes anyway since they don’t render at design time ^_^. Here, you’ll notice I’ve added custom transitions for when Section1State goes to Section3State and vice versa.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image23.png"><img style="border-right-width: 0px; margin: 0px 20px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb24.png" width="978" height="340" /></a> </p>
<p>To do this, I’ll click on add transition button and select Section1State –&gt; Section3State </p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image24.png"><img style="border-right-width: 0px; margin: 0px 20px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb25.png" width="473" height="163" /></a> </p>
<p></p>
<p>In order to see what I’m doing better, I’ll switch to the Animation Workspace by pressing the function key [<strong>F6]. </strong>I’ve also minimized the stacks back so it’s easier to manage. With the transition to <strong>Section3State </strong>selected I’ll record a keyframe at the start, and end of the .5s transition.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image25.png"><img style="border-right-width: 0px; margin: 0px 20px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb26.png" width="849" height="418" /></a></p>
<p>When I record a key frame at the end, it’ll actually default to moving to the right most part of the actual controls which I changed to the one below. I’ve highlighted the outlines of the rectangles that mimic the actual controls.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image26.png"><img style="border-right-width: 0px; margin: 0px 20px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb27.png" width="874" height="480" /></a> </p>
<p></p>
<p>Do the same for transitioning Section3State-&gt;Section1State. What will happen here is the application will play this custom transition animation to showing the visual brushes and when the transition is done, it’ll switch to the destination state where the real controls are visible. </p>
<p></p>
<p>Run the app to test and that’s it!</p>
<p>Again, not an ideal solution for production but at least I got to learn a few more useful things in Blend that might be useful in the future.</p>
<p> I’ve uploaded the code here so if you want to test it out, download the zip file, rightclick –&gt; properties –&gt; Unblock to avoid getting those dll not found / inaccessible errors.<a href="http://aimeegurl.com/wp-content/uploads/2010/03/image27.png"><img style="border-bottom: 0px; border-left: 0px; margin: 11px 20px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb28.png" width="254" height="350" /></a></p>
<p>&#160;</p>
<p>
  </p>
<p><iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-bdfb7845c22e26b6.skydrive.live.com/embedicon.aspx/Projects/TechFriday/Panoramic%20Drag/PanoramaDrag.zip" frameborder="0" marginwidth="0" scrolling="no"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://aimeegurl.com/2010/03/26/tech-friday-panoramic-looping-exercise/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Panoramic Navigation on Windows Phone 7 with No Code!</title>
		<link>http://aimeegurl.com/2010/03/18/panoramic-navigation-on-windows-phone-7-with-no-code/</link>
		<comments>http://aimeegurl.com/2010/03/18/panoramic-navigation-on-windows-phone-7-with-no-code/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 06:19:09 +0000</pubDate>
		<dc:creator>Aimee</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[expression blend]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WP7]]></category>

		<guid isPermaLink="false">http://aimeegurl.com/2010/03/18/panoramic-navigation-on-windows-phone-7-with-no-code-2/</guid>
		<description><![CDATA[<p id="top" />I was reading through the UI Design and Interaction Guide for Windows Phone 7 Series and found out that there is currently no panoramic application template or control provided as part of the standard application platform. Nothing stops us from creating our own though.</p>
<p></p>
<p>To make things easier, I’ve made a behavior library for [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />I was reading through the <a href="http://bit.ly/d9Xiey">UI Design and Interaction Guide for Windows Phone 7 Series</a> and found out that there is currently no panoramic application template or control provided as part of the standard application platform. Nothing stops us from creating our own though.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image2.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb3.png" border="0" alt="image" width="640" height="289" /></a></p>
<p>To make things easier, I’ve made a behavior library for everyone to use that will handle flick gestures. I’ve also included a “GoToNextState” behavior which I based on <a title="http://gallery.expression.microsoft.com/en-us/MIXBehaviorPack" href="http://gallery.expression.microsoft.com/en-us/MIXBehaviorPack">http://gallery.expression.microsoft.com/en-us/MIXBehaviorPack</a>. If you want to follow along, you’ll need to download my <a href="http://cid-bdfb7845c22e26b6.skydrive.live.com/self.aspx/Projects/TechFriday/WPBehaviorsLibrary.dll">behavior library</a>. Also, if you don’t know where to get the Blend bits, check out this post: <a title="http://electricbeach.org/?p=460" href="http://electricbeach.org/?p=460">http://electricbeach.org/?p=460</a></p>
<p>So, let’s start by creating a new Windows Phone Application project in Blend 4.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image3.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb4.png" border="0" alt="image" width="444" height="383" /></a></p>
<p>You’ll be presented with a default layout. Obviously, your panoramic screen design will go outside the bounds of the “phone”. Layout your screen accordingly. This is what I did with mine.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image4.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb5.png" border="0" alt="image" width="571" height="389" /></a></p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image5.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb6.png" border="0" alt="image" width="286" height="299" /></a></p>
<p>Now that I have all my elements on screen, I’ll create 3 visual states, one for each active session. Let’s go into our States tab and add a state group called Sections. To do that, click on the icon with a green plus sign.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image6.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb7.png" border="0" alt="image" width="375" height="132" /></a></p>
<p>In the Sections state group, let’s add the 3 states and name them accordingly. For each state, let’s also move the Grid along the  x-axis.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image7.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb8.png" border="0" alt="image" width="720" height="307" /></a></p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image8.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb9.png" border="0" alt="image" width="748" height="308" /></a></p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image9.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb10.png" border="0" alt="image" width="654" height="305" /></a></p>
<p>We can also set the default transition to some built in easing functions to smooth out the user experience.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image10.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb11.png" border="0" alt="image" width="579" height="371" /></a></p>
<p>In my case, I used the back easing function but you can play around with the different functions to see what suits you. You can preview what the transitions look like by clicking on the <strong>Turn on transition preview </strong>button.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image11.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb12.png" border="0" alt="image" width="467" height="157" /></a></p>
<p>Okay, now we’re all set. The only thing left to do is enable state changing when a user flicks the screen either to the left or to the right. This is where we will be making use of the my WPBehaviorsLibrary. We’ll go into our asset library –&gt; behaviors tab and you’ll find a behavior called GoToNextState and GoToPreviousState:</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image12.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb13.png" border="0" alt="image" width="676" height="237" /></a></p>
<p>Drag and drop these two behaviors one by one to the LayoutRoot so that it looks like this:</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image13.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb14.png" border="0" alt="image" width="304" height="267" /></a></p>
<p>With one of the behaviors selected, go into the property inspector. You have a few options you can set (Loop &amp; UseTransitions) which are pretty self explanatory.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image14.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb15.png" border="0" alt="image" width="273" height="309" /></a></p>
<p>. You’ll notice there is also a trigger property. The default trigger type is an event trigger. Let’s go ahead and click New to select the FlickGestureTrigger.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image15.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb16.png" border="0" alt="image" width="390" height="605" /></a></p>
<p>When you click ok, you’ll find that the Gesture has a Direction property that you can set. Basically, we’re saying that the GoToPreviousState action gets fired when the user triggers a flick to the Right. Do the same for the GoToNextState behavior but with a flick to the Left.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image16.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb17.png" border="0" alt="image" width="307" height="365" /></a></p>
<p>And that’s it! Press f5 and select Windows Phone 7 Emulator, unless you’re lucky enough to have a Windows Phone 7 Device. <img class="wlEmoticon wlEmoticon-smile" src="http://aimeegurl.com/wp-content/uploads/2010/03/wlEmoticonsmile1.png" alt="Smile" /></p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image17.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb18.png" border="0" alt="image" width="423" height="237" /></a></p>
<p>You’ll get something like this:</p>
<p> <object id="scPlayer" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="446" height="788" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="thumb=http://content.screencast.com/users/jawss/folders/Jing/media/ca74bfc2-4fa5-4063-be34-e826163a3fe4/FirstFrame.jpg&amp;containerwidth=446&amp;containerheight=788&amp;content=http://content.screencast.com/users/jawss/folders/Jing/media/ca74bfc2-4fa5-4063-be34-e826163a3fe4/panorama.swf" /><param name="allowFullScreen" value="true" /><param name="scale" value="showall" /><param name="allowScriptAccess" value="always" /><param name="base" value="http://content.screencast.com/users/jawss/folders/Jing/media/ca74bfc2-4fa5-4063-be34-e826163a3fe4/" /><param name="src" value="http://content.screencast.com/users/jawss/folders/Jing/media/ca74bfc2-4fa5-4063-be34-e826163a3fe4/jingswfplayer.swf" /><param name="flashvars" value="thumb=http://content.screencast.com/users/jawss/folders/Jing/media/ca74bfc2-4fa5-4063-be34-e826163a3fe4/FirstFrame.jpg&amp;containerwidth=446&amp;containerheight=788&amp;content=http://content.screencast.com/users/jawss/folders/Jing/media/ca74bfc2-4fa5-4063-be34-e826163a3fe4/panorama.swf" /><param name="allowfullscreen" value="true" /><embed id="scPlayer" type="application/x-shockwave-flash" width="446" height="788" src="http://content.screencast.com/users/jawss/folders/Jing/media/ca74bfc2-4fa5-4063-be34-e826163a3fe4/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" allowscriptaccess="always" flashvars="thumb=http://content.screencast.com/users/jawss/folders/Jing/media/ca74bfc2-4fa5-4063-be34-e826163a3fe4/FirstFrame.jpg&amp;containerwidth=446&amp;containerheight=788&amp;content=http://content.screencast.com/users/jawss/folders/Jing/media/ca74bfc2-4fa5-4063-be34-e826163a3fe4/panorama.swf" allowfullscreen="true" base="http://content.screencast.com/users/jawss/folders/Jing/media/ca74bfc2-4fa5-4063-be34-e826163a3fe4/" scale="showall"></embed></object></p>
<p>After reading some more on the UI Guidelines, they’ve mentioned a few things about the title like moving at a different speed from the sections, etc. so I’ve tweaked the animations a bit,and now I have the title outside the overall grid, animating it separately. I also have different easing functions on the first and last page from the middle one. The result is this:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="505" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/II7z9qihof0&amp;hl=en_US&amp;fs=1&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="505" src="http://www.youtube.com/v/II7z9qihof0&amp;hl=en_US&amp;fs=1&amp;hd=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>You can get the code for this project as well as the library here. Also, although I’ve only managed to port  (i.e. copy paste) the States behavior from the <a href="http://gallery.expression.microsoft.com/en-us/MIXBehaviorPack">Mix Behavior Pack</a> to a Windows Phone behavior,  I’ve recompiled the pack to work with Silverlight 4. It’s in this folder as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://aimeegurl.com/2010/03/18/panoramic-navigation-on-windows-phone-7-with-no-code/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>Consuming data from Nimbus Using LinqToXML (Updated) on iPhone + WP7!</title>
		<link>http://aimeegurl.com/2010/03/16/consuming-data-from-nimbus-using-linqtoxml-2/</link>
		<comments>http://aimeegurl.com/2010/03/16/consuming-data-from-nimbus-using-linqtoxml-2/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 20:21:57 +0000</pubDate>
		<dc:creator>Aimee</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[MonoTouch.NET]]></category>
		<category><![CDATA[Project Nimbus]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[visualstudio2010]]></category>
		<category><![CDATA[WP7]]></category>

		<guid isPermaLink="false">http://aimeegurl.com/2010/03/16/consuming-data-from-nimbus-using-linqtoxml-2/</guid>
		<description><![CDATA[<p id="top" />I’ve been starting to explore iPhone development lately. At first I was taking my time at learning at Objective C which went fine for a while but one of the guys on the project was asking if I could help build some apps for Project Nimbus, translation: build stuff fast. We talked about [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />I’ve been starting to explore iPhone development lately. At first I was taking my time at learning at Objective C which went fine for a while but one of the guys on the project was asking if I could help build some apps for <a href="http://www.projectnimbus.org">Project Nimbus</a>, translation: build stuff fast. We talked about <a href="http://MonoTouch.NET">MonoTouch.NET</a> which is basically a framework that will allow you to code apps with .NET. JOY!!</p>
<p>First a quick intro about <a href="http://www.projectnimbus.org">Project Nimbus</a>: as Chewy would put it, it’s basically a supermarket for data here in Singapore. The team is hard at work at securing data from all sorts of providers. They currently have <a href="http://www.hungrygowhere.com/">Hungry Go Where</a>, <a href="http://www.lta.gov.sg">Land Transport Authority</a>, <a href="http://www.nea.gov.sg">National Environment Agency</a>, and <a href="http://www.nlb.gov.sg/">National Library Board </a>onboard as data providers, and i know they have quite a few more coming. What this means for developers is that if they have a great idea, they don’t have to go out by themselves with these big agencies and possibly spend tons of money on acquiring the data. If you want to find out more, check out <a href="http://projectnimbus.org/about/">http://projectnimbus.org/about/</a> for more information. They also very keen on getting input from developers as to what types of data they think would be useful, as well as feedback on the project as well. If you’re interested, the about page has a link to contact them <img src='http://aimeegurl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So back to my application. Right now, I’m figuring out how to actually get the data from the service. Looking at <a href="http://projectnimbus.org/2010/02/23/what-is-returned-from-data-service/">this entry</a>, they actually provide a link to the data that’s returned when you make a call to the service. Check out the post, and towards the end, you’ll find a few links that shows how the data looks like.</p>
<p>First we create a webrequest to the URL that gives me the dataset we want. In this case, we want to get access to the NowcastSet i.e. current weather. The service actually gets authentication from the headers so we add these two keys &amp; values. We then make the request and read it into a string for parsing later on.</p>
<p><img src="http://aimeegurl.com/wp-content/uploads/2010/03/wpid-PastedGraphic6.6QgjwaKOHyeZ.jpg" alt="wpid-PastedGraphic6.6QgjwaKOHyeZ.jpg" width="826" height="113" /></p>
<p>Next, if we look at the <a href="http://nimbusproject.cloudapp.net/neaodataservice.svc/ForecastSet?AccountKey=NimbusAdmin&amp;UniqueUserID=A66D951F49F54A63B040CFAA2FD553C0">dataset</a> that’s returned, we see that it makes use of a few namespaces. To make things WHOLE lot easier for us, we’ll use one of the cool features of the .NET Framework which I LOVE called LinqToXML. If you want to find out more, check out <a href="http://msdn.microsoft.com/en-us/library/bb387098.aspx">http://msdn.microsoft.com/en-us/library/bb387098.aspx</a>.</p>
<p>Let’s first add the System.Xml.Linq namespace in order to use it’s classes.</p>
<p><img src="http://aimeegurl.com/wp-content/uploads/2010/03/wpid-PastedGraphic1.ItVM3vydQ2bH.jpg" alt="wpid-PastedGraphic1.ItVM3vydQ2bH.jpg" width="651" height="316" /></p>
<p>We can now add a our XNamespaces:<br />
<img src="http://aimeegurl.com/wp-content/uploads/2010/03/wpid-PastedGraphic2.CJ4wKM6qhF3A.jpg" alt="wpid-PastedGraphic2.CJ4wKM6qhF3A.jpg" width="620" height="65" /></p>
<p>The following stuff is just magic. With just one statement using LinqToXML, we’re able to parse the xml string without having to use xpath or regex, etc. And, if you read the statement, it’s actually pretty descriptive of what it is trying to accomplish.</p>
<p><img src="http://aimeegurl.com/wp-content/uploads/2010/03/wpid-PastedGraphic4.SILwDB5lGtqK.jpg" alt="wpid-PastedGraphic4.SILwDB5lGtqK.jpg" width="715" height="157" /></p>
<p>Given the structure of our sample data, we see that we’re essentially getting elements from <strong>entry.content.properties</strong>.</p>
<p><img src="http://aimeegurl.com/wp-content/uploads/2010/03/wpid-PastedGraphic9.u4eWF4QbhRSy.jpg" alt="wpid-PastedGraphic9.u4eWF4QbhRSy.jpg" width="446" height="415" /></p>
<p>Note that the following line is just to make things a bit easier to read.<br />
<img style="border-width: 0px;" src="http://aimeegurl.com/wp-content/uploads/2010/03/wpid-PastedGraphic10.hKnF61uZzy7F.jpg" border="0" alt="wpid-PastedGraphic10.hKnF61uZzy7F.jpg" width="535" height="17" /></p>
<p>You can also just do the following and remove the let line, though I find it a bit more confusing to understand at first glance.<br />
<img style="border-width: 0px;" src="http://aimeegurl.com/wp-content/uploads/2010/03/wpid-PastedGraphic11.yB7JdULt8nja.jpg" border="0" alt="wpid-PastedGraphic11.yB7JdULt8nja.jpg" width="562" height="10" /></p>
<p>This is the full code:</p>
<pre class="code">    <span style="color: blue;">public </span><span style="color: #2b91af;">List</span>&lt;WeatherEntry&gt; GetWeatherFromNimbusNEA(<span style="color: blue;">string </span>AccountKey, <span style="color: blue;">string </span>UniqueUserID)
    {

        System.Net.WebRequest wr=
          HttpWebRequest.Create(
<span style="color: #a31515;">            "http://api.projectnimbus.org/neaodataservice.svc/NowcastSet"</span>);</pre>
<pre class="code">        wr.Headers.Add(<span style="color: #a31515;">"AccountKey"</span>,AccountKey);
        wr.Headers.Add(<span style="color: #a31515;">"UniqueUserID"</span>,UniqueUserID);
        wr.Method = <span style="color: #a31515;">"GET"</span>;
        WebResponse res = wr.GetResponse();
        <span style="color: blue;">string </span>resStr
         = <span style="color: blue;">new </span>System.IO.<span style="color: #2b91af;">StreamReader</span>(res.GetResponseStream()).ReadToEnd();

        XNamespace atomNS
          = <span style="color: #a31515;">"http://www.w3.org/2005/Atom"</span>;</pre>
<pre class="code">        XNamespace dNS 
          = <span style="color: #a31515;">"http://schemas.microsoft.com/ado/2007/08/dataservices"</span>;</pre>
<pre class="code">        XNamespace mNS
          = <span style="color: #a31515;">"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"</span>;

        <span style="color: #2b91af;">List</span>&lt;WeatherEntry&gt; results
          = (<span style="color: blue;">from </span>item <span style="color: blue;">in </span>XElement.Parse(resStr).Descendants(atomNS + <span style="color: #a31515;">"entry"</span>)
            <span style="color: blue;">let </span>weather = item.Element(atomNS + <span style="color: #a31515;">"content"</span>).Element(mNS +<span style="color: #a31515;">"properties"</span>)
                <span style="color: blue;">select new </span>WeatherEntry() {
                Area = weather.Element(dNS +<span style="color: #a31515;">"Area"</span>).Value,
                Condition = weather.Element(dNS +<span style="color: #a31515;">"Condition"</span>).Value,
                Lat = weather.Element(dNS + <span style="color: #a31515;">"Latitude"</span>).Value,
                Lon = weather.Element(dNS + <span style="color: #a31515;">"Longitude"</span>).Value
            }).ToList();

        <span style="color: blue;">return </span>results;
    }

}</pre>
<p><em>//Blogging using a trial version of MacJournal. Windows Live Writer is still my favorite blogging software, and it’s not just because it’s free. </em></p>
<p><em>// Update @ 3.40 on my Win7 partition.. I missed you Windows Live Writer!</em></p>
<p><em> </em></p>
<p><em>// </em><em>and <a href="http://gallery.live.com/liveItemDetail.aspx?li=d8835a5e-28da-4242-82eb-e1a006b083b9&amp;bt=9&amp;pl=8">the vspaste add-in!!</a></em></p>
<p>It’s an hour after the end of the <a href="http://live.visitmix.com">Mix Keynote</a>. I started watching the video on my Mac partition so I couldn’t download the tools straight away. After it was over, I rebooted, uninstalled my pre-RC bits and installed the tools for Windows Phone 7 Series (which you can find <a href="http://developer.windowsphone.com">here</a>), fired it up and created a new Windows Phone List Application:</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/03/image1.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb1.png" border="0" alt="image" width="640" height="405" /></a></p>
<p>Since this is mainly a ProjectNimbus post, I won’t dive into how to build the WP7 app but there’s a new training kit up on channel 9 <a href="http://channel9.msdn.com/learn/courses/WP7TrainingKit/">http://channel9.msdn.com/learn/courses/WP7TrainingKit/</a> if you want to learn more.</p>
<p>I did make a few tweaks in my code since the original code wasn’t doing downloads asynchronously (which it should, to improve your apps performance and not lock the UI). So how does my code look now?</p>
<pre class="code"><span style="color: blue;">public void  </span>GetWeatherFromNimbusNEA(<span style="color: blue;">string </span>AccountKey, <span style="color: blue;">string </span>UniqueUserID)
 {

     <span style="color: #2b91af;">WebClient </span>wc = <span style="color: blue;">new </span><span style="color: #2b91af;">WebClient</span>();</pre>
<pre class="code"><span style="color: green;">     </span>wc.Headers[<span style="color: #a31515;">"AccountKey"</span>] = AccountKey;
     wc.Headers[<span style="color: #a31515;">"UniqueUserID"</span>] = UniqueUserID;
     wc.DownloadStringCompleted
      +=<span style="color: blue;">new </span><span style="color: #2b91af;">DownloadStringCompletedEventHandler</span>(wc_DownloadStringCompleted);
     wc.DownloadStringAsync(
<span style="color: blue;">      new </span><span style="color: #2b91af;">Uri</span>(<span style="color: #a31515;">"http://api.projectnimbus.org/neaodataservice.svc/NowcastSet"</span>));

 }

 <span style="color: blue;">void </span>wc_DownloadStringCompleted(<span style="color: blue;">object </span>sender, <span style="color: #2b91af;">DownloadStringCompletedEventArgs </span>e)
 {
     <span style="color: blue;">string </span>resStr = e.Result;

     <span style="color: #2b91af;">XNamespace </span>atomNS
      = <span style="color: #a31515;">"http://www.w3.org/2005/Atom"</span>;
     <span style="color: #2b91af;">XNamespace </span>dNS
      = <span style="color: #a31515;">"http://schemas.microsoft.com/ado/2007/08/dataservices"</span>;
     <span style="color: #2b91af;">XNamespace </span>mNS
      = <span style="color: #a31515;">"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"</span>;

     <span style="color: blue;">var </span>results
     = (<span style="color: blue;">from </span>item <span style="color: blue;">in </span><span style="color: #2b91af;">XElement</span>.Parse(resStr)
         .Descendants(atomNS + <span style="color: #a31515;">"entry"</span>)
<span style="color: blue;">          let </span>weather = item.Element(atomNS + <span style="color: #a31515;">"content"</span>)
                        .Element(mNS + <span style="color: #a31515;">"properties"</span>)</pre>
<pre class="code">                 <span style="color: blue;">select new </span><span style="color: #2b91af;">WeatherEntryViewModel</span>()
                  {
                   Area = weather.Element(dNS + <span style="color: #a31515;">"Area"</span>).Value,
                   Condition = weather
                               .Element(dNS + <span style="color: #a31515;">"Condition"</span>).Value,
                   Lat = weather.Element(dNS + <span style="color: #a31515;">"Latitude"</span>).Value,
                   Lon = weather.Element(dNS + <span style="color: #a31515;">"Longitude"</span>).Value
                  });
     <span style="color: blue;">foreach </span>(<span style="color: blue;">var </span>r <span style="color: blue;">in </span>results) {
         Items.Add(r);
     }
 }</pre>
<p>It’s practically the same code except I switched to the WebClient which Silverlight developers are already familiar with to download the string asynchronously. Once the results are returned, I add them to an observable collection which I have data-bound my UI Elements to.</p>
<pre class="code">Items = <span style="color: blue;">new </span><span style="color: #2b91af;">ObservableCollection</span>&lt;<span style="color: #2b91af;">WeatherEntryViewModel</span>&gt;();</pre>
<p>The result is a basic list like application that displays weather information:</p>
<p><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/03/image_thumb2.png" border="0" alt="image" width="278" height="480" /></p>
<p>I’m excited about the WP7 platform and it’s definitely going to be a focus in my upcoming TechFriday posts! Next thing on my learning list is to share code between my two application platforms, iPhone and WP7. One thing is for sure though, I’m very happy with Project Nimbus as well because it provides a lot of data that I can already start playing around with. Kudos to the team! <img class="wlEmoticon wlEmoticon-smile" src="http://aimeegurl.com/wp-content/uploads/2010/03/wlEmoticonsmile.png" alt="Smile" /></p>
]]></content:encoded>
			<wfw:commentRss>http://aimeegurl.com/2010/03/16/consuming-data-from-nimbus-using-linqtoxml-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>TechFriday: iPadding V1 &#8211; The Designer Story</title>
		<link>http://aimeegurl.com/2010/02/05/ipadding-v1-the-designer-story/</link>
		<comments>http://aimeegurl.com/2010/02/05/ipadding-v1-the-designer-story/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 05:52:00 +0000</pubDate>
		<dc:creator>Aimee</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[expression blend]]></category>
		<category><![CDATA[techfriday]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://aimeegurl.com/?p=837</guid>
		<description><![CDATA[<p id="top" />With the whole iPad buzz going around last week, I decided to build last friday’s TechFriday app around the theme.</p>
<p>Introducing iPadding v1! It’s basically a WPF application that allows you to drag and drop shortcuts onto the screen and save it for when it’s presentation time. My desktop is constantly cluttered and as [...]]]></description>
			<content:encoded><![CDATA[<p id="top" /><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image.png"><img style="margin: 0px 20px; display: inline; border-width: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb.png" border="0" alt="image" width="389" height="480" align="left" /></a>With the whole iPad buzz going around last week, I decided to build last friday’s TechFriday app around the theme.</p>
<p>Introducing iPadding v1! It’s basically a WPF application that allows you to drag and drop shortcuts onto the screen and save it for when it’s presentation time. My desktop is constantly cluttered and as much as I’d like to use the hide desktop icons features, I do want some shortcuts readily available. Even with the pinning feature of Windows 7, I just end up with a cluttered task bark instead <img class="wlEmoticon wlEmoticon-sad" src="http://aimeegurl.com/wp-content/uploads/2010/02/wlEmoticonsad.png" alt="Sad" /> What I’ve been doing till now is creating a folder with the shortcuts of everything I want to show so i just have that pinned (or open by default) onto my taskbar.</p>
<p>So for TechFriday, I decided to make this little app that will store shortcuts in a window that looks like the iPad (<a href="http://www.benzinga.com/did-apple-copy-the-ipad-from-the-p88-aapl">or should i say P88?)</a>.</p>
<p>Version 1 includes the following features:</p>
<ul>
<li>Drag &amp; Drop items onto the screen</li>
<li>Click and Delete shortcuts that you want removed</li>
<li>Double-clicking to start an application</li>
<li>ClickOnce deployment enabling ease of deployment and distributing updates</li>
<li>and of course, clicking the button formerly know as the start button to save your shortcuts and shut down <img class="wlEmoticon wlEmoticon-smile" src="http://aimeegurl.com/wp-content/uploads/2010/02/wlEmoticonsmile.png" alt="Smile" /></li>
</ul>
<p>You can check out the application at <a title="http://bit.ly/b7893s" href="http://bit.ly/b7893s">http://bit.ly/b7893s</a> and explore the source code here.</p>
<p>How I did it?</p>
<p><strong>iPadding States</strong></p>
<p>If you open up the project you’ll find the following state groups. (The third state is currently not supported in this release <img class="wlEmoticon wlEmoticon-smile" src="http://aimeegurl.com/wp-content/uploads/2010/02/wlEmoticonsmile.png" alt="Smile" />)</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image1.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb1.png" border="0" alt="image" width="308" height="208" /></a></p>
<p>The iPadLoading state simple sets the opacity of a canvas with the “broken window” logo to 100% while the iPadLoaded state does the reverse.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image2.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb2.png" border="0" alt="image" width="822" height="714" /></a></p>
<p><strong>iPadding Components</strong></p>
<p>For this version, we only have two major components to the app: <strong>icApps </strong>and <strong>btnStart</strong></p>
<p>Let’s start with the <strong>btnStart</strong> as it is the easiest. This control is basically a styled button.</p>
<p>1. Start by adding a button onto the screen, then right-clicking, Edit Template –&gt; Edit a Copy</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image3.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb3.png" border="0" alt="image" width="864" height="810" /></a></p>
<p>You’ll then be prompted with a dialog box that will allow you to specify properties of this style. First is the Name, second is where you want to define the style in. The default is set to <strong>This Document</strong> which means the style will only be visible in this screen/page/usercontrol. <strong>Application </strong>will allow the style to be visible to the other pages/windows/usercontrols in the application. You can also select <strong>Resource dictionary </strong>to put the style in a separate file altogether and allow you to import the Resource Dictionary along with all the styles defined in it in other projects and applications.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image4.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb4.png" border="0" alt="image" width="467" height="261" /></a></p>
<p><strong> </strong></p>
<p>For this button style, I made use of images to for 2 of the different button states: MouseOver and Normal.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image5.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb5.png" border="0" alt="image" width="302" height="136" align="left" /></a></p>
<p>The default style of the button contains the chrome and a ContentPresenter. The ContentPresenter is basically where Button.Content will be displayed. If you’ve been playing with WPF/Silverlight, you’ll know that you can not only assign text to as button contents, but images, videos and other controls as well.</p>
<p>In this case, I just want a simple image, so I can go ahead and delete the default contents and replace it with a grid that contains my button images. In this case, I added 2 images, one to depict the button in Normal state, and another on MouseOver state.</p>
<p>When you click on a state, you’ll notice the state recording turns on.Once this is so, you can start changing properties of your design elements to reflect your desired look.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image6.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb6.png" border="0" alt="image" width="590" height="492" /></a><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image7.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb7.png" border="0" alt="image" width="589" height="493" /></a></p>
<p>Now we’re pretty much done with the StartButton design. Let’s put in a stub where our developer can plug in the code to make the app function as it is supposed to. To do this, let’s first return to the Window Scope</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image8.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb8.png" border="0" alt="image" width="320" height="190" /></a></p>
<p>Next, while the button is selected, go to the properties tab an click on events.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image9.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb9.png" border="0" alt="image" width="320" height="98" /></a></p>
<p>Once the tab is activated, you can type in the method name you want called on the Click event</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image10.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb10.png" border="0" alt="image" width="320" height="186" /></a></p>
<blockquote><p>Doing this will activate the XAML editor in Blend and automatically insert the method stub for you or your developer to fill in once you are ready to start filling in the application logic. Let’s leave this for now and go on to the next component.</p></blockquote>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image11.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb11.png" border="0" alt="image" width="844" height="479" /></a></p>
<p>The next control is <strong>icApps </strong>is a styled ItemsControl that will contain all the apps that you drag and drop into the window. Let’s first go to our Asset Library and drop in the ItemsControl onto our Window. You might want to drop it into a Grid to fix the layout.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image12.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb12.png" border="0" alt="image" width="834" height="300" /></a></p>
<p>Next, we need to think about how we want to layout the items in our control. If you look at the iPhone, the apps are actually lined up in a 4 x 5 grid. However, since in the future, I’d like to be able to resize the screen and have the apps line up depending on the space, I’ll use a WrapPanel to manage the layout. To do this, I’ll right-click on the ItemsControl –&gt; Edit Additional Templates –&gt; Edit Layout of Items &#8211; &gt;Edit a Copy. Again this will bring you a dialog box that will allow you to name and specify where you want your style created.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image13.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb13.png" border="0" alt="image" width="968" height="553" /></a></p>
<p>You’ll notice that the default layout is a StackPanel, but we’ll go ahead and change this into a WrapPanel.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image14.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb14.png" border="0" alt="image" width="528" height="474" /></a></p>
<p>You might also want to ensure that the ScrollBarVisibilities are properly set. I’ll be disabling scrolling for this version till I figure out how I want to page / scroll through my items.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image15.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb15.png" border="0" alt="image" width="311" height="222" /></a></p>
<p>Now that we have the layout set, we’ll now take a look at the template for generated items. So same as before, right-click on the ItemsControl -&gt; Edit Additional Templates –&gt; Edit Generated Items –&gt; Edit a Copy. If you’re wondering why it’s “Edit a Copy”, WPF controls come with default templates that developers and designers can easily replace but because Blend needs to have a fall back in cases of new controls, the default templates are stored somewhere and are read-only for us. But we can always create our own style and set it as a default for all the controls in our project by selecting <strong>Apply to All </strong>in the <strong>Create Style Resource</strong> dialog.</p>
<p>I want the Apps to be visualize as buttons that can get focus when clicked so that the users can delete them if he chooses to, and launch the application when double clicked. I don’t want to recreate a control as the Button control can pretty much do what I need it to do. So what I’ll do in my data template is add a 120&#215;120 grid to constrain the button size, and put a button inside and style it as I want and for this I’ve created a style called AppButton style. that has the following:</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image16.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb16.png" border="0" alt="image" width="264" height="517" align="left" /></a>You’ll notice that since I’m styling a button, the template already comes with the common button states such as MouseOver and FocusStates. This will make it much easier for me to fix my controls visuals through states instead of having to code it all up myself.</p>
<p>If you look at the object tree, I have an image will I will later on show how I tie up to the Icon of whatever shortcut is dragged into my app. I have a text block that will also display the name of that shortcut, and two rectangles that will basically be my MouseOverVisual and FocusVisual. Both these visuals have an opacity of 0% by default, and I simply edit the corresponding states to set the opacity to 100%.</p>
<p>I mentioned that for the image and text block, I wanted it to be bound to whatever the icon and name was used in the shortcut dragged into the app. Later on we’ll be using the ShellObject defined in the <a title="http://code.msdn.microsoft.com/WindowsAPICodePack" href="http://code.msdn.microsoft.com/WindowsAPICodePack">http://code.msdn.microsoft.com/WindowsAPICodePack</a> The ShellObject data object has quite a number of properties but the one I’m intersted in would be Thumbnail, which is an Icon object which in turn has a MediumBitmapSource (medium because we’re looking at displaying bigger icons than the ones we see in details view of explorer) and Name, which will hold the filename on the shortcut.</p>
<p>As a designer, all I care about would be that those two properties of the data object will be present when the time comes. I can use data binding to link the properties of the data object with properties in my UI.</p>
<p>First off is the TextBlock. With the the TextBlock selected, I’ll head over to the properties panel and look for the text property since this is what I want to bind to the Name property of the data object. I can do so by clicking on the button right beside the Text textbox.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image17.png"><img style="display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb17.png" border="0" alt="image" width="293" height="48" /></a></p>
<p>I’ll then select Data Binding.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image18.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb18.png" border="0" alt="image" width="315" height="320" /></a></p>
<p>You can data bind this the Text property to virtually anything as you’ll see in the dialog box that pops up, from data fields, to other elements properties. In this case, since we don’t have access to our data objects just yet, I’ll go straight to Explicit Data Context and tick the “Use a custom path expression” and put in the Name property. Again as a designer, I don’t have to care where that value comes from but i know that whatever data object is bound to this button, I’ll get access to a property called Name that will hold the name of the application or shortcut of the app I want to run.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image19.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb19.png" border="0" alt="image" width="618" height="583" /></a></p>
<p>I’ll do the same for the img object with the source property. This time, I’m binding it to “Thumbnail.MediumBitmapSource” since my developer tells me, there’s an existing object that we can use and that property is going to give me the filename of the icon i can use in my button.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image20.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb20.png" border="0" alt="image" width="609" height="579" /></a></p>
<p>Now that’s done, let’s help out our developer a little bit.We’ve decided that the behavior of this app is such that if a button is clicked, it’ll bring focus to that button. This is already the default behavior of a button and since we’ve only styled a button and not made our own, we won’t have to worry about building that behavior. The next behavior is that when double clicked, it runs the application associated with it. To do this, let’s exit scope one level up to the AppButton. We can either do as we did previously by clicking on the up arrow <a href="http://aimeegurl.com/wp-content/uploads/2010/02/image21.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb21.png" border="0" alt="image" width="211" height="32" /></a>or by clicking AppButton on the bread crumb bar at the top of the XAML designer page: <a href="http://aimeegurl.com/wp-content/uploads/2010/02/image22.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb22.png" border="0" alt="image" width="320" height="70" /></a> </p>
<p>With the AppButton selected, we’ll go to the events tab <a href="http://aimeegurl.com/wp-content/uploads/2010/02/image23.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb23.png" border="0" alt="image" width="51" height="33" /></a>on the Properties page, go to MouseDoubleClick and type in a name of method that will hold the code to run the shortcut associated to the button. <img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb24.png" border="0" alt="image" width="278" height="31" />Once we press enter, we’ll be brought to the code behind and we can write a little note to our developer to put in that piece of code here. If as a designer, later on you feel that it’ll be better to have the application run at a different event, you can simply move that method name to another event in the events list, and your developer won’t have to change their code.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2010/02/image24.png"><img style="margin: 0px 20px; display: inline; border: 0px;" title="image" src="http://aimeegurl.com/wp-content/uploads/2010/02/image_thumb25.png" border="0" alt="image" width="657" height="112" /></a></p>
<p>Once that’s done, we can exit again till we’re all the way up on the window level. What we have done is basically create an ItemsControl with our custom style that displays a square button and a text block (as well as some visuals for mouse over and focus states). We’ve styled these buttons in such a way that the images and textblocks are bound to properties Name and Thumbnail.MediumBitmapSource. The idea here is that our developer will eventually bind this ItemsControl with a list of ShellObjects which we are told have those properties. Each shell object will be bound to a generated item with the template we defined. We’ve also created a method for our developer to implement that runs the associated application when the button is double clicked.</p>
<p>Next post will cover the developer portion of this application. <img class="wlEmoticon wlEmoticon-smile" src="http://aimeegurl.com/wp-content/uploads/2010/02/wlEmoticonsmile.png" alt="Smile" /> For now, you can download and try out the application on <a href="http://www.badgorilla.net/ipadding">http://www.badgorilla.net/ipadding</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aimeegurl.com/2010/02/05/ipadding-v1-the-designer-story/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Happy Holidays Everyone!</title>
		<link>http://aimeegurl.com/2009/12/22/happy-holidays-everyone/</link>
		<comments>http://aimeegurl.com/2009/12/22/happy-holidays-everyone/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 19:11:15 +0000</pubDate>
		<dc:creator>Aimee</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[expressionblend]]></category>
		<category><![CDATA[expressiondesign]]></category>
		<category><![CDATA[silverlight4]]></category>
		<category><![CDATA[techfriday]]></category>
		<category><![CDATA[visualstudio2010]]></category>

		<guid isPermaLink="false">http://aimeegurl.com/2009/12/22/happy-holidays-everyone/</guid>
		<description><![CDATA[<p id="top" />
<p>I was listening to some Christmas music today and the holiday spirit got the best of me. I managed to make a customizable e-greeting card using Silverlight 4. Since MS has only released a developer beta and no go-live license, users will have to manually download the Silverlight 4 beta plugin. I modified [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>I was listening to some Christmas music today and the holiday spirit got the best of me. I managed to make a customizable e-greeting card using Silverlight 4. Since MS has only released a developer beta and no go-live license, users will have to manually download the Silverlight 4 beta plugin. I modified the html code that the Silverlight SDK spits out to show this image and redirect it straight to the <a href="http://silverlight.net/getstarted/silverlight-4-beta/#tools">Silverlight Tools Page</a>:</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2009/12/MerryChristmas.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="MerryChristmas" border="0" alt="MerryChristmas" src="http://aimeegurl.com/wp-content/uploads/2009/12/MerryChristmas_thumb.png" width="674" height="527" /></a></p>
<p>I didn’t want to reinvent the wheel so I used some code that was already out there:</p>
<p><a href="http://www.wintellect.com/CS/blogs/jprosise/archive/2009/07/17/fun-with-savefiledialog-and-writeablebitmap.aspx">http://www.wintellect.com/CS/blogs/jprosise/archive/2009/07/17/fun-with-savefiledialog-and-writeablebitmap.aspx</a></p>
<p>- Code to encode an image to PNG and save to local hard drive</p>
<p><a href="http://channel9.msdn.com/learn/courses/Silverlight4/MagicMirror/MagicMirror/">http://channel9.msdn.com/learn/courses/Silverlight4/MagicMirror/MagicMirror/</a></p>
<p>- Silverlight 4 code to capture images from a Web Camera and Print</p>
<p>Tools I used:</p>
<p><a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx">Visual Studio 2010 Beta 2</a>&#160;</p>
<p><a href="http://www.microsoft.com/expression/products/Design_Overview.aspx">Microsoft Expression Design</a></p>
<p><a href="http://www.microsoft.com/expression/products/Blend_Overview.aspx">Microsoft Expression Blend Preview for .NET 4</a></p>
<p>And here’s the app! And yes, this qualifies for a TechFriday cause Christmas is on a&#8212; FRIDAY!</p>
]]></content:encoded>
			<wfw:commentRss>http://aimeegurl.com/2009/12/22/happy-holidays-everyone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tip the Day: watch videos on extended monitor while working on primary</title>
		<link>http://aimeegurl.com/2009/12/01/tip-the-day-watch-videos-on-extended-monitor-while-working-on-primary/</link>
		<comments>http://aimeegurl.com/2009/12/01/tip-the-day-watch-videos-on-extended-monitor-while-working-on-primary/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 06:02:15 +0000</pubDate>
		<dc:creator>Aimee</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://aimeegurl.com/2009/12/01/tip-the-day-watch-videos-on-extended-monitor-while-working-on-primary/</guid>
		<description><![CDATA[<p id="top" />
<p>Have you ever tried watching a code walkthrough video, wanting to follow along with visual studio but have a hard time because the video players are too small for you to read the code? and when you do full screen, you’ll have to pause and play while you “unfullscreen” to switch to Visual [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />
<p>Have you ever tried watching a code walkthrough video, wanting to follow along with visual studio but have a hard time because the video players are too small for you to read the code? and when you do full screen, you’ll have to pause and play while you “unfullscreen” to switch to Visual Studio to follow along?</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2009/12/image.png" width="1024" height="366" /> </p>
<p>The solution is simple: browser zoom is your friend. Most of the online video players are configured to be scalable so you can actually do the following:</p>
<p>1. Set your browser to full screen (F11 for IE8)</p>
<p>2. Set the zoom level to a comfortable size.</p>
<p><a href="http://aimeegurl.com/wp-content/uploads/2009/12/image1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://aimeegurl.com/wp-content/uploads/2009/12/image_thumb.png" width="1024" height="384" /></a> </p>
<p>As you can see in the screen shot above, I’m able to watch the video on my extended monitor, at a size where i can read the code comfortably, while still being to work on my primary screen. <img src='http://aimeegurl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://aimeegurl.com/2009/12/01/tip-the-day-watch-videos-on-extended-monitor-while-working-on-primary/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
